KDE
KDE Plasma is a desktop environment that aims to be simple by default, powerful when needed.
Note: As of 2024, KDE Plasma 5 is end of life and X11 is deprecated. In general you should aim for KDE Plasma 6 and Wayland.
Installation
Contemporary Setup
To use KDE Plasma 6 on a computer running NixOS 24.11 or later, add this to your configuration.nix:
services = {
desktopManager.plasma6.enable = true;
displayManager.sddm.enable = true;
displayManager.sddm.wayland.enable = true;
};
environment.systemPackages = with pkgs; [
# KDE Utilities
kdePackages.discover # Optional: Software center for Flatpaks/firmware updates
kdePackages.kcalc # Calculator
kdePackages.kcharselect # Character map
kdePackages.kclock # Clock app
kdePackages.kcolorchooser # Color picker
kdePackages.kolourpaint # Simple paint program
kdePackages.ksystemlog # System log viewer
kdePackages.sddm-kcm # SDDM configuration module
kdiff3 # File/directory comparison tool
# Hardware/System Utilities (Optional)
kdePackages.isoimagewriter # Write hybrid ISOs to USB
kdePackages.partitionmanager # Disk and partition management
hardinfo2 # System benchmarks and hardware info
wayland-utils # Wayland diagnostic tools
wl-clipboard # Wayland copy/paste support
vlc # Media player
];
Remote Desktop Service (RDP)
To use KDE Plasma 6 with remote desktop access via RDP, add the following. Note that as of early 2026, the `xrdp` service still relies on an X11 session.
Note: Local and remote logins will create separate user sessions.
services = {
desktopManager.plasma6.enable = true;
displayManager.sddm.enable = true;
xrdp = {
enable = true;
defaultWindowManager = "startplasma-x11";
openFirewall = true;
};
xserver = {
enable = true;
xkb = {
layout = "us";
variant = "";
};
};
};
environment.systemPackages = with pkgs; [
wayland-utils
wl-clipboard
xclip # Required for clipboard support over X11 RDP sessions
];
Excluding Default Applications
If you prefer a more minimal installation, you can exclude specific packages that are bundled with the Plasma 6 module:
environment.plasma6.excludePackages = with pkgs; [
kdePackages.elisa # Music player
kdePackages.kdepim-runtime # Akonadi agents
kdePackages.kmahjongg
kdePackages.kmines
kdePackages.konversation # IRC client
kdePackages.kpat # Solitaire
kdePackages.ksudoku
kdePackages.ktorrent
];
Audio
NixOS 24.11+ uses PipeWire as the modern audio backend.
Important Note: Enabling KDE Plasma 6 via `services.desktopManager.plasma6.enable = true;` will automatically set `services.pipewire.enable = true;` by default.
If you are running KDE in a specialized environment where you must disable PipeWire (such as a container, a VM for testing, or a headless node), you must use `lib.mkForce` to override the Plasma 6 default:
services.pipewire.enable = lib.mkForce false;
Bluetooth
To ensure full functionality of Bluetooth applets and audio switching in Plasma, see the Bluetooth page to enable support.
Configuration Management
Plasma-Manager
Plasma-Manager provides declarative configuration for KDE Plasma settings, allowing you to manage shortcuts, wallpapers, and panels via Nix. It is highly recommended for users managing multiple machines.