diff --git a/agent/BACKLOG.md b/agent/BACKLOG.md index eebeb66..b770d37 100644 --- a/agent/BACKLOG.md +++ b/agent/BACKLOG.md @@ -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 diff --git a/agent/HARDWARE-QUEUE.md b/agent/HARDWARE-QUEUE.md index e737093..e0bedee 100644 --- a/agent/HARDWARE-QUEUE.md +++ b/agent/HARDWARE-QUEUE.md @@ -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 diff --git a/agent/JOURNAL.md b/agent/JOURNAL.md index 5c1492a..dbe2d44 100644 --- a/agent/JOURNAL.md +++ b/agent/JOURNAL.md @@ -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. diff --git a/agent/MEMORY.md b/agent/MEMORY.md index 014417b..b46858f 100644 --- a/agent/MEMORY.md +++ b/agent/MEMORY.md @@ -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 diff --git a/modules/home/waybar.nix b/modules/home/waybar.nix index aa47677..afe9650 100644 --- a/modules/home/waybar.nix +++ b/modules/home/waybar.nix @@ -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; diff --git a/themes/boreal/waybar.jsonc b/themes/boreal/waybar.jsonc index e2f0e6e..df36992 100644 --- a/themes/boreal/waybar.jsonc +++ b/themes/boreal/waybar.jsonc @@ -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, diff --git a/themes/executive-slate/waybar.jsonc b/themes/executive-slate/waybar.jsonc index f7ae3aa..8d67c50 100644 --- a/themes/executive-slate/waybar.jsonc +++ b/themes/executive-slate/waybar.jsonc @@ -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, diff --git a/themes/summer-day/waybar.jsonc b/themes/summer-day/waybar.jsonc index c00b83a..4fbc009 100644 --- a/themes/summer-day/waybar.jsonc +++ b/themes/summer-day/waybar.jsonc @@ -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, diff --git a/themes/summer-night/waybar.jsonc b/themes/summer-night/waybar.jsonc index 19262f6..66fcab7 100644 --- a/themes/summer-night/waybar.jsonc +++ b/themes/summer-night/waybar.jsonc @@ -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,