From 518ffd7578dbc74689b5303a35f402bfe081aa91 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sat, 4 Jul 2026 16:46:48 -0400 Subject: docs: gather panel design prototypes into docs/prototypes/ I gathered all five self-contained HTML/CSS design prototypes into one home: the instrument-console pair (moved from assets/), plus the net-panel rescan, sound panel, widget gallery, and waybar redesign (moved out of working/). Added a README index and updated every inbound link: build summary, the instrument-console and audio specs, and todo.org. Also fixed a broken link the earlier sort left in the build summary. It still pointed at the instrument-console spec's old docs/design/ path after the move to docs/specs/. --- .../2026-07-03-sound-panel-prototype.html | 417 +++++++++++++++++++++ 1 file changed, 417 insertions(+) create mode 100644 docs/prototypes/2026-07-03-sound-panel-prototype.html (limited to 'docs/prototypes/2026-07-03-sound-panel-prototype.html') diff --git a/docs/prototypes/2026-07-03-sound-panel-prototype.html b/docs/prototypes/2026-07-03-sound-panel-prototype.html new file mode 100644 index 0000000..d75f566 --- /dev/null +++ b/docs/prototypes/2026-07-03-sound-panel-prototype.html @@ -0,0 +1,417 @@ + + + + + +Sound — instrument console (pulsemixer) + + + + +
+
archsetup · dupre panel family · instrument consoles
+

Sound — the pulsemixer console

+

Same faceplate as net + bluetooth. The bar's sound glyph opens this. Every sink and + source is a row: click the row body to make it default, drag the fader for its volume, + hit the glyph to mute just it. Each row has a live-signal meter — the device actually + carrying audio dances even when it isn't the default, so you can find the one playing the + meeting and click it. The faceplate switch is the master quick-mute; the mic carries + live · muted · push-to-talk (hold Space). Row 1 of gauges is the volume you set; row 2 is + the stereo VU of the selected output's live signal.

+
+ +
+
+
snd·01 — pulsemixer in console form
+
+ +
+
+ + 󰕾 + PLAYBACK + MUTED + SND·01 + + +
+
+ +
outputs
+
+ +
inputs
+
+ +
mic mode
+
+ + +
+
+ + +
+
+ OUT VOL +
+
+
+
+
+
68 %
+
SPEAKERS
+
+
+ IN VOL +
+
+
+
+
+
54 %
+
BUILT-IN MIC
+
+
+ + +
+
signal · VU peakSPEAKERS
+
L
+
R
+
+ +
+
+
+ +
+

The bar glyph

+
+ 󰕾 normal — speaker + arcs + 󰝟 muted — speaker ✕ + 󰢮 ptt armed +
+

Idiom map (same as net / bt)

+
    +
  • Faceplate switch = master quick-mute — the net wifi / bt power switch, here muting all output. Flip: state → MUTED, lamp red, bar glyph → speaker-✕.
  • +
  • Rows are devices — every sink + source. Click the row body to set default (gold DEF moves); the fader sets that device's volume; the trailing glyph mutes just it.
  • +
  • Per-row signal meter — the 4 bars at the left of each row read that device's live level. A sink can carry a stream without being default, so the one playing lights up — demo: the music is on WH-1000XM4 while Speakers is still default. Click WH-1000XM4 to move to it.
  • +
  • Two meter rows — row 1 = the volume you set (OUT + IN needles); row 2 = the stereo VU (L/R) of the selected output's live signal, red when muted.
  • +
  • Mic = two console keys — one toggles LIVE↔MUTED (the label flips to show the state), the other is PUSH·TALK: the mic sits muted and un-mutes only while Space is held.
  • +
  • Verify-everything — every action re-reads pactl/wpctl state after firing, like net/bt.
  • +
+

Push-to-talk — the one hard part

+
+ Hold-to-talk needs a global key grab under Wayland. Two routes to spec: (a) a Hyprland + bind pairbindp Space press → unmute, release → re-mute, armed only while PTT + mode is active (so it doesn't steal Space everywhere); or (b) an evdev/libinput + listener reading the key directly. (a) is lighter; (b) survives focus changes but needs + input-group permissions. Feasibility research is phase 1 of the spec. +
+
+
+ + + + -- cgit v1.2.3