diff --git a/modules/nixos/desktop/cosmic/default.nix b/modules/nixos/desktop/cosmic/default.nix new file mode 100644 index 0000000..ff4d047 --- /dev/null +++ b/modules/nixos/desktop/cosmic/default.nix @@ -0,0 +1,32 @@ +{ + lib, + config, + namespace, + inputs, + ... +}: let + inherit (lib) mkIf mkEnableOption mkForce; + + cfg = config.${namespace}.desktop.cosmic; +in { + options.${namespace}.desktop.cosmic = { + enable = + mkEnableOption "Enable Cosmic desktop" + // { + default = config.${namespace}.desktop.use == "cosmic"; + }; + }; + + config = mkIf cfg.enable { + services = { + displayManager = { + cosmic-greeter.enable = true; + autoLogin = { + enable = true; + user = "chris"; + }; + }; + desktopManager.cosmic.enable = true; + }; + }; +} diff --git a/modules/nixos/desktop/default.nix b/modules/nixos/desktop/default.nix index 9fd9192..13ef881 100644 --- a/modules/nixos/desktop/default.nix +++ b/modules/nixos/desktop/default.nix @@ -1,18 +1,22 @@ -{ lib, config, namespace, inputs, ... }: -let +{ + lib, + config, + namespace, + inputs, + ... +}: let inherit (lib) mkIf mkOption mkEnableOption mkMerge; inherit (lib.types) nullOr enum; cfg = config.${namespace}.desktop; -in -{ +in { imports = [ inputs.grub2-themes.nixosModules.default ]; options.${namespace}.desktop = { use = mkOption { - type = nullOr (enum [ "plasma" "gamescope" "gnome" ]); + type = nullOr (enum ["plasma" "gamescope" "gnome" "cosmic"]); default = null; example = "plasma"; description = "Which desktop to enable"; @@ -20,11 +24,11 @@ in }; config = mkMerge [ - ({ + { services.displayManager = { enable = true; }; - }) + } # (mkIf (cfg.use != null) { # ${namespace}.desktop.${cfg.use}.enable = true; diff --git a/systems/x86_64-linux/manwe/default.nix b/systems/x86_64-linux/manwe/default.nix index 3839cc6..a2c478f 100644 --- a/systems/x86_64-linux/manwe/default.nix +++ b/systems/x86_64-linux/manwe/default.nix @@ -20,7 +20,7 @@ animated = true; }; - desktop.use = "plasma"; + desktop.use = "cosmic"; application = { steam.enable = true;