{lib, config, pkgs, unstablePkgs, ...}: { imports = [ ../unstable-packages.nix ]; config = rec { services.xserver.enable = true; services.xserver.desktopManager.gnome.enable = true; services.xserver.displayManager.gdm = { enable = true; wayland = false; autoSuspend = false; }; # environment.sessionVariables.NIXOS_OZONE_WL = "1"; programs.dconf.profiles.user.databases = [{ settings = with lib.gvariant; { "org/gnome/desktop/background" = { picture-options="zoom"; picture-uri="file://${../../media/wallpaper.png}"; picture-uri-dark="file://${../../media/wallpaper.png}"; }; "org/gnome/desktop/interface" = { clock-show-date=true; clock-show-seconds=true; clock-show-weekday=true; color-scheme="prefer-dark"; cursor-theme="GoogleDot-White"; }; "org/gnome/desktop/media-handling" = { automount=false; }; "org/gnome/desktop/peripherals/mouse" = { accel-profile="flat"; }; "org/gnome/desktop/sound" = { allow-volume-above-100-percent=true; }; "org/gnome/mutter" = { dynamic-workspaces=true; workspaces-only-on-primary=true; }; "org/gnome/SessionManager" = { logout-prompt=false; }; "org/gnome/settings-daemon/plugins/power" = { power-button-action="notning"; sleep-inactive-ac-type="nothing"; }; "org/gnome/shell" = { enabled-extensions=[ "drive-menu@gnome-shell-extensions.gcampax.github.com" "pop-shell@system76.com" "workspace-indicator@gnome-shell-extensions.gcampax.github.com" "Vitals@CoreCoding.com" "trayIconsReloaded@selfmade.pl" "places-menu@gnome-shell-extensions.gcampax.github.com" "apps-menu@gnome-shell-extensions.gcampax.github.com" "top-bar-organizer@julian.gse.jsts.xyz" "color-picker@tuberry" ]; favorite-apps=[ (if builtins.elem pkgs.kitty config.environment.systemPackages then "kitty.desktop" else none) "vivaldi-stable.desktop" "code.desktop" "org.gnome.Nautilus.desktop" (if config.programs.steam.enable then "steam.desktop" else none) "pavucontrol.desktop" ]; }; "org/gnome/shell/app-switcher" = { current-workspace-only=false; }; "org/gnome/shell/extensions/color-picker" = { color-picker-shortcut=["c"]; enable-shortcut=true; enable-systray=false; menu-key=""; notify-style=mkUint32 1; preview-style=mkUint32 0; }; "org/gnome/shell/extensions/pop-shell" = { active-hint=true; active-hint-border-radius=mkUint32 1; gap-inner=mkUint32 2; gap-outer=mkUint32 1; show-skip-taskbar=true; show-title=true; smart-gaps=false; snap-to-grid=false; tile-by-default=true; }; "org/gnome/shell/extensions/top-bar-organizer" = { center-box-order=["dateMenu"]; left-box-order=["activities" "apps-menu" "places-menu" "vitalsMenu"]; right-box-order=["TrayIconsReloaded" "workspace-indicator" "pop-shell" "color-picker@tuberry" "drive-menu" "screenRecording" "screenSharing" "dwellClick" "a11y" "keyboard" "quickSettings"]; }; "org/gnome/shell/extensions/trayIconsReloaded" = { icon-brightness=mkInt32 0; icon-contrast=mkInt32 0; icon-margin-horizontal=mkInt32 0; icon-margin-vertical=mkInt32 0; icon-padding-horizontal=mkInt32 4; icon-padding-vertical=mkInt32 0; icon-saturation=mkInt32 0; icon-size=mkInt32 16; icons-limit=mkInt32 16; invoke-to-workspace=true; position-weight=mkInt32 0; tray-margin-left=mkInt32 0; tray-margin-right=mkInt32 0; }; "org/gnome/shell/extensions/vitals" = { hide-icons=false; hot-sensors=["_processor_usage_" "_memory_allocated_"]; memory-measurement=mkInt32 1; update-time=mkInt32 2; use-higher-precision=true; }; "org/gnome/shell/keybindings" = { show-screenshot-ui=["Print" "S"]; }; "org/gnome/desktop/default-applications/terminal" = if builtins.elem pkgs.kitty config.environment.systemPackages then { exec = "kitty"; exec-arg = ""; } else null; "org/gnome/settings-daemon/plugins/media-keys" = { custom-keybindings = [ ( if builtins.elem pkgs.kitty config.environment.systemPackages then "org/gnome/settings-daemon/plugins/media-keys/custom-keybinding/custom0" else null ) ]; help = mkEmptyArray "s"; screensaver = ["l"]; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybinding/custom0" = if builtins.elem pkgs.kitty config.environment.systemPackages then { binding="t"; command="kitty"; name="Terminal"; } else null; }; }]; environment.gnome.excludePackages = with pkgs; with pkgs.gnome; [ baobab cheese epiphany evince geary gedit gnome-characters gnome-connections gnome-console gnome-disk-utility gnome-font-viewer gnome-logs gnome-maps gnome-text-editor gnome-tour seahorse totem yelp ]; programs.dconf.profiles.gdm.databases = with builtins.elemAt programs.dconf.profiles.user.databases 0; [{ settings = { "org/gnome/desktop/interface" = settings."org/gnome/desktop/interface"; "org/gnome/desktop/peripherals/mouse" = settings."org/gnome/desktop/peripherals/mouse"; "org/gnome/desktop/sound" = settings."org/gnome/desktop/sound"; "org/gnome/settings-daemon/plugins/power" = settings."org/gnome/settings-daemon/plugins/power"; "org/gnome/shell/keybindings" = settings."org/gnome/shell/keybindings"; }; }]; environment.systemPackages = with pkgs; [ gnomeExtensions.pop-shell gnomeExtensions.vitals gnomeExtensions.tray-icons-reloaded gnomeExtensions.color-picker gnomeExtensions.top-bar-organizer # unstablePkgs.gnomeExtensions.translate-indicator # translate-shell pavucontrol #FIXME: Apply the cursor theme also in GTK3 config google-cursor ]; }; }