diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 43fd9ec..ba3d623 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -36,8 +36,8 @@ _(empty — all entries shipped or moved to Later)_ - **Optional `nomarchy-installer-vm`** rebuilt as a real flake app (not a one-off shell script) so users can install Nomarchy into a libvirt VM declaratively. - **Surface support module** via the relevant `nixos-hardware` profile + Surface kernel patches behind a `nomarchy.hardware.isSurface` toggle. - **High-contrast accessibility palette.** New `themes/palettes/high-contrast/` hitting WCAG AAA-grade contrast — pure-black background, pure-white foreground, saturated ANSI colors for distinction. Ships its own `colors.toml`, `icons.theme` (pick a high-contrast icon family or document the gap), and one solid-black `backgrounds/` entry. Pairs with `nomarchy.accessibility.enable` (Shipped 2026-05-22) but stays manually selected via `nomarchy-theme-set high-contrast` so the home option doesn't silently overwrite the user's existing theme choice. Split out of the original Accessibility row because it's a design task (24-colour WCAG palette + icon family choice) that wants its own review. -- **summer-day waybar `custom/launcher` references uninstalled tools.** Its on-click runs `wofi --show drun --term=kitty …` — but Nomarchy ships walker/rofi (not wofi) and kitty isn't a default-installed terminal (alacritty is). On the summer-day theme the launcher button does nothing. Retarget it to `walker` (or `nomarchy-launch-walker`) and the default terminal. Found during the Pillar 9 Component 6 pass. - **No calendar app shipped.** The summer-night waybar date used to wire `on-click → kitty calcurse` (both uninstalled; the dead click was removed in the Component 6 pass). If a clickable calendar is wanted, ship a calendar tool (e.g. `calcurse`, or a GUI like `gnome-calendar`) and wire the date `on-click` to it via the default terminal / `xdg-terminal-exec`. + - **Publish or replace `Bjarne.{ethereal,hackerman,vantablack}-nomarchy` VSCode theme extensions.** The `ethereal`, `hackerman`, and `vantablack` palettes' `apps/vscode.json` files reference VSCode theme extensions under the `Bjarne` publisher that don't exist on the VSCode marketplace (verified via the marketplace extensionquery API on 2026-05-22). With the rest of the palette-extension pinning shipped, these three palettes are the only ones where VSCode still falls back to its default theme. Options: (a) publish the three extensions to the marketplace under the `Bjarne` publisher (or whatever the maintainer's account is) and add them to `features/apps/vscode.nix`'s `marketplaceExtensions` list; (b) package them locally as standalone `pkgs.vscode-utils.buildVscodeExtension` derivations sourced from a Nomarchy-hosted repo; (c) retarget the three palettes' `apps/vscode.json` to an existing marketplace-published theme that visually matches. ## 3. Pillar: Script & menu audit @@ -180,6 +180,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_ — **Waybar theme fixes (summer-day/night).** Retargeted broken `on-click` actions in the `summer-day` and `summer-night` themes to Nomarchy scripts. Fixed `custom/launcher` (was `wofi/kitty`), `network` (was `wifimenu.sh`), and `custom/powermenu` (was `wlogout`) to use `nomarchy-menu`, `nomarchy-launch-wifi`, and `nomarchy-menu power` respectively. Removed hardcoded `nvidia_0` backlight device from `summer-day` to allow Waybar auto-detection. - _2026-05-31_ — **Pillar 9: Live VM runtime QA — complete.** Successfully drove the entire distro through a comprehensive runtime audit in a live VM. Verified the installer loop, first-boot UX, core system/home modules, desktop stack (Hyprland, waybar, walker, mako, swayosd), curated apps, theme engine (all 21 palettes), every `nomarchy-*` script, and form-factor presets. Fixed multiple runtime-only bugs (D-Bus errors, path mismatches, broken keybindings, renamed packages) that were invisible to static evaluation. This pillar closes the "runtime verification" requirement for the entire project. - _2026-05-31_ — **Pillar 8: QA audit — complete.** Finished the code-level and runtime sweeps for all 10 components: Installer, First-boot UX, Core system/home modules, Desktop stack, Apps, Theme engine, Scripts, ISOs, and Lib/State-schema. Every shipped feature has been verified end-to-end on real hardware or in a VM. - _2026-05-31_ — **Pillar 8 / Component 10: Lib + state schema complete.** Audited `lib/state-schema.nix` and its consumers (`installer/install.sh`, `core/{system,home}/{options,state}.nix`, `nomarchy-welcome`, and toggle scripts). Confirmed `state-schema.nix` is the single source of truth for all system/home defaults, resolving the previous nord/summer-night drift. Verified validation logic: `nomarchy-theme-set` rejects missing theme directories; `nomarchy-state-write` enforces `bool`/`number`/`json` types; and Nix evaluation provides clean error messages on malformed `state.json`. Confirmed `state.json` correctly backfills missing keys with schema defaults during Home Manager activation. diff --git a/features/default.nix b/features/default.nix index ebeba5f..7332423 100644 --- a/features/default.nix +++ b/features/default.nix @@ -67,6 +67,7 @@ in xdg-terminal-exec swaybg rofi # rofi-wayland was merged into rofi upstream + calcurse # TUI calendar # Theming — cursor package stays here; icon theme packages are pulled in # dynamically by themes/engine/stylix.nix via nomarchyLib.iconThemePackage diff --git a/features/desktop/waybar/config/config.jsonc b/features/desktop/waybar/config/config.jsonc index ebf4ac0..8bb7dd7 100644 --- a/features/desktop/waybar/config/config.jsonc +++ b/features/desktop/waybar/config/config.jsonc @@ -64,6 +64,7 @@ "format": "{:L%A %H:%M}", "format-alt": "{:L%d %B W%V %Y}", "tooltip": false, + "on-click": "nomarchy-launch-or-focus-tui calcurse", "on-click-right": "nomarchy-launch-floating-terminal-with-presentation nomarchy-tz-select" }, "network": { diff --git a/features/desktop/waybar/themes/summer-day/config.jsonc b/features/desktop/waybar/themes/summer-day/config.jsonc index 5cc9dec..8ac8260 100755 --- a/features/desktop/waybar/themes/summer-day/config.jsonc +++ b/features/desktop/waybar/themes/summer-day/config.jsonc @@ -112,7 +112,8 @@ }, "clock#date": { - "format": " {:%A, %B %d, %Y}" + "format": " {:%A, %B %d, %Y}", + "on-click": "nomarchy-launch-or-focus-tui calcurse" }, "custom/powermenu": { diff --git a/features/desktop/waybar/themes/summer-night/config.jsonc b/features/desktop/waybar/themes/summer-night/config.jsonc index b797254..ea1be36 100644 --- a/features/desktop/waybar/themes/summer-night/config.jsonc +++ b/features/desktop/waybar/themes/summer-night/config.jsonc @@ -154,7 +154,8 @@ "clock#date": { "format": " {:%A, %B %d, %Y}", - "tooltip": false + "tooltip": false, + "on-click": "nomarchy-launch-or-focus-tui calcurse" }, "custom/powermenu": {