desktop-environment

This commit is contained in:
2026-01-22 09:18:56 +01:00
parent 02a99d31fa
commit 3ed8d601a2

View File

@@ -0,0 +1,86 @@
{ config, lib, pkgs, namespace, options, ... }:
let
desktop-environment = config.${namespace}.desktop-environment;
xfce = config.${namespace}.desktop-environment.xfce;
gnome = config.${namespace}.desktop-environment.gnome;
plasma = config.${namespace}.desktop-environment.plasma;
in {
options.${namespace}.desktop-environment = lib.mkOption {
type = lib.types.attrsOf lib.types.any;
description = "Configuration options for desktop environments.";
default = { };
xfce = {
enable = lib.mkEnableOption "Enable xfce desktop environment.";
};
gnome = {
enable = lib.mkEnableOption "Enable gnome desktop environment.";
};
plasma = {
enable = lib.mkEnableOption "Enable plasma desktop environment.";
};
};
config = lib.mkIf xfce.enable {
xserver = {
enable = true; # Enable the deprecated X11 teletype terminal connection system.
desktopManager = {
xfce.enable = true;
};
};
environment.systemPackages = with pkgs; [
xfce.xfce4-goodies
xfce.xfce4-pulseaudio-plugin
xfce.xfce4-clipman-plugin
xfce.xfce4-screenshooter
xfce.xfce4-whiskermenu-plugin
thunar-archive-plugin
thunar-volman
gvfs
gvfs-mtp
gvfs-afc
gvfs-goa
gnome-keyring
libgnome-keyring
];
} ++ lib.mkIf gnome.enable {
desktopManager.gnome.enable = true;
environment.systemPackages = with pkgs; [
gnome-tweaks
gnome-software
gnomeExtensions.pop-shell
gnome-remote-desktop
];
} ++ lib.mkIf plasma.enable {
desktopManager.plasma6.enable = true;
environment.systemPackages = with pkgs kdePackages; [
kdePackages.qtwebsockets
kdePackages.qtwebchannel
kdePackages.korganizer
kdePackages.akonadi
kdePackages.akonadi-calendar
kdePackages.akonadi-contacts
kdePackages.kaddressbook
kdePackages.kmail
kdePackages.kdepim-runtime
kdePackages.kontact
kdePackages.kidentitymanagement
kdePackages.libkdepim
kdePackages.kwin
kdePackages.plasma-workspace
plasma.plasma-desktop
plasma.plasma-nm
plasma.plasma-pa
gnome-keyring
libgnome-keyring
];
};
}