fix(waybar): drop the bar to the bottom layer so fullscreen covers it
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:
2026-07-07 18:51:38 +01:00
parent be5888d354
commit cfecb612a6
9 changed files with 42 additions and 15 deletions

View File

@@ -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
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]`
(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

View File

@@ -222,6 +222,14 @@ QA machine), the **T14s** (webcam case).
draining. (Crossing logic VM-verified — this checks the real
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 runtime bits** — VA-API (`vainfo` → radeonsi), amd-pstate EPP
active and PPD switching governors; opt-ins: ROCm (`rocminfo`, a GPU

View File

@@ -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)
- **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.

View File

@@ -63,6 +63,11 @@ iteration would otherwise rediscover.
split (BACKLOG LATER) is the decided fix (§ Faster switches).
## 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`)
needs SHIFT in `mods` or the bind never fires — the keypress falls
through to the focused window (§ item 26; caught on hardware, invisible

View File

@@ -119,7 +119,12 @@ let
(lib.mapAttrsToList (name: value: "@define-color ${name} ${value};") t.colors);
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";
height = 34;
margin-top = t.ui.gapsOut;

View File

@@ -4,7 +4,7 @@
"margin-right": 14,
"margin-bottom": 0,
"height": 38,
"layer": "top",
"layer": "bottom",
"position": "top",
"spacing": 4,
"reload_style_on_change": true,

View File

@@ -4,7 +4,7 @@
"margin-bottom": 0,
"margin-right": 0,
"height": 34,
"layer": "top",
"layer": "bottom",
"position": "top",
"spacing": 0,
"reload_style_on_change": true,

View File

@@ -4,7 +4,7 @@
"margin-bottom": 0,
"margin-right": 120,
"height": 60,
"layer": "top",
"layer": "bottom",
"position": "top",
"spacing": 15,
"reload_style_on_change": true,

View File

@@ -4,7 +4,7 @@
"margin-bottom": 0,
"margin-right": 120,
"height": 61,
"layer": "top",
"layer": "bottom",
"position": "top",
"spacing": 15,
"reload_style_on_change": true,