summaryrefslogtreecommitdiffstats
path: root/nixos/modules/services/x11/desktop-managers/kde5.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/services/x11/desktop-managers/kde5.nix')
-rw-r--r--nixos/modules/services/x11/desktop-managers/kde5.nix255
1 files changed, 119 insertions, 136 deletions
diff --git a/nixos/modules/services/x11/desktop-managers/kde5.nix b/nixos/modules/services/x11/desktop-managers/kde5.nix
index 12408abd20ad..57924a73949c 100644
--- a/nixos/modules/services/x11/desktop-managers/kde5.nix
+++ b/nixos/modules/services/x11/desktop-managers/kde5.nix
@@ -6,9 +6,8 @@ let
xcfg = config.services.xserver;
cfg = xcfg.desktopManager.kde5;
- xorg = pkgs.xorg;
- kde5 = pkgs.kde5;
+ inherit (pkgs) kdeApplications plasma5 libsForQt5 qt5 xorg;
in
@@ -46,12 +45,12 @@ in
config = mkMerge [
(mkIf (cfg.extraPackages != []) {
- environment.systemPackages = [ (kde5.kdeWrapper cfg.extraPackages) ];
+ environment.systemPackages = [ (libsForQt5.kdeWrapper cfg.extraPackages) ];
})
(mkIf (xcfg.enable && cfg.enable) {
services.xserver.desktopManager.session = singleton {
- name = "kde5";
+ name = "Plasma 5";
bgSupport = true;
start = ''
# Load PulseAudio module for routing support.
@@ -60,128 +59,118 @@ in
${getBin config.hardware.pulseaudio.package}/bin/pactl load-module module-device-manager "do_routing=1"
''}
- exec "${kde5.startkde}"
+ exec "${plasma5.startkde}"
'';
};
security.wrappers = {
- kcheckpass.source = "${kde5.plasma-workspace.out}/lib/libexec/kcheckpass";
- "start_kdeinit".source = "${kde5.kinit.out}/lib/libexec/kf5/start_kdeinit";
+ kcheckpass.source = "${plasma5.plasma-workspace.out}/lib/libexec/kcheckpass";
+ "start_kdeinit".source = "${libsForQt5.kinit.out}/lib/libexec/kf5/start_kdeinit";
};
- environment.systemPackages =
+ environment.systemPackages = with qt5; with libsForQt5; with plasma5; with kdeApplications;
[
- kde5.frameworkintegration
- kde5.kactivities
- kde5.kauth
- kde5.kcmutils
- kde5.kconfig
- kde5.kconfigwidgets
- kde5.kcoreaddons
- kde5.kdbusaddons
- kde5.kdeclarative
- kde5.kded
- kde5.kdesu
- kde5.kdnssd
- kde5.kemoticons
- kde5.kfilemetadata
- kde5.kglobalaccel
- kde5.kguiaddons
- kde5.kiconthemes
- kde5.kidletime
- kde5.kimageformats
- kde5.kinit
- kde5.kio
- kde5.kjobwidgets
- kde5.knewstuff
- kde5.knotifications
- kde5.knotifyconfig
- kde5.kpackage
- kde5.kparts
- kde5.kpeople
- kde5.krunner
- kde5.kservice
- kde5.ktextwidgets
- kde5.kwallet
- kde5.kwallet-pam
- kde5.kwalletmanager
- kde5.kwayland
- kde5.kwidgetsaddons
- kde5.kxmlgui
- kde5.kxmlrpcclient
- kde5.plasma-framework
- kde5.solid
- kde5.sonnet
- kde5.threadweaver
-
- kde5.breeze-qt5
- kde5.kactivitymanagerd
- kde5.kde-cli-tools
- kde5.kdecoration
- kde5.kdeplasma-addons
- kde5.kgamma5
- kde5.khotkeys
- kde5.kinfocenter
- kde5.kmenuedit
- kde5.kscreen
- kde5.kscreenlocker
- kde5.ksysguard
- kde5.kwayland
- kde5.kwin
- kde5.kwrited
- kde5.libkscreen
- kde5.libksysguard
- kde5.milou
- kde5.plasma-integration
- kde5.polkit-kde-agent
- kde5.systemsettings
-
- kde5.plasma-desktop
- kde5.plasma-workspace
- kde5.plasma-workspace-wallpapers
-
- kde5.dolphin-plugins
- kde5.ffmpegthumbs
- kde5.kdegraphics-thumbnailers
- kde5.kio-extras
- kde5.print-manager
-
- # Install Breeze icons if available
- (kde5.breeze-icons or kde5.oxygen-icons5 or kde5.oxygen-icons)
+ frameworkintegration
+ kactivities
+ kauth
+ kcmutils
+ kconfig
+ kconfigwidgets
+ kcoreaddons
+ kdbusaddons
+ kdeclarative
+ kded
+ kdesu
+ kdnssd
+ kemoticons
+ kfilemetadata
+ kglobalaccel
+ kguiaddons
+ kiconthemes
+ kidletime
+ kimageformats
+ kinit
+ kio
+ kjobwidgets
+ knewstuff
+ knotifications
+ knotifyconfig
+ kpackage
+ kparts
+ kpeople
+ krunner
+ kservice
+ ktextwidgets
+ kwallet
+ kwallet-pam
+ kwalletmanager
+ kwayland
+ kwidgetsaddons
+ kxmlgui
+ kxmlrpcclient
+ plasma-framework
+ solid
+ sonnet
+ threadweaver
+
+ breeze-qt5
+ kactivitymanagerd
+ kde-cli-tools
+ kdecoration
+ kdeplasma-addons
+ kgamma5
+ khotkeys
+ kinfocenter
+ kmenuedit
+ kscreen
+ kscreenlocker
+ ksysguard
+ kwayland
+ kwin
+ kwrited
+ libkscreen
+ libksysguard
+ milou
+ plasma-integration
+ polkit-kde-agent
+ systemsettings
+
+ plasma-desktop
+ plasma-workspace
+ plasma-workspace-wallpapers
+
+ dolphin-plugins
+ ffmpegthumbs
+ kdegraphics-thumbnailers
+ kio-extras
+ print-manager
+
+ breeze-icons
pkgs.hicolor_icon_theme
- kde5.kde-gtk-config kde5.breeze-gtk
+ kde-gtk-config breeze-gtk
- pkgs.qt5.phonon-backend-gstreamer
+ phonon-backend-gstreamer
]
- # Plasma 5.5 and later has a Breeze GTK theme.
- # If it is not available, Orion is very similar to Breeze.
- ++ lib.optional (!(lib.hasAttr "breeze-gtk" kde5)) pkgs.orion
-
- # Install activity manager if available
- ++ lib.optional (lib.hasAttr "kactivitymanagerd" kde5) kde5.kactivitymanagerd
-
- # frameworkintegration was split with plasma-integration in Plasma 5.6
- ++ lib.optional (lib.hasAttr "plasma-integration" kde5) kde5.plasma-integration
-
- ++ lib.optionals cfg.enableQt4Support [ kde5.breeze-qt4 pkgs.phonon-backend-gstreamer ]
+ ++ lib.optionals cfg.enableQt4Support [ breeze-qt4 pkgs.phonon-backend-gstreamer ]
# Optional hardware support features
- ++ lib.optional config.hardware.bluetooth.enable kde5.bluedevil
- ++ lib.optional config.networking.networkmanager.enable kde5.plasma-nm
- ++ lib.optional config.hardware.pulseaudio.enable kde5.plasma-pa
- ++ lib.optional config.powerManagement.enable kde5.powerdevil
- ++ lib.optional config.services.colord.enable pkgs.colord-kde
- ++ lib.optionals config.services.samba.enable [ kde5.kdenetwork-filesharing pkgs.samba ];
+ ++ lib.optional config.hardware.bluetooth.enable bluedevil
+ ++ lib.optional config.networking.networkmanager.enable plasma-nm
+ ++ lib.optional config.hardware.pulseaudio.enable plasma-pa
+ ++ lib.optional config.powerManagement.enable powerdevil
+ ++ lib.optional config.services.colord.enable colord-kde
+ ++ lib.optionals config.services.samba.enable [ kdenetwork-filesharing pkgs.samba ];
services.xserver.desktopManager.kde5.extraPackages =
+ with kdeApplications; with plasma5;
[
- kde5.khelpcenter
- kde5.oxygen
+ khelpcenter
+ oxygen
- kde5.dolphin
- kde5.konsole
+ dolphin
+ konsole
];
environment.pathsToLink = [ "/share" ];
@@ -191,30 +180,24 @@ in
target = "X11/xkb";
};
- environment.variables =
- {
- # Enable GTK applications to load SVG icons
- GST_PLUGIN_SYSTEM_PATH_1_0 =
- lib.makeSearchPath "/lib/gstreamer-1.0"
- (builtins.map (pkg: pkg.out) (with pkgs.gst_all_1; [
- gstreamer
- gst-plugins-base
- gst-plugins-good
- gst-plugins-ugly
- gst-plugins-bad
- gst-libav # for mp3 playback
- ]));
- }
- // (if (lib.hasAttr "breeze-icons" kde5)
- then { GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"; }
- else { });
-
- fonts.fonts = [
- (kde5.oxygen-fonts or pkgs.noto-fonts)
- pkgs.hack-font
- ];
+ environment.variables = {
+ # Enable GTK applications to load SVG icons
+ GST_PLUGIN_SYSTEM_PATH_1_0 =
+ lib.makeSearchPath "/lib/gstreamer-1.0"
+ (builtins.map (pkg: pkg.out) (with pkgs.gst_all_1; [
+ gstreamer
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-ugly
+ gst-plugins-bad
+ gst-libav # for mp3 playback
+ ]));
+ GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache";
+ };
+
+ fonts.fonts = with pkgs; [ noto-fonts hack-font ];
- programs.ssh.askPassword = "${kde5.ksshaskpass.out}/bin/ksshaskpass";
+ programs.ssh.askPassword = "${plasma5.ksshaskpass.out}/bin/ksshaskpass";
# Enable helpful DBus services.
services.udisks2.enable = true;
@@ -230,10 +213,10 @@ in
services.xserver.displayManager.sddm = {
theme = "breeze";
- themes = [
- kde5.ecm # for the setup-hook
- kde5.plasma-workspace
- kde5.breeze-icons
+ themes = with libsForQt5; with plasma5; [
+ ecm # for the setup-hook
+ plasma-workspace
+ breeze-icons
];
};
@@ -250,7 +233,7 @@ in
# use kimpanel as the default IBus panel
i18n.inputMethod.ibus.panel =
lib.mkDefault
- "${pkgs.kde5.plasma-desktop}/lib/libexec/kimpanel-ibus-panel";
+ "${plasma5.plasma-desktop}/lib/libexec/kimpanel-ibus-panel";
})
];