{ pkgs, config, lib, ... }: let cfg = config.pim.gnome; in { options.pim.gnome.enable = lib.mkEnableOption "gnome"; config = lib.mkIf cfg.enable { services = { gnome.gnome-keyring.enable = lib.mkForce false; xserver = { desktopManager.gnome.enable = true; displayManager.gdm.enable = true; excludePackages = [pkgs.xterm]; }; }; environment = { systemPackages = [ pkgs.gnome.gnome-shell-extensions ] ++ (with pkgs.gnomeExtensions; [ pop-shell window-is-ready-remover random-wallpaper workspaces-indicator-by-open-apps ]) ++ lib.optional config.services.tailscale.enable pkgs.gnomeExtensions.tailscale-status; gnome.excludePackages = (with pkgs; [ epiphany gnome-connections gnome-console gnome-tour ]) ++ (with pkgs.gnome; [ geary gnome-calendar gnome-clocks gnome-contacts gnome-font-viewer gnome-logs gnome-maps gnome-music seahorse totem yelp gnome-weather ]); }; }; }