Skip to content

Nexus Manager 0.0.6

Latest

Choose a tag to compare

@codingncaffeine codingncaffeine released this 09 Sep 01:12
· 1 commit to main since this release

What's New

  • Macros, with an editor — A touch button can now run an ordered sequence of key presses, releases and waits, repeating once, a set number of times, or until you press it again. Pick Macro as a button's action and Edit macro… opens a numbered event list: click a chip to set its key or its delay, click the state chip to cycle tap → hold → release, right-click a row for Add Above / Add Below / Copy / Paste / Delete. Separate press and release are the point — that is what lets a macro hold Ctrl across several other keys.

    Test runs it once after a three-second countdown, so you can put focus on the window the keys are actually meant for. It runs one pass whatever the repeat setting says, because an until pressed again macro tested from a dialog would never stop.

    Keys come from a searchable picker of all 94 the virtual keyboard can send. Everything goes through a uinput virtual keyboard, which on Wayland is the only way to reach another application at all.

    There is no recording tab. Wayland has no global key capture — the same wall that makes uinput necessary for sending — so the events are authored rather than captured. Nothing about the stored format would change if recording ever becomes possible.

  • Music visualizers can share a screen — A visualizer used to own the whole strip. It is now a cell with a weight, like a readout or a button, so you can put a spectrum next to your CPU temperature instead of choosing between them. A screen carrying one automatically runs at 30 fps instead of the 24 that is plenty for a number that changes once a second.

  • Import Corsair's own screen packs — nexus-manager import <pack.cuescreens> reads the .cuescreens files iCUE exports, including their macros, and --write adds them to your configuration. The format was decoded from Corsair's published packs and is documented in docs/CUESCREENS-FORMAT.md.

    A pack can only ever produce a macro. Any other action type is refused by name — an imported file cannot make a button launch a program.

  • A button can carry your own image** instead of a drawn icon. Config-file only for now: set Image on a button in screens.json. There is no editor control for it yet, and it is listed here so it is not a surprise rather than as a finished feature.

What's Fixed

  • The editor could stop drawing entirely** — A sentinel value overflowed on every timer tick, which killed the render loop for every screen. Nothing crashed and nothing was logged; the window simply froze, which is indistinguishable from a feature that does not work. If you saw a visualizer screen render nothing, this was why.

  • A macro button worked on every other press** — The runner treats a second press as stop, but never marked a finished run as finished, so the following press was swallowed. Silent, and it made a working macro look intermittently broken.