3470751c3e
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.
13 lines
656 B
Nix
13 lines
656 B
Nix
# 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";
|
|
}
|