From 624023c1d5f31aa0a1f1a2d34ab3984d101655fe Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Sun, 31 May 2026 19:33:57 +0100 Subject: [PATCH] docs: move declarative-state migration batch 1 and monitor scaling to Shipped --- docs/ROADMAP.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 55977a8..887539e 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -27,7 +27,7 @@ _(empty — all entries shipped or moved to Later)_ ### Later (speculative or research-shaped) -- **Declarative-state migration.** Move the bits of `state.json` that don't actually need runtime mutability (theme, font, isLightMode) into NixOS / home-manager options, leaving only genuinely runtime-only state behind. Reduces the "two sources of truth" surface. +- **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. - **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. @@ -179,6 +179,8 @@ 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 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.