Cyclist 0.4.0
The switcher grows a real Settings window and rebindable shortcuts, and configuration moves to standard user defaults.
Settings window
- The status menu slims to Settings, About, and Quit; everything else lives in a two-column Settings window. Cmd+, opens it while the switcher is held open, and Cmd+W / Cmd+Q work inside it.
- The less obvious settings carry an info dot with a quick hover explanation.
- Launch at Login lives there too and resyncs itself after changes made in System Settings > General > Login Items.
- New About window with version and project links.
Rebindable shortcuts
- The four global bindings - open switcher, cycle app windows, previous/next Space - are recordable in Settings: click the shortcut, press the new keys; Esc cancels. Shift stays the reverse key, so a binding needs a real modifier and shift-variants count as duplicates.
- Keyboard Space navigation has an on/off switch alongside the trackpad-swipe one.
Configuration is user defaults
- Every setting is a key under
io.github.pszypowicz.Cyclist- the README documents the full table.defaults writeapplies to the running app immediately, rebinds included. - Breaking: the
~/.config/cyclist/cyclist.tomlfile is no longer read. Move any non-default values todefaults write(the README table maps them one to one). - The Enabled switch is gone: quitting Cyclist is the disable, and every native shortcut returns the moment it exits.
Fixes
- The window-title cache evicts closed windows instead of growing for the whole boot session.
- An AeroSpace request timeout no longer completes twice and desyncs the workspace cache refresh.
- A shortcut recording now dies with the Settings window instead of swallowing keystrokes system-wide.
- Less per-event work on the keystroke reject path in the event tap.
Requirements
Unchanged: macOS 26 (Tahoe), Accessibility required, Screen Recording optional.