feat(audio,menu): dock audio auto-follow watcher + docked Display/Audio menu rows
Some checks failed
Check / eval (push) Failing after 1m41s
Some checks failed
Check / eval (push) Failing after 1m41s
Bernardo's dock test (the #87 V3): audio stayed on EasyEffects→speakers. Root cause, established live: WirePlumber's stored default (default-nodes state, written by any past explicit pick) outranks the priority.session rules, so #87 alone can never move the default on a real machine; EasyEffects 8 follows the default device (kcfg default true, verified by watching its output links). Fix: nomarchy-dock-audio (modules/home/dock-audio.nix, nomarchy.dockAudio.enable, default on) — a pactl-subscribe watcher that set-default-sinks new dock-class sinks (regex data imported from modules/nixos/dock-audio-rules.nix, single source) with a toast, plus a startup sweep for login-while-docked that never overrides a manual in-dock pick. Unplug falls back by priority. Menus: Display gains docked rows — "Laptop screen off · everything → <ext>" (live-only disable; a persisted one could black-screen an undocked boot), "Screen on · <name>", "Move workspace · → next monitor", "Swap workspaces" (exactly-2 gate); Audio gains a self-gated "Send output → <dock sink>" quick row. All self-gate on real outputs. Verified: V2-equivalent on live hardware (no dock available) — watcher followed a fake dock-named null sink and fell back on unload, control run without the watcher stayed pinned (proving the stored-default diagnosis), EE output links moved mid-playback; generated menu bash -n green, dock-row jq exercised on real pactl JSON, dispatchers probed on live Hyprland; flake check + option-docs + template-sot green. V3 pending: real-dock retest ×2 in HARDWARE-QUEUE (watcher keys on new-sink events; pre-existing nodes that only flip route availability would need the queued diagnosis data). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -245,6 +245,7 @@ two tables below are split along exactly that line.
|
||||
| `nomarchy.rofi.enable` | `true` | Themed rofi launcher + `nomarchy-menu` dispatcher |
|
||||
| `nomarchy.swaync.enable` | `true` | swaync notifications, themed |
|
||||
| `nomarchy.batteryNotify.enable` | `true` | Low-battery toasts at the bar's thresholds — 25% low, 10% critical (stays up until dismissed); silent no-op on machines without a battery |
|
||||
| `nomarchy.dockAudio.enable` | `true` | Default audio output follows dock/monitor sinks (HDMI/DP/USB) on hotplug, with a toast; EasyEffects follows along; unplug falls back to built-in |
|
||||
| `nomarchy.firstBootWelcome.enable` | `true` | One dismissible “you're set” toast on the first session (SUPER+M / SUPER+T / SUPER+? + network pointer); marker is `settings.firstBootShown` in the flake checkout |
|
||||
| `nomarchy.idle.enable` | `true` | hyprlock + hypridle (idle lock 5 min, display off 10, suspend 15 min — battery-only) |
|
||||
| `nomarchy.yazi.enable` | `true` | yazi TUI file manager, themed + curated plugins |
|
||||
|
||||
Reference in New Issue
Block a user