- one window per monitor (namespace magic-workspaces, Overlay like the
island), showing that monitor's hyprland workspaces in the island's
look: cover gradient, pink glow
- focused workspace pink, shown-elsewhere soft pink, empty ones dim;
hover eases in (one at a time), a click switches workspace
- special workspaces are skipped; name-only ones show their first letter
- event-driven through Workspaces: redraws only on hyprland events and
hover
- play/pause flips its icon (card and pill) the moment it's clicked; the
clicked state is shown until the player has answered
- after play/pause, next or previous, Media is read again at 150 and
600 ms instead of waiting for its once-a-second poll, so title, time
and play state follow within a fraction of a second
- the cover loader checks 4 times a second instead of once
- ipc: island play-pause, the same path as a click (keybinds, tests)
- the card opens on the monitor that was clicked (keybinds: the focused
monitor); the others keep their pill. moving the card to another monitor
restarts its open animation there
- only the focused monitor's window (and the one with the card) reads
Spectrum, so the other pills show still bars and rest
- hover lights only the pill under the pointer
- measured with music on 3 monitors: pill 10.7% of a core (was 27.5%),
open card 20.7% (was 58%), ~62 frames a second in total, 0-1 slow
frames per open/close (was 7-14), back to one island's cost
- README: features, layout, requirements, install, IPC, runtime files, limits
- AGENTS.md: the user's ground rules (branch + approval, never touch real
players' sound), architecture, measured performance rules, type-check
and test loop, desktop test driver and its pitfalls, open threads
- tools/: amane-remote.sh and fake_mpris.py, so the test loop doesn't
depend on the Hermes skill
- .gitignore: the Cargo files amane generates