KDE
KDE Plasma is a desktop environment that aims to be simple by default, powerful when needed.
Installation
To use KDE Plasma 6 on 24.05, add this to your configuration.nix:
services.xserver.enable = true;
services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true;
To use KDE Plasma 5 on 24.05, add this to your configuration.nix:
services.xserver.enable = true;
# You may need to comment out "services.displayManager.gdm.enable = true;"
services.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;
Excluding some KDE Plasma applications from the default install
Plasma 5
Not all applications that come pre-installed with the KDE Plasma desktop environment are desirable for everyone to have on their machines. There's a way to edit configuration.nix to exclude some optional packages, for example as follows:
environment.plasma5.excludePackages = with pkgs.libsForQt5; [
plasma-browser-integration
konsole
oxygen
];
Plasma 6
environment.plasma6.excludePackages = with pkgs.kdePackages; [
plasma-browser-integration
konsole
oxygen
];
Configuration
GNOME desktop integration
Using the following example configuration, QT applications will have a look similar to the GNOME desktop, using a dark theme.
qt = {
enable = true;
platformTheme = "gnome";
style = "adwaita-dark";
};
For other themes, you may need the packages libsForQt5.qt5ct
and libsForQt5.qtstyleplugin-kvantum
and a symlink from ~/.config/Kvantum/
to your theme package. Here is an example using Arc-Dark and Home Manager. In the Home Manager configuration:
qt = {
enable = true;
platformTheme = "qtct";
style.name = "kvantum";
};
xdg.configFile = {
"Kvantum/ArcDark".source = "${pkgs.arc-kde-theme}/share/Kvantum/ArcDark";
"Kvantum/kvantum.kvconfig".text = "[General]\ntheme=ArcDark";
};
For more details, see this forum post.
Troubleshoots
No Sound switching from Gnome
Gnome module has pulseaudio enabled, while Plasma will run without sound. So an additional step would be to enable pulseaudio or pipewire
hardware.pulseaudio.enable = true;
Qt/KDE applications segfault on start
This is caused by a stale QML cache (see this issue). A dirty way to fix this is by running on a terminal the following command:
find ${XDG_CACHE_HOME:-$HOME/.cache}/**/qmlcache -type f -delete
GTK themes are not applied in Wayland applications / Window Decorations missing / Cursor looks different
This affects GTK applications including Firefox and Thunderbird.
Add to your configuration.nix the following line:
programs.dconf.enable = true;
You might also need to set a GTK theme Breeze imitating the KDE theme with the same name in System Settings -> Application Style -->Configure GNOME/GTK Application Style.
KMail Renders Blank Messages
When you see the message grantlee.template: "Plugin library 'kde_grantlee_plugin' not found."
and/or kmail does shows only empty message then add to your configuration.nix the following line:
environment.sessionVariables = {
NIX_PROFILES = "${pkgs.lib.concatStringsSep " " (pkgs.lib.reverseList config.environment.profiles)}";
};
Launch KDE in Wayland session
Plasma 6
For KDE Plasma 6, the defaults have changed. KDE Plasma 6 runs on Wayland with the default session set to plasma
.
If you want to use the X11 session as your default session, change it to plasmax11
.
services.displayManager.defaultSession = "plasma";
Launch SDDM in Wayland too
It's possible to launch sddm in Wayland too to try to avoid running an X server.
services.displayManager.sddm.wayland.enable = true;
Plasma-Manager
By default, the Plasma configuration can be handled like on traditional systems. With plasma-manager, it is possible to make Plasma configurations via nix by providing home-manager modules.