From 7da6bb979ea0dca5a1d994314c7ecdfadab9e763 Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Sun, 14 Jun 2026 12:27:32 +0100 Subject: [PATCH] docs: expand roadmap (power, opt-in services, display/UX, control center) Captures a batch of new roadmap items from a planning pass: - repo sanitize/organize (incl. the now-redundant console.useXkbConfig / boot.initrd.systemd.enable the installer writes, post LUKS-keymap fix) - laptop power/battery management (PPD-vs-TLP, thermald, charge thresholds) - opt-in services & integrations (Nextcloud/Syncthing, LM Studio/Ollama, containers, Tailscale, Steam/OBS, printing, backups, Flatpak) - display/monitor management (hotplug profiles, dock story) - night light (hyprsunset), runtime keyboard-layout switching, swaync DND - snapshot browse/restore UX, update-awareness indicator - a "nomarchy" control center + first-boot welcome Co-Authored-By: Claude Opus 4.8 --- README.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/README.md b/README.md index dbe84a3..f1fb9ac 100644 --- a/README.md +++ b/README.md @@ -389,6 +389,82 @@ close · `SUPER+1..9` workspaces · `Print` region screenshot. no SSH agent, so no socket contention); screen lock doesn't flush the cache. Remaining (optional): a session-level `SSH_AUTH_SOCK` export so GUI clients launched outside a shell also see the agent. +- **Sanitize & organize the repo:** a housekeeping pass for consistency + and clarity. Candidate targets (scope still to be defined): prune + now-redundant config (e.g. the installer still writes + `console.useXkbConfig` / `boot.initrd.systemd.enable` into `system.nix`, + which are distro-wide defaults as of the LUKS-keymap fix); reconcile the + README option tables with the actual `nomarchy.*` surface; audit + comments/docs for drift against the code; and re-check that every file + still earns its place under the `modules`/`hosts`/`themes`/`pkgs`/`tools` + rule of thumb. +- **Laptop power / battery management:** today the distro does *no* active + power management — only `services.upower` is on, and that's just battery + *reporting* for the Waybar widget; CPU/thermal/charge behaviour is whatever + the kernel and the nixos-hardware profile default to. Add a real power + story behind a `nomarchy.system.power.*` surface, gated to laptops (the + installer already detects chassis): + - **profiles:** ship `power-profiles-daemon` by default (the upstream- + aligned choice — power-saver/balanced/performance via `powerprofilesctl`), + with a switcher in the rofi menu and a Waybar indicator. Offer **TLP** as + an opt-in for maximum battery life (note: mutually exclusive with PPD, and + more aggressive/opaque). **Decision to make:** PPD-default vs TLP-default. + - **thermal:** `thermald` on Intel (the Latitude is Intel) to avoid + throttling. + - **longevity:** battery charge thresholds (e.g. stop charging at ~80%) + where the hardware supports it. + - **cohere** with `modules/home/idle.nix` (idle lock / display-off / + suspend) and review logind lid handling so the power behaviours line up. +- **Opt-in services & integrations:** the counterpart to the opt-*out* + application suite above — heavier or more personal integrations shipped + **off by default**, each a `nomarchy.services..enable` toggle a + downstream flips on in one line. Keeps the base lean while making common + additions trivial. Candidates by area: + - **cloud/sync:** Nextcloud client; Syncthing (`services.syncthing`) + - **local AI:** LM Studio (`lmstudio`); Ollama (`services.ollama`, optional + GPU accel) — pairs with the menu's Ask-Claude philosophy + - **containers/VMs:** Docker/Podman; libvirt + virt-manager + - **networking:** Tailscale (`services.tailscale`); WireGuard + - **gaming/media:** Steam (`programs.steam`); OBS Studio + - **devices:** printing (CUPS + Avahi); KDE Connect / phone integration; + OpenRGB + - **backup:** restic/borg (`services.restic`) + - **escape hatch:** Flatpak (`services.flatpak`) for apps outside nixpkgs + + Decisions: the curated set; whether system services and GUI apps share one + surface or split (`nomarchy.services.*` system-side vs home-side packages); + and how it relates to `nomarchy.apps.*` (opt-out suite). Unfree entries are + already covered (`allowUnfree = true`). +- **Display / monitor management:** today Hyprland just uses + `monitor = ,preferred,auto,1` (mkDefault). Add a real external-monitor/dock + story: declarative per-output config, hotplug profiles (kanshi-style, or + Hyprland's own monitor rules), and optionally a GUI arranger (nwg-displays + writes Hyprland monitor config). Decide declarative-only vs GUI, and the + option shape (`nomarchy.monitors` vs plain Hyprland `monitor` lists). +- **Night light / blue-light filter:** schedulable colour-temperature shift + via `hyprsunset` (Hyprland-native; wlsunset/gammastep are alternatives) — + sunset/sunrise or a fixed schedule, with a menu + Waybar toggle. +- **Runtime keyboard-layout switching:** the session layout is a single + `nomarchy.keyboard.layout` today. Support a list of layouts with a toggle + bind (`hyprctl switchxkblayout` / xkb `grp:` options) and a Waybar + indicator for the active layout. Natural follow-on to the LUKS-keymap work + — keep the system (console/initrd) and session layouts in sync. +- **Do-Not-Disturb:** a swaync DND toggle (`swaync-client -dn`) wired into + the menu and a Waybar indicator, to silence notifications for + presentations/focus. +- **Snapshot browse/restore UX:** snapper already takes BTRFS timeline + snapshots (`nomarchy.system.snapper`); surface them from the desktop — a + rofi menu (or btrfs-assistant) to browse/diff/restore and boot-from- + snapshot — so rollback isn't CLI-only. +- **Update awareness:** updates are manual today (`sys-update`/`home-update`); + add a Waybar indicator / notification when flake inputs are stale or a new + nixpkgs rev is available (optionally with a pending-change count). Augments, + never replaces, the explicit rebuild flow. +- **"nomarchy" control center:** a single TUI/GUI front-end over the common + toggles — theme, power profile, opt-in services, display, DND — built on + the same `nomarchy-theme-sync` / `nomarchy.*` surface the menu already + uses. Plus a first-boot welcome that lands new installs in a guided "pick + your theme / essentials" flow (ties into the branding work). ## Known issues & follow-ups - ✓ **Yazi TOML parse error on startup:** yazi 26.x made fetchers'