refactor(#107): theme-state.json → state.json, theme-sync → state-sync
Some checks failed
Check / eval (push) Has been cancelled
Some checks failed
Check / eval (push) Has been cancelled
The machine flake's git-tracked settings file is system state, not "theme" only — rename it to state.json. CLI becomes nomarchy-state-sync with a nomarchy-theme-sync symlink for scripts and muscle memory. Eval (mkFlake, doctor, lifecycle) still accepts theme-state.json; the next write migrates to state.json and removes the legacy file. Documented in MIGRATION.md; drop the CLI alias after release notes.
This commit is contained in:
@@ -226,7 +226,7 @@ always — the same on-AC question `modules/home/idle.nix`'s suspend listener
|
||||
already answers with `${onAc} ||`.
|
||||
|
||||
In-flake state like the rest (`settings.*`), menu-writable, and read via
|
||||
`theme-state-read.nix` on the NixOS side — NOT `config.nomarchy.settings`,
|
||||
`state-read.nix` on the NixOS side — NOT `config.nomarchy.settings`,
|
||||
which does not exist there (ROADMAP § *NixOS-side state bridges (#116)*; copy
|
||||
the `bluetooth.enable` shape in `modules/nixos/default.nix` and add a case to
|
||||
`checks.state-bridges`). Pass = the toggle survives a rebuild,
|
||||
@@ -234,22 +234,6 @@ a suspended machine hibernates after the configured delay and resumes, and a
|
||||
machine without hibernate support hides the row instead of offering a
|
||||
suspend that never wakes.
|
||||
|
||||
### 107. Rename `theme.json` to reflect that it is the system state
|
||||
|
||||
The state file long ago stopped being about themes: it carries night-light,
|
||||
keyboard memory, display resolution and profiles, auto-commit, services and
|
||||
more, so `theme.json` now misnames its own contents and misleads anyone
|
||||
reading the flake. Rename it to `state.json` (Bernardo's call, 2026-07-14 —
|
||||
settled, do not revisit), and carry the `nomarchy-theme-sync` tool name along
|
||||
with it.
|
||||
|
||||
Standalone task — do not fold it into a feature. Ships with a compatibility
|
||||
shim that keeps reading an existing `theme.json` so downstream checkouts do
|
||||
not break on a pull, plus a migration note. Pass = a fresh install and an
|
||||
existing downstream checkout both work, every in-repo reference (modules,
|
||||
tools, template, docs) uses the new name, and the shim is documented with the
|
||||
release it can be dropped in.
|
||||
|
||||
### 104. Runtime Airplane mode
|
||||
|
||||
Add Airplane mode under System connectivity controls. It must disable Wi-Fi
|
||||
@@ -280,7 +264,7 @@ read, so *these two toggles have never actually worked for any user*. That
|
||||
cuts both ways: "preserve existing behavior" is not a reason to keep them
|
||||
(there is no behavior to preserve), but the state keys and their bridges are
|
||||
real now and outlive the TUI — dropping the rows must not drop the keys, or a
|
||||
machine whose theme-state.json already says `bluetooth.enable = false` will
|
||||
machine whose state.json already says `bluetooth.enable = false` will
|
||||
silently flip back on at the next rebuild. `checks.state-bridges` covers those
|
||||
two keys and will fail loudly if the bridges go with the tool; keep it green,
|
||||
and if a key is deliberately retired, remove its case in the same commit.
|
||||
|
||||
Reference in New Issue
Block a user