KDE: Difference between revisions

Eliasp (talk | contribs)
m Using a single diff from a remote URL: Fix formatting (command on separate line)
Phobos (talk | contribs)
m updated config syntax and corrected sddm config for kde
 
(12 intermediate revisions by 12 users not shown)
Line 1: Line 1:
[https://kde.org/de/plasma-desktop/ KDE Plasma] is a desktop environment that aims to be simple by default, powerful when needed.
[https://kde.org/plasma-desktop/ KDE Plasma] is a desktop environment that aims to be simple by default, powerful when needed.


== Installation ==
== Installation ==
Line 5: Line 5:
=== Plasma 6 ===
=== Plasma 6 ===


{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|3=# Enable Plasma
{
services.desktopManager.plasma6.enable = true;
  services.xserver.enable = true; # optional
 
  services.displayManager.sddm.enable = true;
# Default display manager for Plasma
   services.displayManager.sddm.wayland.enable = true;
services.displayManager.sddm = {
   services.desktopManager.plasma6.enable = true;
  enable = true;
}
    
</nowiki>}}
# To use Wayland (Experimental for SDDM)
  wayland = {
    enable = true;
    compositor = "kwin";
   };
};
 
# Optionally enable xserver
services.xserver.enable = true;|name=/etc/nixos/configuration.nix|lang=nix}}


=== Plasma 5 ===
=== Plasma 5 ===


{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|3=# Enable Plasma 5 and xserver
{
services.xserver = {
   services.xserver.enable = true;
   enable = true;
   services.displayManager.sddm.enable = true;
   desktopManager.plasma5.enable = true;
  services.xserver.desktopManager.plasma5.enable = true;
};
}
 
</nowiki>}}
# Enable the default display manager
services.displayManager.sddm.enable = true;|name=/etc/nixos/configuration.nix|lang=nix}}''<big>'''Note:'''</big> As of 2024, KDE Plasma 5 is end of life will not be available after NixOS 25.05.''


== Configuration ==
== Configuration ==
Line 30: Line 39:
{{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:
{{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">
services.xserver.displayManager.sddm.settings.General.DisplayServer = "x11-user";
# Using X11 as a non-root user
</syntaxHighlight>
services.displayManager.sddm.settings.General.DisplayServer = "x11-user";
 
# Using Wayland (preferred)
services.displayManager.sddm.settings.General.DisplayServer = "wayland";
</syntaxhighlight>


=== Excluding applications from the default install ===
=== Excluding applications from the default install ===
Line 40: Line 53:
==== Plasma 6 ====
==== Plasma 6 ====


Optional packages: [https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/services/desktop-managers/plasma6.nix#L136-L149 plasma6.nix]
Optional packages: [https://github.com/NixOS/nixpkgs/blob/nixos-24.11/nixos/modules/services/desktop-managers/plasma6.nix#L159-L174 plasma6.nix]


<syntaxHighlight lang=nix>
<syntaxHighlight lang=nix>
Line 61: Line 74:
];
];
</syntaxHighlight>
</syntaxHighlight>
=== GNOME desktop integration ===
Using the following example configuration, QT applications will have a look similar to the [[GNOME]] desktop, using a dark theme.
<syntaxhighlight lang="nix">
qt = {
  enable = true;
  platformTheme = "gnome";
  style = "adwaita-dark";
};
</syntaxhighlight>
For other themes, you may need the packages <code>libsForQt5.qt5ct</code> and <code>libsForQt5.qtstyleplugin-kvantum</code> and a symlink from <code>~/.config/Kvantum/</code> to your theme package. Here is an example using Arc-Dark and [[Home Manager]]. In the Home Manager configuration:
<syntaxhighlight lang="nix">
qt = {
  enable = true;
  platformTheme = "qtct";
  style = "kvantum";
};
xdg.configFile = {
  "Kvantum/ArcDark".source = "${pkgs.arc-kde-theme}/share/Kvantum/ArcDark";
  "Kvantum/kvantum.kvconfig".text = "[General]\ntheme=ArcDark";
};
</syntaxhighlight>
For more details, see [https://discourse.nixos.org/t/guide-to-installing-qt-theme/35523/2 this] forum post.


=== Default Wayland/X11 session ===
=== Default Wayland/X11 session ===
Line 97: Line 81:
Plasma 6 runs on Wayland by default. To launch an X11 session by default:
Plasma 6 runs on Wayland by default. To launch an X11 session by default:


<syntaxHighlight lang=nix>
<syntaxhighlight lang="nix">
services.xserver.displayManager.defaultSession = "plasmax11";
services.displayManager.defaultSession = "plasmax11";
</syntaxHighlight>
</syntaxhighlight>


==== SDDM on Wayland ====
==== SDDM on Wayland ====


<syntaxHighlight lang=nix>
<syntaxhighlight lang="nix">
services.xserver.displayManager.sddm.wayland.enable = true;
services.displayManager.sddm.wayland.enable = true;
</syntaxHighlight>
</syntaxhighlight>


==== Plasma 5 ====
==== Plasma 5 ====
Line 111: Line 95:
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:
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";
services.displayManager.defaultSession = "plasmawayland";
</syntaxHighlight>
</syntaxhighlight>


== Troubleshooting ==
== Troubleshooting ==
Line 131: Line 115:


[https://github.com/NixOS/nixpkgs/issues/180720 (See this issue)]
[https://github.com/NixOS/nixpkgs/issues/180720 (See this issue)]
=== After Update to Plasma 6 Signal-Desktop complains about a Database Error involving kwallet5 ===
# Close Signal
# Open ~/.config/Signal/config.json
# Replace <code>"safeStorageBackend": "kwallet5"</code> with <code>"safeStorageBackend": "kwallet6"</code> (change 5 to 6)
# Start Signal
=== Bluetooth configuration not available ===
Add the following configuration (generally in hardware-configuration.nix):
<syntaxHighlight lang=nix>
hardware.bluetooth.enable = true;
</syntaxHighlight>
This will add the following packages:
<syntaxHighlight lang=nix>
[
bluedevil
bluez-qt
pkgs.openobex
pkgs.obexftp
]
</syntaxHighlight>
=== Brightness and Color brightness control sets gamma instead of brightness on external monitors ===
To allow <code>powerdevil</code> (and by extension the "Brightness and Color" status tray menu) to control brightness on supported monitors directly instead of adjusting gamma, [[Backlight#Via ddcutil|configure your system to enable ddcutil]], and allow your user to use DDC/CI without root.


== Tips and tricks ==
== Tips and tricks ==
Line 206: Line 219:


==== Using the worktree of a local repository ====
==== Using the worktree of a local repository ====
{{Note|Since this relies on reading directly from the filesystem during the build, the impure mode has to be used, e.g.: <code>nixos-rebuild --impure …</code>}}
Now one might not want to commit each and every change during development to iterate more quickly, but to just rebuild after having saved the latest changes.
Now one might not want to commit each and every change during development to iterate more quickly, but to just rebuild after having saved the latest changes.


Line 216: Line 230:


</syntaxhighlight>
</syntaxhighlight>
{{Note|Since this relies on reading directly from the filesystem during the build, the impure mode has to be used, e.g.: <code>nixos-rebuild --impure …</code>}}
[[Category:Desktop environment]]
[[Category:Desktop environment]]
[[Category:Applications]]
[[Category:Applications]]
[[Category:KDE]]
[[Category:KDE]]