KDE: Difference between revisions

Eljamm (talk | contribs)
m Replace `services.xserver.displayManager` with `services.displayManager`
Phobos (talk | contribs)
mNo edit summary
(11 intermediate revisions by 10 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;
};
 
# 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 31: Line 37:


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
# Using X11 as a non-root user
services.displayManager.sddm.settings.General.DisplayServer = "x11-user";
services.displayManager.sddm.settings.General.DisplayServer = "x11-user";
# Using Wayland (preferred)
services.displayManager.sddm.settings.General.DisplayServer = "wayland";
</syntaxhighlight>
</syntaxhighlight>


Line 40: Line 50:
==== 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 71:
];
];
</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 138: Line 119:
# Replace <code>"safeStorageBackend": "kwallet5"</code> with <code>"safeStorageBackend": "kwallet6"</code> (change 5 to 6)
# Replace <code>"safeStorageBackend": "kwallet5"</code> with <code>"safeStorageBackend": "kwallet6"</code> (change 5 to 6)
# Start Signal
# 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 213: Line 216:


==== 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 223: Line 227:


</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]]