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 <noreply@anthropic.com>
This commit is contained in:
76
README.md
76
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
|
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
|
cache. Remaining (optional): a session-level `SSH_AUTH_SOCK` export so GUI
|
||||||
clients launched outside a shell also see the agent.
|
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.<name>.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
|
## Known issues & follow-ups
|
||||||
- ✓ **Yazi TOML parse error on startup:** yazi 26.x made fetchers'
|
- ✓ **Yazi TOML parse error on startup:** yazi 26.x made fetchers'
|
||||||
|
|||||||
Reference in New Issue
Block a user