KDE: Difference between revisions
m Linked to Plasma-Manager page. |
m Lesson learned: NixOS Plasma module enables Pipewire by default. |
||
| Line 12: | Line 12: | ||
services = { | services = { | ||
desktopManager.plasma6.enable = true; | desktopManager.plasma6.enable = true; | ||
displayManager.sddm.enable = true; | displayManager.sddm.enable = true; | ||
displayManager.sddm.wayland.enable = true; | displayManager.sddm.wayland.enable = true; | ||
}; | }; | ||
environment.systemPackages = with pkgs; | 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 | |||
]; | ]; | ||
</syntaxHighlight> | </syntaxHighlight> | ||
=== Remote Desktop Service === | === Remote Desktop Service (RDP) === | ||
Note | 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 | ''Note: Local and remote logins will create separate user sessions.'' | ||
<syntaxHighlight lang=nix> | <syntaxHighlight lang=nix> | ||
services = { | services = { | ||
desktopManager.plasma6.enable = true; | desktopManager.plasma6.enable = true; | ||
displayManager.sddm.enable = true; | displayManager.sddm.enable = true; | ||
xrdp = { | xrdp = { | ||
enable = true; | |||
defaultWindowManager = "startplasma-x11"; | defaultWindowManager = "startplasma-x11"; | ||
openFirewall = true; | openFirewall = true; | ||
}; | }; | ||
| Line 62: | Line 57: | ||
xserver = { | xserver = { | ||
enable = true; | enable = true; | ||
xkb = { | xkb = { | ||
layout = "us"; | layout = "us"; | ||
| Line 70: | Line 64: | ||
}; | }; | ||
environment.systemPackages = with pkgs; | environment.systemPackages = with pkgs; [ | ||
wayland-utils | |||
wl-clipboard | |||
xclip # Required for clipboard support over X11 RDP sessions | |||
]; | |||
</syntaxHighlight> | </syntaxHighlight> | ||
=== Excluding | === Excluding Default Applications === | ||
If you prefer a more minimal installation, you can exclude specific packages that are bundled with the Plasma 6 module: | |||
<syntaxHighlight lang=nix> | <syntaxHighlight lang=nix> | ||
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 | |||
]; | |||
</syntaxHighlight> | </syntaxHighlight> | ||
== Audio == | |||
[[PipeWire | 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. | ||
[[Bluetooth | 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: | ||
<syntaxHighlight lang=nix> | |||
services.pipewire.enable = lib.mkForce false; | |||
</syntaxHighlight> | |||
== Bluetooth == | |||
To ensure full functionality of Bluetooth applets and audio switching in Plasma, see the [[Bluetooth]] page to enable support. | |||
== Configuration Management == | == Configuration Management == | ||
| Line 126: | Line 108: | ||
=== Plasma-Manager === | === Plasma-Manager === | ||
Plasma-Manager provides | 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. | ||
[[Plasma-Manager|NixOS Wiki Plasma-Manager]] | * [https://github.com/nix-community/plasma-manager GitHub: Plasma-Manager] | ||
* [[Plasma-Manager|NixOS Wiki: Plasma-Manager]] | |||
[[Category:Desktop environment]] | [[Category:Desktop environment]] | ||
[[Category:Applications]] | [[Category:Applications]] | ||
Latest revision as of 20:23, 25 February 2026
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.