{ config, lib, pkgs, ... }: with lib; let cfg = config.home.roles.desktop; in { options.home.roles.desktop = { enable = mkEnableOption "Enable desktop GUI applications and utilities"; }; config = mkIf cfg.enable { home.packages = with pkgs; [ # Desktop applications bitwarden dunst keepassxc kitty # Desktop utilities solaar # Logitech management software waybar wofi # System utilities with GUI components (snapcast.override { pulseaudioSupport = true; }) # KDE tiling window management kdePackages.krohnkite # Dynamic tiling extension for KWin 6 # KDE PIM applications for email, calendar, and contacts kdePackages.kmail kdePackages.kmail-account-wizard kdePackages.kmailtransport kdePackages.korganizer kdePackages.kaddressbook kdePackages.kontact # KDE Online Accounts support kdePackages.kaccounts-integration kdePackages.kaccounts-providers kdePackages.signond # KDE Mapping kdePackages.marble # Virtual globe and world atlas # KDE Productivity kdePackages.kate # Advanced text editor with syntax highlighting kdePackages.okular # Universal document viewer (PDF, ePub, etc.) kdePackages.spectacle # Screenshot capture utility kdePackages.filelight # Visual disk usage analyzer # KDE Multimedia kdePackages.gwenview # Image viewer and basic editor kdePackages.elisa # Music player # KDE System Utilities kdePackages.ark # Archive manager (zip, tar, 7z, etc.) kdePackages.yakuake # Drop-down terminal emulator ]; programs.firefox = { enable = true; }; programs.spotify-player.enable = true; services.gnome-keyring = { enable = true; }; xdg.enable = true; # Note: modules must be imported at top-level home config }; }