diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 257ab57..318b71c 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -20,7 +20,6 @@ Guardrails (apply when adding anything): ### Now (ready to pick up) - **Deep Runtime Polish: State-Sync Stress Test.** Verify the robustness of the hybrid declarative state system (`nomarchy-state.nix`). Run automated "chaos" cycles (rapid theme/font/scaling changes) to catch race conditions or Nix generation errors. -- **Deep Runtime Polish: Keybinding vs. Tooltip Reconciliation.** Ensure that `docs/KEYBINDINGS.md`, Waybar tooltips, and live Hyprland behavior are in perfect sync. Identify and fix stale references or conflicts with app-specific defaults. ### Next (bigger lifts that build on Now) @@ -178,6 +177,7 @@ Pillar is **done** when every component has had a live VM pass and the roadmap c (Move items here when they land — keep them brief, link the commit/PR.) +- _2026-05-31_ — **Deep Runtime Polish: Keybinding vs. Tooltip Reconciliation complete.** Audited the system to ensure documentation, tooltips, and live behavior are in sync. **Waybar:** fixed a major discrepancy in the Nomarchy Menu tooltip (was `Super + Alt + Space`, corrected to `Super + Shift + Space`) and added keybinding hints to all core modules (Wifi, Bluetooth, Battery, CPU, Audio, Clock) for better discoverability. **Rofi:** fixed a stale `terminal: "kitty"` setting in the `summer-day` and `summer-night` themes, retargeting them to Nomarchy's default `alacritty`. **Standardization:** updated the `summer-day` theme to use the standard `nomarchy-launch-audio` action, ensuring consistent behavior across all palettes. - _2026-05-31_ — **Deep Runtime Polish: Interactive Script Audit (Round 2) complete.** Verified complex interactive scripts (`nomarchy-welcome`, `nomarchy-menu`, theme/font/wallpaper pickers) inside a real Alacritty window in a live VM. Confirmed `gum` renders correctly with readable contrast across themes. Verified that the hybrid state sync (Batch 1) correctly handles real-time UI inputs. - _2026-05-31_ — **Deep Runtime Polish: App Integration complete.** Successfully verified and improved the NixOS integration for core apps. **Thunar:** enabled `gvfs`, `tumbler`, and `polkit` (required for drive management); added archive, volume, and media-tags plugins; installed supporting thumbnailers and MIME databases. **Mako:** added `on-click` handlers to notification rules for keyboard accessibility; refactored `nomarchy-notification-dismiss` to robustly handle JSON/human output from `makoctl list`. **VSCode:** verified that `nomarchy.fonts.monospace` and `nomarchy.theme` correctly propagate to user settings and extensions. - _2026-05-31_ — **Declarative-state migration: complete.** Implemented a hybrid model where runtime UI choices (theme, font, panel position, gaps, toggles) are automatically mirrored from `state.json` into a machine-managed `/etc/nixos/nomarchy-state.nix` file. This file is imported by `home.nix`, making UI changes declarative and permanent across rebuilds. Updated `nomarchy-state-write` and all setter scripts to trigger the sync automatically. The installer now generates this initial bridge, closing the "two sources of truth" gap for the entire UI surface. diff --git a/features/desktop/waybar/config/config.jsonc b/features/desktop/waybar/config/config.jsonc index 8bb7dd7..3ef0fbf 100644 --- a/features/desktop/waybar/config/config.jsonc +++ b/features/desktop/waybar/config/config.jsonc @@ -43,7 +43,7 @@ "format": "", "on-click": "nomarchy-menu", "on-click-right": "xdg-terminal-exec", - "tooltip-format": "Nomarchy Menu\n\nSuper + Alt + Space" + "tooltip-format": "Nomarchy Menu\n\nSuper + Shift + Space" }, "custom/update": { "format": "", @@ -58,12 +58,14 @@ "interval": 5, "format": "󰍛", "on-click": "nomarchy-launch-or-focus-tui btop", - "on-click-right": "alacritty" + "on-click-right": "alacritty", + "tooltip-format": "Activity\n\nSuper + Ctrl + T" }, "clock": { "format": "{:L%A %H:%M}", "format-alt": "{:L%d %B W%V %Y}", - "tooltip": false, + "tooltip": true, + "tooltip-format": "Show time\n\nSuper + Ctrl + Alt + T", "on-click": "nomarchy-launch-or-focus-tui calcurse", "on-click-right": "nomarchy-launch-floating-terminal-with-presentation nomarchy-tz-select" }, @@ -73,9 +75,9 @@ "format-wifi": "{icon}", "format-ethernet": "󰀂", "format-disconnected": "󰤮", - "tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}", - "tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}", - "tooltip-format-disconnected": "Disconnected", + "tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}\n\nSuper + Ctrl + W", + "tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}\n\nSuper + Ctrl + W", + "tooltip-format-disconnected": "Disconnected\n\nSuper + Ctrl + W", "interval": 3, "spacing": 1, "on-click": "nomarchy-launch-wifi" @@ -90,8 +92,9 @@ "default": ["󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"] }, "format-full": "󰂅", - "tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%", - "tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%", + "tooltip-format": "Battery Status\n\nSuper + Ctrl + Alt + B", + "tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%\n\nSuper + Ctrl + Alt + B", + "tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%\n\nSuper + Ctrl + Alt + B", "interval": 5, "on-click": "nomarchy-menu power", "states": { @@ -105,14 +108,14 @@ "format-disabled": "󰂲", "format-connected": "󰂱", "format-no-controller": "", - "tooltip-format": "Devices connected: {num_connections}", + "tooltip-format": "Devices connected: {num_connections}\n\nSuper + Ctrl + B", "on-click": "nomarchy-launch-bluetooth" }, "pulseaudio": { "format": "{icon}", "on-click": "nomarchy-launch-audio", "on-click-right": "pamixer -t", - "tooltip-format": "Playing at {volume}%", + "tooltip-format": "Playing at {volume}%\n\nSuper + Ctrl + A", "scroll-step": 5, "format-muted": "", "format-icons": { diff --git a/features/desktop/waybar/themes/summer-day/config.jsonc b/features/desktop/waybar/themes/summer-day/config.jsonc index 8ac8260..a4677de 100755 --- a/features/desktop/waybar/themes/summer-day/config.jsonc +++ b/features/desktop/waybar/themes/summer-day/config.jsonc @@ -36,7 +36,7 @@ "interval": "once", "format": "󰣇", "on-click": "nomarchy-menu", - "tooltip": false + "tooltip-format": "Nomarchy Menu\n\nSuper + Shift + Space" }, "backlight": { @@ -77,15 +77,17 @@ "car": "", "default": ["", "", ""] }, - "on-click-right": "pavucontrol", - "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle" + "on-click": "nomarchy-launch-audio", + "on-click-right": "pamixer -t", + "tooltip-format": "Playing at {volume}%\n\nSuper + Ctrl + A" }, "network": { "format-wifi": " {signalStrength}%", "format-ethernet": " {signalStrength}%", "format-disconnected": "󰤭", - "on-click": "nomarchy-launch-wifi" + "on-click": "nomarchy-launch-wifi", + "tooltip-format": "Wifi controls\n\nSuper + Ctrl + W" }, "battery": { @@ -104,15 +106,20 @@ "format-plugged": " {capacity}%", "format-alt": "{icon} {capacity}%", "format-full": " 100%", - "format-icons": ["", "", "", "", "", "", "", "", "", ""] + "format-icons": ["", "", "", "", "", "", "", "", "", ""], + "tooltip-format": "Battery Status\n\nSuper + Ctrl + Alt + B" }, "clock": { - "format": " {:%H:%M}" + "format": " {:%H:%M}", + "tooltip": true, + "tooltip-format": "Show time\n\nSuper + Ctrl + Alt + T" }, "clock#date": { "format": " {:%A, %B %d, %Y}", + "tooltip": true, + "tooltip-format": "Show time\n\nSuper + Ctrl + Alt + T", "on-click": "nomarchy-launch-or-focus-tui calcurse" }, diff --git a/features/desktop/waybar/themes/summer-night/config.jsonc b/features/desktop/waybar/themes/summer-night/config.jsonc index ea1be36..257b4af 100644 --- a/features/desktop/waybar/themes/summer-night/config.jsonc +++ b/features/desktop/waybar/themes/summer-night/config.jsonc @@ -40,7 +40,7 @@ "interval": "once", "format": "\uf000", "on-click": "nomarchy-menu", - "tooltip-format": "Application Launcher" + "tooltip-format": "Nomarchy Menu\n\nSuper + Shift + Space" }, "custom/update": { @@ -130,31 +130,35 @@ "on-click": "pamixer -t", "on-click-middle": "nomarchy-launch-audio", "on-click-right": "pavucontrol", - "tooltip-format": "{icon} {desc} | {volume}%" + "tooltip-format": "{icon} {desc} | {volume}%\n\nSuper + Ctrl + A" }, "network": { "format-wifi": " {signalStrength}%", "format-ethernet": " {signalStrength}%", "format-disconnected": "󰤭", - "on-click": "nomarchy-launch-wifi" + "on-click": "nomarchy-launch-wifi", + "tooltip-format": "Wifi controls\n\nSuper + Ctrl + W" }, "custom/battery": { "interval": 30, "format": "{}", "exec": "nomarchy-battery-status", - "on-click": "nomarchy-menu power" + "on-click": "nomarchy-menu power", + "tooltip-format": "Battery Status\n\nSuper + Ctrl + Alt + B" }, "clock": { "format": " {:%H:%M}", - "tooltip": false + "tooltip": true, + "tooltip-format": "Show time\n\nSuper + Ctrl + Alt + T" }, "clock#date": { "format": " {:%A, %B %d, %Y}", - "tooltip": false, + "tooltip": true, + "tooltip-format": "Show time\n\nSuper + Ctrl + Alt + T", "on-click": "nomarchy-launch-or-focus-tui calcurse" }, diff --git a/themes/palettes/summer-day/apps/rofi.rasi b/themes/palettes/summer-day/apps/rofi.rasi index eb6ba4b..c86b299 100644 --- a/themes/palettes/summer-day/apps/rofi.rasi +++ b/themes/palettes/summer-day/apps/rofi.rasi @@ -7,7 +7,7 @@ configuration { modi: "drun"; show-icons: true; icon-theme: "Papirus-Light"; - terminal: "kitty"; + terminal: "alacritty"; drun-display-format: "{name}"; case-sensitive: false; location: 0; diff --git a/themes/palettes/summer-night/apps/rofi.rasi b/themes/palettes/summer-night/apps/rofi.rasi index 970aaf0..bf804cd 100644 --- a/themes/palettes/summer-night/apps/rofi.rasi +++ b/themes/palettes/summer-night/apps/rofi.rasi @@ -7,7 +7,7 @@ configuration { modi: "drun"; show-icons: true; icon-theme: "Papirus-Dark"; - terminal: "kitty"; + terminal: "alacritty"; drun-display-format: "{name}"; case-sensitive: false; location: 0;