Same footgun as the home.packages fix, found by sweeping the tree for
`mkDefault` on list options that other modules contribute to at normal
priority (so filterOverrides discards the mkDefault def entirely):
* themes/engine/sddm.nix — environment.systemPackages = mkDefault
[ nomarchy-sddm-theme ] was dropped, so the SDDM greeter theme package
was never installed (unthemed login).
* themes/engine/plymouth.nix — boot.kernelParams = mkDefault [ quiet
splash loglevel=3 … ] was dropped, so boots weren't quiet/clean.
* features/desktop/waybar/default.nix — home.packages = mkDefault
[ font-awesome ] was dropped, so waybar's icon font was missing.
Verified via eval: nomarchy-sddm-theme now in systemPackages, "quiet" in
kernelParams, font-awesome in home.packages. Left the genuinely-safe
single-definition mkDefaults alone (plymouth.themePackages,
resolved.fallbackDns, hyprsunset.extraArgs) and the hybridGPU videoDrivers
mkDefault (it outranks nixpkgs' mkOptionDefault on real hardware).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
themes/engine/plymouth/nomarchy.script had
`Window.SetBackgroundTopColor(0.101, 0.105, 0.149)` hardcoded — a
Tokyo-Night-ish #1a1b26 — and nomarchy.plymouth had a matching
`ConsoleLogBackgroundColor=0x1a1b26`. Both were frozen regardless of
the active nomarchy.system.theme.
Replaced the literals with placeholders (@BG_R@, @BG_G@, @BG_B@,
@BG_HEX@) in the source files. themes/engine/plymouth.nix now reads
the active palette via `nomarchyLib.getPalette
config.nomarchy.system.theme`, converts palette.base00 into three
0.0–1.0 floats (Nix has no floating-point math, so `(byte * 1000) /
255` integer division formatted as `0.XXX`), and `sed`-substitutes
both files during installPhase.
Smoke-built the derivation against the default summer-night palette:
$ cat .../nomarchy.script | grep BackgroundTopColor
Window.SetBackgroundTopColor(0.176, 0.207, 0.231);
$ cat .../nomarchy.plymouth | grep ConsoleLogBackgroundColor
ConsoleLogBackgroundColor=0x2d353b
Both match the expected byte→float conversion from base00=2d353b.
Closes the "Plymouth theme variants per palette" Next-column item.
`nix flake check --no-build` clean.
- Reorganize directory structure into core/, features/, and themes/
- Colocate application Nix logic, configs, scripts, and theme overrides
- Implement 'Inversion of Control' for theming: apps now pull theme-specific layouts
- Update flake.nix and shared library paths to match the new structure
- Document the new Feature-Centric architecture in README.md