KDE

From NixOS Wiki
Jump to: navigation, search

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.

(See this issue)

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)}";
};

(See this issue)

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

Note: Plasma-Manager is not matured yet and currently unofficial

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.