working desktop environment config
This commit is contained in:
@@ -1,35 +1,33 @@
|
|||||||
{ config, lib, pkgs, namespace, options, ... }:
|
{ config, lib, pkgs, namespace, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
desktop-environment = config.${namespace}.desktop-environment;
|
cfg = config.${namespace}.desktop-environment;
|
||||||
xfce = config.${namespace}.desktop-environment.xfce;
|
|
||||||
gnome = config.${namespace}.desktop-environment.gnome;
|
|
||||||
plasma = config.${namespace}.desktop-environment.plasma;
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
options.${namespace}.desktop-environment = lib.mkOption {
|
options.${namespace}.desktop-environment = {
|
||||||
type = lib.types.attrsOf lib.types.any;
|
|
||||||
description = "Configuration options for desktop environments.";
|
|
||||||
default = { };
|
|
||||||
xfce = {
|
xfce = {
|
||||||
enable = lib.mkEnableOption "Enable xfce desktop environment.";
|
enable = lib.mkEnableOption "XFCE desktop environment";
|
||||||
};
|
};
|
||||||
gnome = {
|
gnome = {
|
||||||
enable = lib.mkEnableOption "Enable gnome desktop environment.";
|
enable = lib.mkEnableOption "GNOME desktop environment";
|
||||||
};
|
};
|
||||||
plasma = {
|
kde = {
|
||||||
enable = lib.mkEnableOption "Enable plasma desktop environment.";
|
enable = lib.mkEnableOption "KDE Plasma desktop environment";
|
||||||
};
|
};
|
||||||
|
cosmic = {
|
||||||
|
enable = lib.mkEnableOption "Cosmic desktop environment";
|
||||||
|
}
|
||||||
};
|
};
|
||||||
config = lib.mkIf xfce.enable {
|
|
||||||
xserver = {
|
config = lib.mkMerge [
|
||||||
enable = true; # Enable the deprecated X11 teletype terminal connection system.
|
(lib.mkIf cfg.xfce.enable {
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
desktopManager = {
|
desktopManager = {
|
||||||
xfce.enable = true;
|
xfce.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
xfce.xfce4-goodies
|
|
||||||
xfce.xfce4-pulseaudio-plugin
|
xfce.xfce4-pulseaudio-plugin
|
||||||
xfce.xfce4-clipman-plugin
|
xfce.xfce4-clipman-plugin
|
||||||
xfce.xfce4-screenshooter
|
xfce.xfce4-screenshooter
|
||||||
@@ -37,27 +35,28 @@ in {
|
|||||||
thunar-archive-plugin
|
thunar-archive-plugin
|
||||||
thunar-volman
|
thunar-volman
|
||||||
gvfs
|
gvfs
|
||||||
gvfs-mtp
|
|
||||||
gvfs-afc
|
|
||||||
gvfs-goa
|
|
||||||
gnome-keyring
|
gnome-keyring
|
||||||
libgnome-keyring
|
libgnome-keyring
|
||||||
];
|
];
|
||||||
} ++ lib.mkIf gnome.enable {
|
})
|
||||||
|
|
||||||
|
(lib.mkIf cfg.gnome.enable {
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
desktopManager.gnome.enable = true;
|
desktopManager.gnome.enable = true;
|
||||||
|
};
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
gnome-tweaks
|
gnome-tweaks
|
||||||
gnome-software
|
gnome-software
|
||||||
gnomeExtensions.pop-shell
|
gnomeExtensions.pop-shell
|
||||||
gnome-remote-desktop
|
gnome-remote-desktop
|
||||||
];
|
];
|
||||||
|
})
|
||||||
|
|
||||||
} ++ lib.mkIf plasma.enable {
|
(lib.mkIf cfg.kde.enable {
|
||||||
|
services.xserver.enable = true;
|
||||||
desktopManager.plasma6.enable = true;
|
services.desktopManager.plasma6.enable = true;
|
||||||
environment.systemPackages = with pkgs kdePackages; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|
||||||
kdePackages.qtwebsockets
|
kdePackages.qtwebsockets
|
||||||
kdePackages.qtwebchannel
|
kdePackages.qtwebchannel
|
||||||
kdePackages.korganizer
|
kdePackages.korganizer
|
||||||
@@ -72,15 +71,19 @@ in {
|
|||||||
kdePackages.libkdepim
|
kdePackages.libkdepim
|
||||||
kdePackages.kwin
|
kdePackages.kwin
|
||||||
kdePackages.plasma-workspace
|
kdePackages.plasma-workspace
|
||||||
|
gnome-keyring
|
||||||
plasma.plasma-desktop
|
libgnome-keyring
|
||||||
plasma.plasma-nm
|
];
|
||||||
plasma.plasma-pa
|
})
|
||||||
|
(lib.mkIf cfg.cosmic.enable {
|
||||||
|
services.desktopManager.cosmic.enable = true;
|
||||||
|
services.desktopManager.cosmic.xwayland.enable = true;
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
|
||||||
gnome-keyring
|
gnome-keyring
|
||||||
libgnome-keyring
|
libgnome-keyring
|
||||||
];
|
];
|
||||||
|
})
|
||||||
};
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user