{ config, pkgs, lib, ... }: { # Enable the GNOME Desktop Environment. services.displayManager.gdm = { enable = true; wayland = true; }; services.desktopManager.gnome = { enable = true; }; programs.dconf.profiles.user.databases = [ { lockAll = true; # prevents overriding settings = { # re-login to activate "org/gnome/mutter" = { dynamic-workspaces = false; experimental-features=[ "scale-monitor-framebuffer" "xwayland-native-scaling" ]; }; "org/gnome/settings-daemon/plugins/media-keys" = { volume-step = lib.gvariant.mkInt32 3; }; "org/gnome/desktop/wm/preferences" = { num-workspaces = lib.gvariant.mkInt32 5; }; "org/gnome/desktop/wm/keybindings" = { switch-to-workspace-1 = ["1"]; switch-to-workspace-2 = ["2"]; switch-to-workspace-3 = ["3"]; switch-to-workspace-4 = ["4"]; switch-to-workspace-5 = ["5"]; }; "org/gnome/desktop/interface" = { document-font-name = "Noto Sans CJK SC 12 @wght=400"; font-name = "Noto Sans CJK SC 11 @wght=400"; monospace-font-name = "RecMonoLinear Nerd Font Mono 11"; }; "org/gnome/shell" = { # disable-user-extensions = true; # Optionally disable user extensions entirely enabled-extensions = [ # Put UUIDs of extensions that you want to enable here. # If the extension you want to enable is packaged in nixpkgs, # you can easily get its UUID by accessing its extensionUuid # field (look at the following example). pkgs.gnomeExtensions.blur-my-shell.extensionUuid pkgs.gnomeExtensions.dash-to-dock.extensionUuid pkgs.gnomeExtensions.brightness-control-using-ddcutil.extensionUuid pkgs.gnomeExtensions.caffeine.extensionUuid pkgs.gnomeExtensions.night-theme-switcher.extensionUuid pkgs.gnomeExtensions.primary-input-on-lockscreen.extensionUuid pkgs.gnomeExtensions.tray-icons-reloaded.extensionUuid pkgs.gnomeExtensions.auto-move-windows.extensionUuid # Alternatively, you can manually pass UUID as a string. # "blur-my-shell@aunetx" # ... ]; }; "org/gnome/shell/extensions/auto-move-windows" = { application-list = [ "Alacritty.desktop:1" "firefox.desktop:2" "thunderbird.desktop:3" "org.telegram.desktop.desktop:4" "steam.desktop:5" ]; }; }; } ]; environment.systemPackages = with pkgs; [ gnomeExtensions.blur-my-shell gnomeExtensions.dash-to-dock gnomeExtensions.brightness-control-using-ddcutil gnomeExtensions.caffeine gnomeExtensions.night-theme-switcher gnomeExtensions.primary-input-on-lockscreen gnomeExtensions.tray-icons-reloaded gnomeExtensions.auto-move-windows # pin apps to workspaces ]; }