{
  pkgs,
  lib,
  ...
}:
let
  kdePackages = with pkgs.kdePackages; [
    plasma-browser-integration
  ];
  packages = with pkgs; [
    bitwarden-desktop
    onlyoffice-bin
    obs-studio
    okteta
    krita
    ytmdesktop
    ktailctl
    wl-clipboard
    # we install xdg-desktop-portal-gtk so GTK theming works in KDE Plasma
    xdg-desktop-portal-gtk
    libnotify
    hoppscotch
  ];
in
{
  environment.systemPackages = lib.lists.unique (kdePackages ++ packages);

  # Enable the X11 windowing system.
  # You can leave this disabled if you're only using the Wayland session.
  services.xserver.enable = false;

  # Enable the SDDM Display Manager and enable its Wayland support.
  services.displayManager.sddm = {
    enable = true;
    wayland.enable = true;
  };

  # Enable the KDE Plasma Desktop Environment.
  services.desktopManager.plasma6.enable = true;
  environment.plasma6.excludePackages = with pkgs.kdePackages; [
    discover
  ];

  programs.partition-manager.enable = true;

  fonts.packages = with pkgs; [
    corefonts
    nerd-fonts.fira-code
  ];

  # Systemd user services
  # See https://wiki.nixos.org/wiki/Systemd/User_Services for more information
  systemd.user.services = {
    ktailctl = {
      enable = true;
      after = [ "network.target" ];
      wantedBy = [ "default.target" ];
      description = "A GUI to monitor and manage Tailscale on your Linux desktop, built using KDE Frameworks and Kirigami2.";
      serviceConfig = {
        Type = "simple";
        ExecStart = "${pkgs.ktailctl}/bin/ktailctl";
      };
    };
  };
}