diff --git a/agent/BACKLOG.md b/agent/BACKLOG.md index db887bc..be60c54 100644 --- a/agent/BACKLOG.md +++ b/agent/BACKLOG.md @@ -95,12 +95,6 @@ the Wi‑Fi card.” Does **not** rewrite the flake unless a later `--apply` is explicitly designed. Cost: extract script + package + man/README pointer; V0–V1. -### 63. Generated Waybar: identity-bar affordances (powermenu + logo) -Whole-swap bars ship `custom/powermenu` and a left logo → main menu; the -generated `waybar.nix` bar has neither. Optional parity add for -default-theme users. Cost: small waybar.nix + CSS; **parity rule:** -whole-swaps must get the same modules if added. V1 + visual V2. - ## LATER - **Wallpapers artifact split** (ROADMAP § Faster switches — decided, diff --git a/agent/JOURNAL.md b/agent/JOURNAL.md index 9dd4a78..27eb858 100644 --- a/agent/JOURNAL.md +++ b/agent/JOURNAL.md @@ -17,6 +17,18 @@ Template: --- +## 2026-07-10 — #63 generated Waybar logo + powermenu +- **Task:** NEXT #63 — reverse parity: generated bar lacked whole-swap + logo → menu and power icon → power menu. +- **Did:** `custom/nomarchy` (left, Nomarchy.ttf U+F000) + `custom/powermenu` + (right, U+F011 → `nomarchy-menu power`) in generated settings/style. + Fixed Nix `\uf000` pitfall (no `\u` escapes — use literal UTF-8). + Whole-swaps already had both; no JSON/CSS edits. Closed #63. +- **Verified:** **V2** — `THEME=tokyo-night` theme-shot: left monogram N, + right power glyph, accent styling; config modules-left/right correct. + Crop paths under `/tmp/theme-shot-tn2-*.png`. +- **Next suggestion:** product path #55 fingerprint menu (or #57 live install). + ## 2026-07-10 — #60 name-agnostic system-battery scan - **Task:** NEXT #60 — align charge-limit / menu / waybar / doctor / installer chassis with battery-notify’s type=Battery + !scope=Device diff --git a/modules/home/waybar.nix b/modules/home/waybar.nix index 6373c0c..2bf37bc 100644 --- a/modules/home/waybar.nix +++ b/modules/home/waybar.nix @@ -166,11 +166,28 @@ let # home-manager switch restyles the running bar without a restart. reload_style_on_change = true; - modules-left = [ "hyprland/workspaces" "hyprland/window" ]; + # Logo + powermenu: whole-swaps already ship these (parity was reverse + # — BACKLOG #63). Click targets are existing nomarchy-menu entry points. + modules-left = [ "custom/nomarchy" "hyprland/workspaces" "hyprland/window" ]; modules-center = [ "clock" ]; modules-right = [ "custom/recording" "idle_inhibitor" "tray" "custom/vpn" "pulseaudio" "custom/powerprofile" "custom/nightlight" ] ++ lib.optional showLanguage "hyprland/language" - ++ [ "battery" "custom/doctor" "custom/updates" "custom/notification" ]; + ++ [ "battery" "custom/doctor" "custom/updates" "custom/notification" "custom/powermenu" ]; + + "custom/nomarchy" = { + interval = "once"; + # U+F000 — Nomarchy monogram (literal UTF-8; Nix has no \u escapes). + # CSS pins font-family: Nomarchy so Nerd Fonts' glass glyph does not win. + format = ""; + on-click = "nomarchy-menu"; + tooltip-format = "Nomarchy menu"; + }; + + "custom/powermenu" = { + format = ""; # U+F011 power symbol + on-click = "nomarchy-menu power"; + tooltip = false; + }; "hyprland/workspaces" = { format = "{icon}"; @@ -385,10 +402,19 @@ let font-weight: bold; } - #tray, #pulseaudio, #custom-powerprofile, #custom-nightlight, #custom-updates, #custom-vpn, #custom-recording, #idle_inhibitor, #language, #battery, #custom-doctor, #custom-notification { + #custom-nomarchy { + color: @accent; + font-family: Nomarchy; + font-size: ${toString (t.fonts.size + 4)}pt; + padding: 0 10px; + } + #custom-nomarchy:hover { color: @accentAlt; } + + #tray, #pulseaudio, #custom-powerprofile, #custom-nightlight, #custom-updates, #custom-vpn, #custom-recording, #idle_inhibitor, #language, #battery, #custom-doctor, #custom-notification, #custom-powermenu { color: alpha(@text, 0.85); padding: 0 10px; } + #custom-powermenu:hover { color: @bad; } /* Group rhythm (item 28c): a wider breath before each functional group of the right cluster — media/stats · toggles · status — @@ -420,7 +446,7 @@ let (size+2)pt Pango icon span the icon+text modules use — bump their font-size to match, or these glyphs read smaller than the volume / battery / language icons beside them. */ - #custom-recording, #custom-updates, #custom-vpn, #custom-nightlight, #custom-doctor, #custom-notification { font-size: ${toString (t.fonts.size + 2)}pt; } + #custom-recording, #custom-updates, #custom-vpn, #custom-nightlight, #custom-doctor, #custom-notification, #custom-powermenu { font-size: ${toString (t.fonts.size + 2)}pt; } /* The speedometer + caffeine glyphs render small in their em box — size them up a touch more so they read at a glance. */