feat(waybar): right-click volume opens a floating pwvucontrol mixer
All checks were successful
Check / eval (push) Successful in 2m55s
All checks were successful
Check / eval (push) Successful in 2m55s
Right-clicking the Waybar volume module now opens pwvucontrol (per-app mixer); left-click still mutes. Adds: - on-click-right in waybar.nix + all four whole-swap jsoncs (parity) - hyprland.nix: the config's first windowrule block — float + center the mixer (pwvucontrol, with pavucontrol as a fallback class); normal- priority list so a downstream windowrule concatenates - pwvucontrol in the template home.packages pwvucontrol is PipeWire-native + GTK4/libadwaita, so it themes via the portal color-scheme like Amberol. app-id verified from the built package. This settles the windowrule pattern/placement; item 41 is now just broadening the float set. Right-click→float→center is a V3 session check. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -257,32 +257,16 @@ summer-day/summer-night) — all deliberately set `scrollbar { width:0 }`
|
||||
today, each needs a per-theme handle width/colour. Payoff is V3-only
|
||||
(rendering), so it wants a themed session, not a headless edit.
|
||||
|
||||
### 35. Right-click volume → audio control app
|
||||
(Raised by Bernardo, 2026-07-07 — item 5.) Right-click the Waybar
|
||||
`pulseaudio` module to open a mixer in a floating window. Wire
|
||||
`on-click-right` in `waybar.nix` AND the whole-swap jsoncs (parity rule);
|
||||
add a Hyprland `windowrulev2 = float` for the mixer. Ship the mixer in
|
||||
the template's `home.packages`.
|
||||
_Scoped 2026-07-07 (held for item 41):_ the on-click-right wiring is
|
||||
trivial, but the float rule needs the windowrule infrastructure that
|
||||
**does not exist yet** — there are currently **zero** `windowrule`s in
|
||||
the whole config, and item 41 is where that set gets designed list-first
|
||||
(Bernardo's call). So this is gated on 41, not independently shippable
|
||||
without inverting his 41→35 plan. **Mixer recommendation:** `pwvucontrol`
|
||||
(PipeWire-native, GTK4/libadwaita → themes via the portal color-scheme
|
||||
like Amberol; the distro is already wpctl/PipeWire). app-id for the float
|
||||
rule: `com.saivert.pwvucontrol`. (`pavucontrol` is the GTK3 fallback.)
|
||||
|
||||
### 41. Floating-window audit
|
||||
(Raised by Bernardo, 2026-07-07 — item 11.) Decide which windows should
|
||||
open floating by default (config dialogs, mixer, file-chooser portals,
|
||||
calculators, etc.) and add the `windowrulev2 = float` rules in
|
||||
`hyprland.nix`. Enables items 35/36b. Produce the list first, then the
|
||||
rules.
|
||||
_Note 2026-07-07:_ this establishes the **first** windowrule block in the
|
||||
config (none exist today) — so it also owns the decision of where the
|
||||
rules live and their format. Once the pattern's set, 35's mixer float and
|
||||
36b fall out of it.
|
||||
open floating by default (config dialogs, file-chooser portals,
|
||||
calculators, etc.) and add the `windowrule` float rules in
|
||||
`hyprland.nix`. Enables item 36b. Produce the list first, then the rules.
|
||||
_Note 2026-07-07:_ the **first** `windowrule` block now exists (added by
|
||||
item 35 — the mixer floats + centers), so the pattern + placement are
|
||||
set. 41 is now purely "broaden the set" — audit the template app suite,
|
||||
pick the dialog/utility classes, append rules. Still list-first
|
||||
(Bernardo's taste on what should float), so it wants his review.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -236,6 +236,11 @@ QA machine), the **T14s** (webcam case).
|
||||
unchanged (the bar still reserves its space). Accepted trade-off
|
||||
of `layer: bottom`: a floating window dragged over the top strip
|
||||
can now overlap the bar — confirm that's the only regression.
|
||||
- [ ] **Right-click volume → floating mixer** (iteration #62, item 35) —
|
||||
after `home-update` + relogin: right-click the Waybar volume module
|
||||
opens pwvucontrol as a floating, centered window (not tiled);
|
||||
left-click still mutes. Verify across a whole-swap theme too
|
||||
(summer/boreal/executive-slate) since the jsoncs got the same wiring.
|
||||
- [ ] **Window focus on arrows** (iteration #61) — after `home-update` +
|
||||
relogin: SUPER+←/→/↑/↓ move focus between tiled windows; SUPER+H/J/K/L
|
||||
no longer move focus; SUPER+? cheatsheet shows the arrow glyphs.
|
||||
|
||||
@@ -17,6 +17,25 @@ Template:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-07 — Right-click volume → floating mixer (iteration #62, item 35)
|
||||
- **Task:** BACKLOG item 35 — right-click the Waybar volume module to
|
||||
open a mixer in a floating window. (Bernardo re-launched /loop after I'd
|
||||
flagged it as gated on 41 — read as "handle it," so I did 35 fully and
|
||||
re-scoped 41 to just broadening the float set.)
|
||||
- **Chose pwvucontrol** (PipeWire-native, GTK4/libadwaita → themes via the
|
||||
portal like Amberol; distro is already wpctl/PipeWire). Verified app-id
|
||||
`com.saivert.pwvucontrol` from the built package.
|
||||
- **Changes:** (1) `waybar.nix` pulseaudio `on-click-right = "pwvucontrol"`
|
||||
+ parity into all four whole-swap jsoncs (summer-day/night, boreal,
|
||||
executive-slate). (2) `hyprland.nix` — the config's **first** `windowrule`
|
||||
block: `float` + `center` for the mixer classes (pwvucontrol + pavucontrol
|
||||
fallback), normal-priority list so downstream concatenates. (3)
|
||||
`pwvucontrol` added to the template `home.packages`.
|
||||
- **Verified:** V0 green; `nix eval` of the homeConfiguration confirms the
|
||||
windowrule regex renders with correct single-backslash escaping
|
||||
(`class:^(com\.saivert\.pwvucontrol|…)$`). The right-click→float→center
|
||||
interaction is a V3 session check (queued). Item 41 now = broaden the set.
|
||||
|
||||
## 2026-07-07 — Window focus: vim keys → arrows (iteration #61, direct request)
|
||||
- **Task:** Bernardo — switch window navigation from vim-style
|
||||
SUPER+H/J/K/L to SUPER+arrow keys.
|
||||
|
||||
Reference in New Issue
Block a user