Commit Graph

12 Commits

Author SHA1 Message Date
server2 7bbb23d9ca control centre: pill shows only running services, struck tiles, menus close in place
The pill drops the icon of a service that isn't running (iwd, bluetoothd, the openvpn
service) and is as wide as what it shows. A tile whose service isn't running is grey
with a grey strike through its icon. Leaving a menu with the pointer fades its content
where it is and shrinks it straight into the pill; the panel no longer grows back to
its full size on the way.
2026-10-10 12:32:44 +02:00
server2 318b2a8443 control centre: menus for Wi-Fi, Bluetooth, VPN and Sound in their own window
The tile or block grows into its menu; the panel fades its content and takes the
menu's size underneath. Wi-Fi lists networks (join saved/open, disconnect, stop
iwd), Bluetooth lists devices, VPN has a switch per openvpn service, Sound has
every output with its own slider and a default picker. A second Sound slider for
the output named by extra_output in shell.conf (NR515). Screen and keyboard light
are written to sysfs directly: logind refuses a shell without a seat.
2026-10-10 12:13:34 +02:00
server2 1b571abef0 control centre: status pill top right that opens into a macOS-like panel
Wi-Fi and hotspot (iwd, never D-Bus-activated by a read), VPN (openrc openvpn.*),
Bluetooth (bluez), battery, volume, screen and keyboard light, performance mode
(platform profile + governor + EPP through doas -n), and the external GPU with the
programs using it (drm fdinfo). Icons move to glyph.rs.
2026-10-10 11:33:04 +02:00
server2 826401e28b README: amane run works now; tools: anim counts 20-500 ms gaps
- README install: the desktop's amane CLI saves ~/.cache/amane/amane-shell,
  so amane compile + amane run is the way to start the shell
- amane-remote.sh anim: with one window per monitor, gaps of 500 ms and
  more are other islands resting, not stutter
2026-10-10 00:42:18 +02:00
server2 036b326b04 theme: react to file changes instead of polling
the Theme service waits on amane::watch_file (inotify on the folder, so
matugen's rename-over saves count) for both ~/.config/amane/theme and
shell.conf, settles 50 ms for multi-write saves, and skips writes that
change nothing. measured on the desktop: rename-over, in-place and sed -i
writes picked up in 55-68 ms (was up to 500 ms), identical rewrites
ignored, no activity while idle (was 4 reads a second). deleting the
theme file takes effect at the next start
2026-10-09 04:44:02 +02:00
server2 eabda748f5 colours from the wallpaper through matugen
- matugen/amane.colors: a matugen template (primary, on_primary,
  primary_container, primary_fixed, on_surface, on_surface_variant,
  outline_variant, surface_container high/normal/lowest) that skwd-wall
  renders into ~/.config/amane/theme on every new wallpaper
- theme.rs: a Theme service reads that file and shell.conf twice a
  second (matugen replaces its output, which a file watch can lose) and
  fades all ten colours together on one Animation; without a theme file
  the shell keeps its pink on purple
- the island, the idle pill and the workspace pill draw with the theme;
  white overlays (chips, tracks, hover tints) stay as they are
- shell.conf: cover_colors (true: the open media card and equalizer take
  the cover's gradient as background, accents stay the wallpaper's) and
  transition_ms (0 switches instantly), both applied without a restart
- parse: settings() and rgb(), with a test (6 pass)
- checked on the desktop with a hand-written theme file: pill, workspace
  pill and card recolour, cover_colors switches the card background live
2026-10-09 04:28:39 +02:00
server2 2870ebbd13 island: an idle pill while no player is open
the island is always there now: with no player it shows a pill with a
drawn music note and 'Nothing playing', in the cover gradient with the
pink glow. click-through, static (draws once). checked on all 4 monitors
2026-10-08 11:45:26 +02:00
server2 9329d250f6 workspaces: a pill top left on every monitor with its workspaces
- 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
2026-10-08 02:09:25 +02:00
server2 9d6a13f876 island: transport buttons answer at once
- 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)
2026-10-08 01:37:10 +02:00
server2 7844a98828 island: card on one monitor, live bars only on the focused one
- 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
2026-10-08 01:25:33 +02:00
server2 c228f40154 remove src.before-test, the pre-island hello-world backup 2026-10-06 15:45:00 +02:00
server2 a8cd23546d docs: README, AGENTS.md, test tools in tools/
- 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
2026-10-06 15:41:48 +02:00