{ pkgs, lib, config, ... }: let cfg = config.desktop.kde; in { options.desktop.kde = { enable = lib.mkEnableOption "enable kde on nixos side"; }; config = lib.mkIf cfg.enable { # enable kde plasma services = { desktopManager.plasma6.enable = true; displayManager.sddm.enable = true; displayManager.sddm.wayland.enable = true; }; environment.systemPackages = with pkgs; [ # KDE Utilities kdePackages.discover # Optional: Software center for Flatpaks/firmware updates kdePackages.kcalc # Calculator kdePackages.kcharselect # Character map kdePackages.kclock # Clock app kdePackages.kcolorchooser # Color picker kdePackages.kolourpaint # Simple paint program kdePackages.ksystemlog # System log viewer kdePackages.sddm-kcm # SDDM configuration module kdiff3 # File/directory comparison tool # Hardware/System Utilities (Optional) kdePackages.isoimagewriter # Write hybrid ISOs to USB kdePackages.partitionmanager # Disk and partition management hardinfo2 # System benchmarks and hardware info wayland-utils # Wayland diagnostic tools wl-clipboard # Wayland copy/paste support vlc # Media player ]; environment.plasma6.excludePackages = with pkgs; [ kdePackages.elisa # Music player kdePackages.kdepim-runtime # Akonadi agents kdePackages.kmahjongg #kdePackages.kmines kdePackages.konversation # IRC client kdePackages.kpat # Solitaire kdePackages.ksudoku kdePackages.ktorrent ]; }; }