# Enables the Gnome desktop environment. { pkgs, config, lib, ... }: let cfg = config.aux.system.ui.desktops.gnome; in { options = { aux.system.ui.desktops.gnome.enable = lib.mkEnableOption ( lib.mdDoc "Enables the Gnome Desktop Environment." ); }; config = lib.mkIf cfg.enable { aux.system.ui.desktops = { enable = true; displayManager = lib.mkOverride 500 "gdm"; }; # Enable Gnome services.xserver = { # Remove default packages that came with the install excludePackages = [ pkgs.xterm ]; desktopManager.gnome.enable = lib.mkDefault true; }; environment = { # Remove extraneous Gnome packages gnome.excludePackages = with pkgs.gnome; [ gnome-software # Built-in software manager tali # poker game iagno # go game hitori # sudoku game atomix # puzzle game ]; # Install additional quality-of-life packages systemPackages = with pkgs; [ gnome.gnome-tweaks # Gnome tweak tool gnome.gnome-themes-extra # Additional themes ]; }; # Manually set askPassword to avoid a conflict with KDE programs.ssh.askPassword = "${pkgs.gnome.seahorse}/libexec/seahorse/ssh-askpass"; # Gnome UI integration for KDE apps qt = { enable = true; platformTheme = "gnome"; style = "adwaita-dark"; }; }; }