KDE: Difference between revisions

From NixOS Wiki
Sdht0 (talk | contribs)
Sdht0 (talk | contribs)
Copy edit and move sections
Line 15: Line 15:
</syntaxhighlight>
</syntaxhighlight>


=== Excluding some KDE Plasma applications from the default install ===
== Configuration ==
 
=== Excluding applications from the default install ===
 
Some optional packages that are installed by default can be excluded if they are not needed.


==== Plasma 5 ====
==== 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 [https://github.com/NixOS/nixpkgs/blob/nixos-23.11/nixos/modules/services/x11/desktop-managers/plasma5.nix#L275-L284 optional packages], for example as follows:
Optional packages: [https://github.com/NixOS/nixpkgs/blob/nixos-23.11/nixos/modules/services/x11/desktop-managers/plasma5.nix#L275-L284 plasma5.nix]


<syntaxHighlight lang=nix>
<syntaxHighlight lang=nix>
Line 30: Line 34:


==== Plasma 6 ====
==== Plasma 6 ====
Optional packages: [https://github.com/NixOS/nixpkgs/blob/ff0dbd94265ac470dda06a657d5fe49de93b4599/nixos/modules/services/desktop-managers/plasma6.nix#L153-L165 plasma6.nix]


<syntaxHighlight lang=nix>
<syntaxHighlight lang=nix>
Line 35: Line 41:
   plasma-browser-integration
   plasma-browser-integration
   konsole
   konsole
   oxygen
   elisa
];
];
</syntaxHighlight>
</syntaxHighlight>
== Configuration ==


=== GNOME desktop integration ===
=== GNOME desktop integration ===
Line 70: Line 74:
For more details, see [https://discourse.nixos.org/t/guide-to-installing-qt-theme/35523/2 this] forum post.
For more details, see [https://discourse.nixos.org/t/guide-to-installing-qt-theme/35523/2 this] forum post.


=== Wayland/X11 session ===
=== Default Wayland/X11 session ===


==== Plasma 5 ====
==== Plasma 5 ====
Line 135: Line 139:
{{note|  [https://github.com/pjones/plasma-manager Plasma-Manager] is not matured yet and currently unofficial }}  
{{note|  [https://github.com/pjones/plasma-manager Plasma-Manager] is not matured yet and currently unofficial }}  
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.
 
 


[[Category:Desktop environment]]
[[Category:Desktop environment]]
[[Category:Applications]]
[[Category:Applications]]

Revision as of 13:50, 8 April 2024

KDE Plasma is a desktop environment that aims to be simple by default, powerful when needed.

Installation

To use KDE Plasma, add this to your configuration.nix:

services.xserver.enable = true;
services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;

Or if you want to use Plasma 6, available on nixpkgs-unstable:

services.xserver.enable = true;
services.xserver.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true;

Configuration

Excluding applications from the default install

Some optional packages that are installed by default can be excluded if they are not needed.

Plasma 5

Optional packages: plasma5.nix

environment.plasma5.excludePackages = with pkgs.libsForQt5; [
  plasma-browser-integration
  konsole
  oxygen
];

Plasma 6

Optional packages: plasma6.nix

environment.plasma6.excludePackages = with pkgs.kdePackages; [
  plasma-browser-integration
  konsole
  elisa
];

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.

Default Wayland/X11 session

Plasma 5

Plasma 5 runs on X11 by default. To launch a Wayland session by default:

services.xserver.displayManager.defaultSession = "plasmawayland";

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;

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.

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)

Tips and tricks

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.