KDE

From NixOS Wiki
Jump to: navigation, search

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.