{ config, lib, pkgs, ... }: let inherit (pkgs.libsForQt5) callPackage; in { options = { kde = { enable = lib.mkEnableOption "Enable KDE desktop."; }; }; config = lib.mkIf config.kde.enable { services.xserver.displayManager.sddm.enable = true; services.xserver.desktopManager.plasma5.enable = true; # Listen for KDE Connect connections on the tailnet networking.firewall.interfaces = { "tailscale0" = { allowedTCPPorts = lib.range 1714 1764; allowedUDPPorts = lib.range 1714 1764; }; }; environment.systemPackages = with pkgs; [ (callPackage ../pkgs/tile-gaps.nix { }) plasma5Packages.kdeconnect-kde libsForQt5.bismuth libsForQt5.kalendar libsForQt5.kmail libsForQt5.kontact ]; }; }