KDE: Difference between revisions

Writer (talk | contribs)
Malix (talk | contribs)
m Installation: feat: link to PLM
 
(25 intermediate revisions by 14 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 ==


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


{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|3={
{
   # Enable Plasma
   services.xserver.enable = true; # optional
  services.displayManager.sddm.enable = true;
  services.displayManager.sddm.wayland.enable = true;
   services.desktopManager.plasma6.enable = true;
   services.desktopManager.plasma6.enable = true;
}
</nowiki>}}


=== Plasma 5 ===
  # Default display manager for Plasma
  services.displayManager.sddm = {
    enable = true;
 
  # To use Wayland (Experimental for SDDM)
    wayland.enable = true;
  };


{{file|/etc/nixos/configuration.nix|nix|<nowiki>
  # Optionally enable xserver
{
   services.xserver.enable = true;
   services.xserver.enable = true;
  services.displayManager.sddm.enable = true;
}|name=configuration.nix|lang=nix}}{{Warning|SDDM is no longer supported on the unstable branch, users on unstable should use [[KDE#Plasma Login Manager|Plasma Login Manager]] instead. See configuration later in this page.}}
  services.xserver.desktopManager.plasma5.enable = true;
}
</nowiki>}}


== Configuration ==
== Configuration ==
=== 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 better tested and thus preferred:
<syntaxHighlight lang=nix>
services.xserver.displayManager.sddm.settings.General.DisplayServer = "x11-user";
</syntaxHighlight>


=== Excluding applications from the default install ===
=== Excluding applications from the default install ===
Line 38: Line 27:
Some optional packages can be excluded if they are not needed at the cost of functionality.
Some optional packages can be excluded if they are not needed at the cost of functionality.


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


Optional packages: [https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/services/desktop-managers/plasma6.nix#L136-L149 plasma6.nix]
{{File|3={
  environment.plasma6.excludePackages = with pkgs.kdePackages; [
    plasma-browser-integration
    konsole
    elisa
  ];
}|name=configuration.nix|lang=nix}}


<syntaxHighlight lang=nix>
=== Plasma Login Manager ===
environment.plasma6.excludePackages = with pkgs.kdePackages; [
  plasma-browser-integration
  konsole
  elisa
];
</syntaxHighlight>


==== Plasma 5 ====
[https://github.com/KDE/plasma-login-manager Plasma Login Manager] is currently only available in unstable. If you are on unstable you can enable it with the following configuration.


Optional packages: [https://github.com/NixOS/nixpkgs/blob/nixos-24.05/nixos/modules/services/x11/desktop-managers/plasma5.nix#L278-L282 plasma5.nix]
{{File|3={
 
  services.displayManager.plasma-login-manager = {
<syntaxHighlight lang=nix>
    enable = true;
environment.plasma5.excludePackages = with pkgs.libsForQt5; [
   };
  plasma-browser-integration
}|name=configuration.nix|lang=nix}}
  konsole
  oxygen
];
</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 ===
==== Plasma 6 ====


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>
{{File|3=
services.xserver.displayManager.defaultSession = "plasmax11";
  services.displayManager.defaultSession = "plasmax11";
</syntaxHighlight>
}|name=configuration.nix|lang=nix}}
 
==== SDDM on Wayland ====
 
<syntaxHighlight lang=nix>
services.xserver.displayManager.sddm.wayland.enable = true;
</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>
services.xserver.displayManager.defaultSession = "plasmawayland";
</syntaxHighlight>


== Troubleshooting ==
== Troubleshooting ==
Line 138: Line 78:
# 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 175:


==== 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 186:


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