# KDE desktop environment.

# TODO: Declarative KDE setting adjustments.
#   - Plasma > Breeze Dark
#   - Global theme > Breeze Dark
#   - Touchpad > Invert scroll direction (natural scrolling)
#   - Touchpad > Tap to click > unchecked
#   - File search > Also index file content
#   - On AC power > Button events handling > When laptop lid is closed > Do nothing
#   - On AC power > Suspend session -> unchecked

{ config, pkgs, ... }:
{
  imports = [
    ./audio.nix
  ];

  # https://wiki.nixos.org/wiki/KDE

  # Optional.
  # Enable the X11 windowing system.
  #services.xserver.enable = true;
  # Exclude xterm.
  #services.xserver.excludePackages = [ pkgs.xterm ];

  # Enable the KDE desktop environment
  services.displayManager.sddm = {
    enable = true;
    #theme = "sddm-chili-theme";
    wayland.enable = true;
  };

  services.desktopManager.plasma6.enable = true;

  # Don't install all programs of the KDE desktop.
  # https://wiki.nixos.org/wiki/KDE#Plasma_6_2
  #
  # Optional packages: https://github.com/NixOS/nixpkgs/blob/88195a94f390381c6afcdaa933c2f6ff93959cb4/nixos/modules/services/desktop-managers/plasma6.nix#L157-L180
  #
  environment.plasma6.excludePackages = with pkgs.kdePackages; [
    krdp # Remote Desktop Protocol (RDP)
    ark # Archive manager: Compress and decompress
  ];

  # GNOME desktop integration.
  # https://wiki.nixos.org/wiki/KDE#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";
#  };

  # Configure keymap in X11.
  services.xserver.xkb = {
    layout = "de";
    variant = "nodeadkeys";
  };

  # Enable Bluetooth support
  hardware.bluetooth.enable = true;
}