diff --git a/hosts/nel-desktop/configuration.nix b/hosts/nel-desktop/configuration.nix index 2acfc87..9ae318a 100644 --- a/hosts/nel-desktop/configuration.nix +++ b/hosts/nel-desktop/configuration.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: { +{ imports = [ ../../modules/nixos ./hardware-configuration.nix @@ -14,6 +14,8 @@ background = ./transcoded-wallpaper.jpeg; }; + desktop.plasma.enable = true; + users = { nel = { isAdmin = true; @@ -50,14 +52,6 @@ }; users.users.nel.extraGroups = [ "podman" ]; - services.desktopManager.plasma6.enable = true; - # i dont use elisa or any of the KDE PIM suite and they both pull in a bunch of big dependencies - environment.plasma6.excludePackages = [ - pkgs.kdePackages.elisa - pkgs.kdePackages.qrca - ]; - programs.kde-pim.enable = false; - services.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { diff --git a/modules/nixos/system/default.nix b/modules/nixos/system/default.nix index 218ef92..fe0b853 100644 --- a/modules/nixos/system/default.nix +++ b/modules/nixos/system/default.nix @@ -3,6 +3,7 @@ ./bluetooth.nix ./boot ./console.nix + ./desktops ./display-managers ./lannas.nix ./locale.nix diff --git a/modules/nixos/system/desktops/default.nix b/modules/nixos/system/desktops/default.nix new file mode 100644 index 0000000..279b444 --- /dev/null +++ b/modules/nixos/system/desktops/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./plasma.nix + ]; +} diff --git a/modules/nixos/system/desktops/plasma.nix b/modules/nixos/system/desktops/plasma.nix new file mode 100644 index 0000000..0ed82bd --- /dev/null +++ b/modules/nixos/system/desktops/plasma.nix @@ -0,0 +1,19 @@ +{ config, lib, pkgs, ... }: let + cfg = config.cyclamen.system.desktop.plasma; +in { + options.cyclamen.system.desktop.plasma = { + enable = lib.mkEnableOption "plasma desktop environment"; + }; + + config = lib.mkIf cfg.enable { + services.desktopManager.plasma6.enable = true; + + # these all bring in some quite big dependencies and i usually dont need them. + # disable them by default + environment.plasma6.excludePackages = [ + pkgs.kdePackages.elisa + pkgs.kdePackages.qrca + ]; + programs.kde-pim.enable = false; + }; +}