fix(home): remove dead behavior options, reserve overrides API #4
Reference in New Issue
Block a user
Delete Branch "wave/qa-core-home"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two declared-but-non-functional option subsystems in core/home were
documented in OPTIONS.md and actively misleading users.
nomarchy.behavior.hyprland.{bindings,input,windowRules,autostart}were declared in core/home/behavior.nix with a
behaviorConfigsmapping let-binding — both completely unread elsewhere in the tree.
The actual hypr/*.conf files are deployed by
features/desktop/hyprland/default.nix with
lib.mkDefault,unconditionally. Setting
behavior.hyprland.bindings = falsehadzero effect. OPTIONS.md's "Disable Nomarchy's default Hyprland
keybindings" example was a lie. Removed the four dead options,
deleted behavior.nix entirely, dropped the import from
core/home/default.nix, and rewrote the OPTIONS.md example to use
xdg.configFile."hypr/bindings.conf".source = ./mine(whichactually works against the existing
lib.mkDefaultpriority).nomarchy.overrides.{enable,paths}advertised a file-based overrideloader that doesn't exist. The module created
~/.config/nomarchy/overrides/{hypr,waybar,apps}directories andwrote a README claiming "place files here to override upstream
defaults" — but
getOverrideOrDefaultwas never called andpathswas never populated. Rewrote core/home/overrides.nix to keep just
the option declarations (so configs that already set these still
evaluate) and marked them clearly as reserved/no-op in OPTIONS.md.
Removed the misleading README write and dir-creation. Logged a
Next-column roadmap row for implementing the loader properly.
While here:
nomarchy.configOverrides(the working bulk-redirectmechanism) vs
nomarchy.overrides.*(the reserved one) in OPTIONS.md— they're different things and the "See Overrides below" link was
pointing at the broken subsystem.
nomarchy.iconsTheme/nomarchy.isLightModedefault text — both are derived from the active theme in
core/home/state.nix, not the static literals the docs claimed.
behavior.nix removal and the overrides.nix reservation.
Found during Pillar 8 audit of core/home modules.
Two declared-but-non-functional option subsystems in core/home were documented in OPTIONS.md and actively misleading users. 1. `nomarchy.behavior.hyprland.{bindings,input,windowRules,autostart}` were declared in core/home/behavior.nix with a `behaviorConfigs` mapping let-binding — both completely unread elsewhere in the tree. The actual hypr/*.conf files are deployed by features/desktop/hyprland/default.nix with `lib.mkDefault`, unconditionally. Setting `behavior.hyprland.bindings = false` had zero effect. OPTIONS.md's "Disable Nomarchy's default Hyprland keybindings" example was a lie. Removed the four dead options, deleted behavior.nix entirely, dropped the import from core/home/default.nix, and rewrote the OPTIONS.md example to use `xdg.configFile."hypr/bindings.conf".source = ./mine` (which actually works against the existing `lib.mkDefault` priority). 2. `nomarchy.overrides.{enable,paths}` advertised a file-based override loader that doesn't exist. The module created `~/.config/nomarchy/overrides/{hypr,waybar,apps}` directories and wrote a README claiming "place files here to override upstream defaults" — but `getOverrideOrDefault` was never called and `paths` was never populated. Rewrote core/home/overrides.nix to keep just the option declarations (so configs that already set these still evaluate) and marked them clearly as reserved/no-op in OPTIONS.md. Removed the misleading README write and dir-creation. Logged a Next-column roadmap row for implementing the loader properly. While here: - Clarified `nomarchy.configOverrides` (the *working* bulk-redirect mechanism) vs `nomarchy.overrides.*` (the reserved one) in OPTIONS.md — they're different things and the "See Overrides below" link was pointing at the broken subsystem. - Fixed OPTIONS.md `nomarchy.iconsTheme` / `nomarchy.isLightMode` default text — both are derived from the active theme in core/home/state.nix, not the static literals the docs claimed. - Updated docs/AGENT.md §2 and docs/STRUCTURE.md to reflect the behavior.nix removal and the overrides.nix reservation. Found during Pillar 8 audit of core/home modules.