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
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user