{ pkgs, lib, ... }: let # Patched Logo Menu extension (same patch as installed system-wide). logoMenuExtension = pkgs.gnomeExtensions.logo-menu.overrideAttrs (old: { patches = (old.patches or []) ++ [ ./patches/logo-menu-custom-menu.patch ]; }); # Expose the extension schema in the layout expected by gsettings overrides. logoMenuSchemas = pkgs.runCommand "logo-menu-gsettings-schemas" { } '' schemaSrc="${logoMenuExtension}/share/gnome-shell/extensions/logomenu@aryan_k/schemas"; dest=$out/share/gsettings-schemas/logo-menu-gsettings-schemas/glib-2.0/schemas mkdir -p "$dest" cp -a "$schemaSrc"/*.xml "$dest"/ ''; in { services.displayManager.gdm.enable = true; services.desktopManager.gnome.enable = true; services.desktopManager.gnome.extraGSettingsOverridePackages = [ pkgs.gnome-shell logoMenuSchemas ]; # Ensure GNOME sees the compiled overrides. environment.profileRelativeEnvVars.XDG_DATA_DIRS = lib.mkAfter [ "/share/gsettings-schemas/nixos-gsettings-overrides" ]; services.gnome.core-developer-tools.enable = false; services.gnome.games.enable = false; # System default GNOME Shell extensions (user can still toggle/override). services.desktopManager.gnome.extraGSettingsOverrides = '' [org/gnome/shell] disable-user-extensions=false enabled-extensions=['all-in-one-clipboard@NiffirgkcaJ.github.com','AlphabeticalAppGrid@stuarthayhurst','app-hider@lynith.dev','blur-my-shell@aunetx','caffeine@patapon.info','logomenu@aryan_k','restartto@tiagoporsch.github.io'] [org/gnome/shell/extensions/logo-menu] menu-button-icon-image=51 menu-button-terminal='ghostty' menu-button-system-monitor='flatpak run io.missioncenter.MissionCenter' menu-button-extensions-app='com.mattjakeman.ExtensionManager.desktop' hide-softwarecentre=true ''; environment.gnome.excludePackages = with pkgs; [ # comment out to include gnome-tour gnome-user-docs # baobab # disk usage analyzer decibels # audio player epiphany # web browser geary # email client # gnome-text-editor # text editor # gnome-backgrounds gnome-calculator gnome-calendar gnome-characters # gnome-clocks gnome-console gnome-contacts # gnome-font-viewer # gnome-logs gnome-maps gnome-music gnome-system-monitor gnome-weather loupe nautilus papers # gnome-connections showtime simple-scan snapshot yelp ]; }