diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 887539e..a14282f 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -27,8 +27,8 @@ _(empty — all entries shipped or moved to Later)_ ### Later (speculative or research-shaped) -- **Declarative-state migration: Batch 2 (Toggles & Layout).** Move the remaining configuration fields from `state.json` (panelPosition, hyprland gaps/borders, system toggles) into NixOS / home-manager options. Finalizes the separation between genuinely runtime-only state (e.g. `welcome_done`) and declarative configuration. -- **Rolling vs pinned channel choice in the installer.** Today the generated flake pins `nomarchy` to a rev. Offer a "rolling" option that follows `main` and a `nomarchy-rollback` helper for stuck rebuilds. +- **Rolling vs pinned channel choice in the installer.** + Today the generated flake pins `nomarchy` to a rev. Offer a "rolling" option that follows `main` and a `nomarchy-rollback` helper for stuck rebuilds. - **Theme creation wizard.** A `nomarchy-theme-new` script that scaffolds a new palette from a base16 hex set (or by sampling a wallpaper), runs `nomarchy-themes-prebuild`, and opens a PR template. - **CI matrix on Forgejo Actions.** On every push: `nix flake check`, build `nomarchy-installer`, `nomarchy-live`, `default`. On tag: publish ISOs as release artefacts. - **Golden-image VM tests per palette.** A `nixosTest` per palette that boots the `default` config, takes a screenshot, and diffs against a golden image. Catches Stylix regressions before they hit users. @@ -179,8 +179,9 @@ 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_ — **Declarative-state migration: Batch 1 (Theme & Font).** Moved the primary source of truth for `theme` and `fonts.monospace` from `state.json` to pure Nix options in `home.nix` (and `system.nix` for theme). The `nomarchy.theme` and `nomarchy.fonts.monospace` options now default to schema values and are the declarative authorities. Runtime scripts (`nomarchy-theme-set`, `nomarchy-font-set`) still update `state.json` for instant session-local feedback and as a "seed" for future rebuilds, but now notify the user that these changes are temporary until added to their Nix configuration. +- _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. - _2026-05-31_ — **Declarative monitor scaling.** Replaced static `monitors.conf` with a Nix-generated file driven by `nomarchy.hyprland.scale` (default `"auto"`). Added a scale picker to `nomarchy-welcome` to handle HiDPI displays during first-boot. + - _2026-05-31_ — **Calendar app shipped.** Added `calcurse` (TUI calendar) to the core `features` module and wired all Waybar clock modules (`clock` in base, `clock#date` in themes) to launch it via `nomarchy-launch-or-focus-tui`. Provides a functional calendar across the entire distro. - _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.