fix(waybar): drop the bar to the bottom layer so fullscreen covers it
Some checks failed
Check / eval (push) Has been cancelled
Some checks failed
Check / eval (push) Has been cancelled
On Hyprland the `top` layer renders above every window, including a real fullscreen surface — so a browser video gone fullscreen sat *under* the bar (BACKLOG item 30). Move the bar to `layer: bottom` in the generated waybar.nix and all four whole-swap jsoncs (parity rule); the exclusive zone still reserves its space in normal tiling, but a fullscreen window now covers it. Rationale comment kept in waybar.nix; data jsoncs left comment-free (they carry none). Verified: V0 (nix flake check --no-build, green) + V1 (homeConfigurations.nomarchy.activationPackage builds; built .config/waybar/config shows "layer": "bottom"). V3 queued in HARDWARE-QUEUE (fullscreen covers bar + returns on exit; floating-overlap trade-off). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -47,16 +47,6 @@ Likely a `hyprland`/`kanshi`-style profile layer plus a menu surface;
|
|||||||
split into slices before starting. `[blocked:hw]` for the real
|
split into slices before starting. `[blocked:hw]` for the real
|
||||||
dock/undock + HDMI-audio verification (see HARDWARE-QUEUE.md).
|
dock/undock + HDMI-audio verification (see HARDWARE-QUEUE.md).
|
||||||
|
|
||||||
### 30. Waybar overlaps fullscreen video
|
|
||||||
(Raised by Bernardo, 2026-07-07.) A fullscreen YouTube video (browser
|
|
||||||
fullscreen) leaves Waybar drawn on top of the video instead of being
|
|
||||||
covered. Waybar sits on an overlay/top layer that outranks the
|
|
||||||
fullscreen window's surface. Fix so a true fullscreen window hides the
|
|
||||||
bar — likely a Hyprland `layerrule`/`windowrule` or lowering Waybar's
|
|
||||||
layer, or wiring the bar to auto-hide on fullscreen. Verify with
|
|
||||||
browser fullscreen (F on YouTube) AND a native fullscreen app; make
|
|
||||||
sure the bar returns on exit. Small, agent-doable.
|
|
||||||
|
|
||||||
### 28. Theme UI review — make every surface stunning `[big]`
|
### 28. Theme UI review — make every surface stunning `[big]`
|
||||||
(Raised by Bernardo, 2026-07-05 — placed at the head of NEXT; reorder
|
(Raised by Bernardo, 2026-07-05 — placed at the head of NEXT; reorder
|
||||||
freely.) A thorough visual pass over the whole themed UI — Waybar (the
|
freely.) A thorough visual pass over the whole themed UI — Waybar (the
|
||||||
|
|||||||
@@ -222,6 +222,14 @@ QA machine), the **T14s** (webcam case).
|
|||||||
draining. (Crossing logic VM-verified — this checks the real
|
draining. (Crossing logic VM-verified — this checks the real
|
||||||
swaync rendering in a session.)
|
swaync rendering in a session.)
|
||||||
|
|
||||||
|
- [ ] **Waybar hides under fullscreen video** (item 30) — after
|
||||||
|
`home-update` + relogin, put a browser video (YouTube) into
|
||||||
|
fullscreen (F): the bar is now *covered* by the video, not drawn
|
||||||
|
on top; exit fullscreen → the bar returns. Normal tiling
|
||||||
|
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.
|
||||||
|
|
||||||
## AMD dev box only
|
## AMD dev box only
|
||||||
- [ ] **AMD runtime bits** — VA-API (`vainfo` → radeonsi), amd-pstate EPP
|
- [ ] **AMD runtime bits** — VA-API (`vainfo` → radeonsi), amd-pstate EPP
|
||||||
active and PPD switching governors; opt-ins: ROCm (`rocminfo`, a GPU
|
active and PPD switching governors; opt-ins: ROCm (`rocminfo`, a GPU
|
||||||
|
|||||||
@@ -17,6 +17,25 @@ Template:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 2026-07-07 — Waybar overlaps fullscreen video (iteration #54)
|
||||||
|
- **Task:** BACKLOG item 30 — bar drawn on top of a fullscreen YouTube video.
|
||||||
|
- **Did:** `layer: top` → `bottom` in the generated `waybar.nix` and the
|
||||||
|
four whole-swap jsoncs (boreal, summer-night, summer-day,
|
||||||
|
executive-slate — parity rule). On Hyprland the top layer renders above
|
||||||
|
even real-fullscreen surfaces; bottom lets the fullscreen window cover
|
||||||
|
the bar while the exclusive zone still reserves its space in normal
|
||||||
|
tiling. Rationale comment in waybar.nix; data jsoncs left comment-free
|
||||||
|
(they carry none). Also shipped this session (pre-loop, user-driven):
|
||||||
|
battery discharging-icon gap widened (f848e73).
|
||||||
|
- **Verified:** V0 (`nix flake check --no-build`, green) + V1
|
||||||
|
(`homeConfigurations.nomarchy.activationPackage` builds; the built
|
||||||
|
`.config/waybar/config` shows `"layer": "bottom"`).
|
||||||
|
- **Pending:** V3 queued in HARDWARE-QUEUE — fullscreen video covers the
|
||||||
|
bar, bar returns on exit, floating-overlap trade-off. Can't be
|
||||||
|
eyeballed headlessly here.
|
||||||
|
- **Next suggestion:** item 29 is `[human]`/`[blocked:hw]`; remaining
|
||||||
|
work is item 28 (theme UI) slices or a QA sweep.
|
||||||
|
|
||||||
## 2026-07-06 — menu parity for downstream-flake options (iteration #51, slice 1)
|
## 2026-07-06 — menu parity for downstream-flake options (iteration #51, slice 1)
|
||||||
- **Task:** PROPOSED item — ensure `nomarchy.*` options have a menu toggle where appropriate.
|
- **Task:** PROPOSED item — ensure `nomarchy.*` options have a menu toggle where appropriate.
|
||||||
- **Did:** Audited options and implemented the first slice of missing toggles in the TUI Control Center (`Updates`, `Battery Limit`, `Bluetooth`, `Printing`). Wired `modules/home/options.nix` and `modules/nixos/options.nix` to use `config.nomarchy.settings.*` as defaults.
|
- **Did:** Audited options and implemented the first slice of missing toggles in the TUI Control Center (`Updates`, `Battery Limit`, `Bluetooth`, `Printing`). Wired `modules/home/options.nix` and `modules/nixos/options.nix` to use `config.nomarchy.settings.*` as defaults.
|
||||||
|
|||||||
@@ -63,6 +63,11 @@ iteration would otherwise rediscover.
|
|||||||
split (BACKLOG LATER) is the decided fix (§ Faster switches).
|
split (BACKLOG LATER) is the decided fix (§ Faster switches).
|
||||||
|
|
||||||
## Gotchas (cost a debugging session once)
|
## Gotchas (cost a debugging session once)
|
||||||
|
- Waybar `layer: top` renders above **even real-fullscreen windows** — the
|
||||||
|
bar draws over a fullscreen video. `layer: bottom` lets the fullscreen
|
||||||
|
surface cover it while the exclusive zone still reserves the bar's space
|
||||||
|
in normal tiling (trade-off: floating windows can now overlap the bar
|
||||||
|
strip). Set in both waybar.nix and every whole-swap jsonc (item 30).
|
||||||
- Hyprland binds match the exact modmask: a shifted keysym (`question`)
|
- Hyprland binds match the exact modmask: a shifted keysym (`question`)
|
||||||
needs SHIFT in `mods` or the bind never fires — the keypress falls
|
needs SHIFT in `mods` or the bind never fires — the keypress falls
|
||||||
through to the focused window (§ item 26; caught on hardware, invisible
|
through to the focused window (§ item 26; caught on hardware, invisible
|
||||||
|
|||||||
@@ -119,7 +119,12 @@ let
|
|||||||
(lib.mapAttrsToList (name: value: "@define-color ${name} ${value};") t.colors);
|
(lib.mapAttrsToList (name: value: "@define-color ${name} ${value};") t.colors);
|
||||||
|
|
||||||
generatedSettings = {
|
generatedSettings = {
|
||||||
layer = "top";
|
# `bottom`, not `top`: on Hyprland the `top` layer renders above every
|
||||||
|
# window — so a real fullscreen surface (a browser video gone
|
||||||
|
# fullscreen) sits *under* the bar. On `bottom` the fullscreen window
|
||||||
|
# covers the bar, while the exclusive zone still reserves its space in
|
||||||
|
# normal tiling. Keep in sync with the whole-swap jsoncs (parity rule).
|
||||||
|
layer = "bottom";
|
||||||
position = "top";
|
position = "top";
|
||||||
height = 34;
|
height = 34;
|
||||||
margin-top = t.ui.gapsOut;
|
margin-top = t.ui.gapsOut;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"margin-right": 14,
|
"margin-right": 14,
|
||||||
"margin-bottom": 0,
|
"margin-bottom": 0,
|
||||||
"height": 38,
|
"height": 38,
|
||||||
"layer": "top",
|
"layer": "bottom",
|
||||||
"position": "top",
|
"position": "top",
|
||||||
"spacing": 4,
|
"spacing": 4,
|
||||||
"reload_style_on_change": true,
|
"reload_style_on_change": true,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"margin-bottom": 0,
|
"margin-bottom": 0,
|
||||||
"margin-right": 0,
|
"margin-right": 0,
|
||||||
"height": 34,
|
"height": 34,
|
||||||
"layer": "top",
|
"layer": "bottom",
|
||||||
"position": "top",
|
"position": "top",
|
||||||
"spacing": 0,
|
"spacing": 0,
|
||||||
"reload_style_on_change": true,
|
"reload_style_on_change": true,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"margin-bottom": 0,
|
"margin-bottom": 0,
|
||||||
"margin-right": 120,
|
"margin-right": 120,
|
||||||
"height": 60,
|
"height": 60,
|
||||||
"layer": "top",
|
"layer": "bottom",
|
||||||
"position": "top",
|
"position": "top",
|
||||||
"spacing": 15,
|
"spacing": 15,
|
||||||
"reload_style_on_change": true,
|
"reload_style_on_change": true,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"margin-bottom": 0,
|
"margin-bottom": 0,
|
||||||
"margin-right": 120,
|
"margin-right": 120,
|
||||||
"height": 61,
|
"height": 61,
|
||||||
"layer": "top",
|
"layer": "bottom",
|
||||||
"position": "top",
|
"position": "top",
|
||||||
"spacing": 15,
|
"spacing": 15,
|
||||||
"reload_style_on_change": true,
|
"reload_style_on_change": true,
|
||||||
|
|||||||
Reference in New Issue
Block a user