{ pkgs, lib, ... }: let customfonts = pkgs.callPackage ../packages/customfonts.nix { inherit pkgs; }; catppuccin-konsole = pkgs.callPackage ../packages/catppuccin-konsole.nix { inherit pkgs; }; kdePackages = with pkgs.kdePackages; [ catppuccin-konsole 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; [ krunner discover ]; # Enable XWayland programs.xwayland.enable = true; programs.partition-manager.enable = true; fonts = { enableDefaultPackages = true; fontDir.enable = true; fontconfig = { enable = true; defaultFonts = { sansSerif = [ "ComicCode Nerd Font" ]; serif = [ "ComicCode Nerd Font" ]; monospace = [ "ComicCode Nerd Font" ]; emoji = [ "Twitter Color Emoji" "Noto Color Emoji" ]; }; }; packages = with pkgs; [ customfonts corefonts nerd-fonts.fira-code twemoji-color-font twitter-color-emoji ]; }; # 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"; }; }; }; }