diff --git a/modules/default.nix b/modules/default.nix index 7cd86ec..ef69bad 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -14,6 +14,7 @@ let }) paths ); in { + options = ./options.nix; services = mkAttrsFromPaths [ ./services/jellyfin.nix ./services/nginx.nix diff --git a/modules/options.nix b/modules/options.nix new file mode 100644 index 0000000..9b8f45a --- /dev/null +++ b/modules/options.nix @@ -0,0 +1,18 @@ +{ config, lib, ... }: { + options.me = { + environment = lib.mkOption { + type = lib.types.enum [ "desktop" "laptop" "headless" ]; + default = "desktop"; + }; + + fprint = lib.mkOption { + type = lib.types.bool; + default = false; + }; + + gui = lib.mkOption { + type = lib.types.bool; + default = config.me.environment != "headless"; + }; + }; +} diff --git a/modules/system/base.nix b/modules/system/base.nix index c7e3591..c924309 100644 --- a/modules/system/base.nix +++ b/modules/system/base.nix @@ -1,4 +1,6 @@ -{ config, enableGUI, inputs, modules, overlays, ... }: { +{ config, inputs, modules, ... }: { + imports = [ modules.options ]; + environment.etc = { "machine-id".source = "/persist/machine-id"; "ssh/ssh_host_rsa_key".source = "/persist/ssh_host_rsa_key"; diff --git a/modules/system/home-manager.nix b/modules/system/home-manager.nix index 3255e4d..9de74ad 100644 --- a/modules/system/home-manager.nix +++ b/modules/system/home-manager.nix @@ -9,5 +9,11 @@ inherit enableGUI inputs modules; sysConfig = config; }; + sharedModules = [ + { + imports = [ modules.options ]; + config.me = config.me; + } + ]; }; }