KDE: Difference between revisions
fix typo |
m fixed syntax mistake |
||
(10 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
KDE Plasma is a desktop environment that aims to be simple by default, powerful when needed. | [https://kde.org/de/plasma-desktop/ KDE Plasma] is a desktop environment that aims to be simple by default, powerful when needed. | ||
== Installation == | == Installation == | ||
Line 7: | Line 7: | ||
{{file|/etc/nixos/configuration.nix|nix|<nowiki> | {{file|/etc/nixos/configuration.nix|nix|<nowiki> | ||
{ | { | ||
services.xserver.enable = true; | services.xserver.enable = true; # optional | ||
services.displayManager.sddm.enable = true; | services.displayManager.sddm.enable = true; | ||
services.displayManager.sddm.wayland.enable = true; | services.displayManager.sddm.wayland.enable = true; | ||
Line 28: | Line 28: | ||
=== Rootless X11 === | === Rootless X11 === | ||
{{ic|sddm}} launches X11 as a root user by default. For better security, X11 can be run as a non-root user but using Wayland is | {{ic|sddm}} launches X11 as a root user by default. For better security, X11 can be run as a non-root user, but using Wayland is better tested and thus preferred: | ||
<syntaxHighlight lang=nix> | <syntaxHighlight lang=nix> | ||
Line 36: | Line 36: | ||
=== Excluding applications from the default install === | === Excluding applications from the default install === | ||
Some optional packages | Some optional packages can be excluded if they are not needed at the cost of functionality. | ||
==== Plasma | ==== Plasma 6 ==== | ||
Optional packages: [https://github.com/NixOS/nixpkgs/blob/nixos- | Optional packages: [https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/services/desktop-managers/plasma6.nix#L136-L149 plasma6.nix] | ||
<syntaxHighlight lang=nix> | <syntaxHighlight lang=nix> | ||
environment. | environment.plasma6.excludePackages = with pkgs.kdePackages; [ | ||
plasma-browser-integration | plasma-browser-integration | ||
konsole | konsole | ||
elisa | |||
]; | ]; | ||
</syntaxHighlight> | </syntaxHighlight> | ||
==== Plasma | ==== Plasma 5 ==== | ||
Optional packages: [https://github.com/NixOS/nixpkgs/blob/ | Optional packages: [https://github.com/NixOS/nixpkgs/blob/nixos-24.05/nixos/modules/services/x11/desktop-managers/plasma5.nix#L278-L282 plasma5.nix] | ||
<syntaxHighlight lang=nix> | <syntaxHighlight lang=nix> | ||
environment. | environment.plasma5.excludePackages = with pkgs.libsForQt5; [ | ||
plasma-browser-integration | plasma-browser-integration | ||
konsole | konsole | ||
oxygen | |||
]; | ]; | ||
</syntaxHighlight> | </syntaxHighlight> | ||
Line 92: | Line 92: | ||
=== Default Wayland/X11 session === | === Default Wayland/X11 session === | ||
==== Plasma 6 ==== | ==== Plasma 6 ==== | ||
Line 115: | Line 107: | ||
</syntaxHighlight> | </syntaxHighlight> | ||
== | ==== Plasma 5 ==== | ||
= | |||
Plasma 5 runs on X11 by default and it is recommended to use Wayland with Plasma 6 instead. To launch a Wayland session by default anyway: | |||
<syntaxHighlight lang=nix> | <syntaxHighlight lang=nix> | ||
services.xserver.displayManager.defaultSession = "plasmawayland"; | |||
</syntaxHighlight> | </syntaxHighlight> | ||
== Troubleshooting == | |||
=== Qt/KDE applications segfault on start === | === Qt/KDE applications segfault on start === | ||
Line 136: | Line 128: | ||
This affects GTK applications including Firefox and Thunderbird. | This affects GTK applications including Firefox and Thunderbird. | ||
You may 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''. | |||
You | |||
[https://github.com/NixOS/nixpkgs/issues/180720 (See this issue)] | [https://github.com/NixOS/nixpkgs/issues/180720 (See this issue)] | ||
Line 150: | Line 136: | ||
=== Plasma-Manager === | === Plasma-Manager === | ||
{{note| [https://github.com/pjones/plasma-manager Plasma-Manager] is | {{note| [https://github.com/pjones/plasma-manager Plasma-Manager] is an unofficial community project and is not yet mature}} | ||
By default, the Plasma configuration can be handled like on [https://wiki.archlinux.org/title/KDE traditional systems]. | By default, the Plasma configuration can be handled like on [https://wiki.archlinux.org/title/KDE traditional systems]. | ||
With [https://github.com/pjones/plasma-manager plasma-manager], it is possible to make Plasma configurations via nix by providing [https://github.com/nix-community/home-manager home-manager] modules. | With [https://github.com/pjones/plasma-manager plasma-manager], it is possible to make Plasma configurations via nix by providing [https://github.com/nix-community/home-manager home-manager] modules. | ||
=== User icon (avatar) === | |||
You can add a profile picture to your user by using a png file in <code>~/.face.icon</code>. | |||
[[Category:Desktop environment]] | [[Category:Desktop environment]] | ||
[[Category:Applications]] | [[Category:Applications]] | ||
[[Category:KDE]] |
Latest revision as of 05:48, 20 October 2024
KDE Plasma is a desktop environment that aims to be simple by default, powerful when needed.
Installation
Plasma 6
/etc/nixos/configuration.nix
{
services.xserver.enable = true; # optional
services.displayManager.sddm.enable = true;
services.displayManager.sddm.wayland.enable = true;
services.desktopManager.plasma6.enable = true;
}
Plasma 5
/etc/nixos/configuration.nix
{
services.xserver.enable = true;
services.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;
}
Configuration
Rootless X11
sddm
launches X11 as a root user by default. For better security, X11 can be run as a non-root user, but using Wayland is better tested and thus preferred:
services.xserver.displayManager.sddm.settings.General.DisplayServer = "x11-user";
Excluding applications from the default install
Some optional packages can be excluded if they are not needed at the cost of functionality.
Plasma 6
Optional packages: plasma6.nix
environment.plasma6.excludePackages = with pkgs.kdePackages; [
plasma-browser-integration
konsole
elisa
];
Plasma 5
Optional packages: plasma5.nix
environment.plasma5.excludePackages = with pkgs.libsForQt5; [
plasma-browser-integration
konsole
oxygen
];
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.name = "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.
Default Wayland/X11 session
Plasma 6
Plasma 6 runs on Wayland by default. To launch an X11 session by default:
services.xserver.displayManager.defaultSession = "plasmax11";
SDDM on Wayland
services.xserver.displayManager.sddm.wayland.enable = true;
Plasma 5
Plasma 5 runs on X11 by default and it is recommended to use Wayland with Plasma 6 instead. To launch a Wayland session by default anyway:
services.xserver.displayManager.defaultSession = "plasmawayland";
Troubleshooting
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.
You may 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.
Tips and tricks
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.
User icon (avatar)
You can add a profile picture to your user by using a png file in ~/.face.icon
.