refactor(modules): declare swayDesktop feature flag in a base module
lyrathorpe/user.nix reads features.swayDesktop.enable on every host, but the option was declared inside lyrathorpe/swaywm.nix -- so a host that does not import swaywm.nix (a headless server) would fail evaluation. Move the option declaration to a new always-imported system/modules/features.nix and wire it into baseModules; swaywm.nix keeps only its implementation (config) block. Headless hosts can now omit swaywm.nix and the flag defaults to false.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
# Feature-flag option declarations shared by every NixOS host (imported via
|
||||
# baseModules in flake.nix). Declaring the flags here -- rather than inside the
|
||||
# module that implements them -- means a host can read or set a flag without
|
||||
# importing the (often large) implementation module. In particular,
|
||||
# features.swayDesktop.enable is read by lyrathorpe/user.nix on every host, but a
|
||||
# headless host (e.g. the Pi) must be able to leave it at its default without
|
||||
# pulling in lyrathorpe/swaywm.nix. The implementation lives in swaywm.nix,
|
||||
# gated on this flag.
|
||||
{ lib, ... }:
|
||||
{
|
||||
options.features.swayDesktop.enable = lib.mkEnableOption "the Sway desktop";
|
||||
}
|
||||
Reference in New Issue
Block a user