92 lines
2.3 KiB
Nix
92 lines
2.3 KiB
Nix
{ config, lib, pkgs, namespace, ... }:
|
|
|
|
let
|
|
cfg = config.${namespace}.desktop-environment;
|
|
in {
|
|
|
|
options.${namespace}.desktop-environment = {
|
|
xfce = {
|
|
enable = lib.mkEnableOption "XFCE desktop environment";
|
|
};
|
|
gnome = {
|
|
enable = lib.mkEnableOption "GNOME desktop environment";
|
|
};
|
|
kde = {
|
|
enable = lib.mkEnableOption "KDE Plasma desktop environment";
|
|
};
|
|
cosmic = {
|
|
enable = lib.mkEnableOption "Cosmic desktop environment";
|
|
};
|
|
hyprland = {
|
|
enable = lib.mkEnableOption "hyprland Wayland shell"
|
|
};
|
|
};
|
|
|
|
config = lib.mkMerge [
|
|
(lib.mkIf cfg.xfce.enable {
|
|
services.xserver = {
|
|
enable = true;
|
|
desktopManager = {
|
|
xfce.enable = true;
|
|
};
|
|
};
|
|
environment.systemPackages = with pkgs; [
|
|
xfce.xfce4-pulseaudio-plugin
|
|
xfce.xfce4-clipman-plugin
|
|
xfce.xfce4-screenshooter
|
|
xfce.xfce4-whiskermenu-plugin
|
|
thunar-archive-plugin
|
|
thunar-volman
|
|
gvfs
|
|
gnome-keyring
|
|
libgnome-keyring
|
|
];
|
|
})
|
|
|
|
(lib.mkIf cfg.gnome.enable {
|
|
services.xserver = {
|
|
enable = true;
|
|
desktopManager.gnome.enable = true;
|
|
};
|
|
environment.systemPackages = with pkgs; [
|
|
gnome-tweaks
|
|
gnome-software
|
|
gnomeExtensions.pop-shell
|
|
gnome-remote-desktop
|
|
];
|
|
})
|
|
|
|
(lib.mkIf cfg.kde.enable {
|
|
services.xserver.enable = true;
|
|
services.desktopManager.plasma6.enable = true;
|
|
environment.systemPackages = with pkgs; [
|
|
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
|
|
gnome-keyring
|
|
libgnome-keyring
|
|
];
|
|
})
|
|
(lib.mkIf cfg.cosmic.enable {
|
|
services.desktopManager.cosmic.enable = true;
|
|
services.desktopManager.cosmic.xwayland.enable = true;
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
gnome-keyring
|
|
libgnome-keyring
|
|
];
|
|
})
|
|
];
|
|
|
|
} |