{ lib, config, pkgs, ... }: with lib; let cfg = config.roles.desktop; in { options.roles.desktop = { enable = mkEnableOption "Enable the desktop role."; x11 = mkOption { type = types.bool; default = false; description = "Enable X11 support."; }; wayland = mkOption { type = types.bool; default = false; description = "Enable Wayland support."; }; kde = mkOption { type = types.bool; default = false; description = "Enable KDE."; }; gaming = mkOption { type = types.bool; default = false; description = "Enable gaming support."; }; sddm = mkOption { type = types.bool; default = false; description = "Enable SDDM greeter."; }; }; imports = [ ./x11.nix ./wayland.nix ./gaming.nix ./kde.nix ./sddm.nix ]; config = mkIf cfg.enable { environment.systemPackages = with pkgs; [ brightnessctl emacs-nox ]; programs.dconf.enable = true; services.gnome.gnome-keyring.enable = true; programs.kdeconnect.enable = true; }; }