{ pkgs, lib, ... }: { services.xserver.desktopManager.gnome.enable = true; environment.gnome.excludePackages = (with pkgs; [ gnome-tour yelp # Help view # ]) ++ (with pkgs.gnome; [ tali # poker game iagno # go game hitori # sudoku game atomix # puzzle game ]); programs.dconf.enable = true; imp.home.dirs = [ ".local/share/keyrings" ]; hm = let extensions = with pkgs.gnomeExtensions; [ # gnomeExtensions.user-themes blur-my-shell pop-shell vitals ]; # inherit (lib.hm.gvariant) mkTuple; in { dconf.settings = { "org/gnome/desktop/input-sources" = { # sources = [ (mkTuple [ "xkb" "us" ]) (mkTuple [ "xkb" "by+ru" ]) ]; xkb-options = [ "grp:caps_toggle" "compose:rctrl" ]; }; "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; enable-hot-corners = false; # gtk-theme = "adw-gtk3-dark"; show-battery-percentage = true; toolkit-accessibility = false; }; "org/gnome/desktop/peripherals/touchpad" = { tap-to-click = true; two-finger-scrolling-enabled = true; }; "org/gnome/desktop/wm/keybindings" = let binds = map (x: { "switch-to-workspace-${toString x}" = [ "${toString x}" ]; "move-to-workspace-${toString x}" = [ "${toString x}" ]; }) [1 2 3 4 5 6 7 8 9]; in lib.mkMerge (binds ++ [{ close = [ "q" ]; minimize = [ "minus" ]; switch-input-source = []; switch-input-source-backward = []; toggle-fullscreen = [ "F11" ]; }]); "org/gnome/mutter" = { dynamic-workspaces = false; }; "org/gnome/settings-daemon/plugins/color" = { night-light-enabled = true; night-light-schedule-automatic = true; night-light-schedule-from = 20.0; night-light-schedule-to = 9.0; night-light-temperature = 3469; }; "org/gnome/settings-daemon/plugins/media-keys" = { calculator = [ "Calculator" ]; custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" ]; mic-mute = [ "AudioMicMute" ]; screensaver = [ "ScreenSaver" ]; volume-down = [ "AudioLowerVolume" ]; volume-mute = [ "AudioMute" ]; volume-up = [ "AudioRaiseVolume" ]; www = [ "b" ]; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { binding = "Return"; command = lib.getExe pkgs.gnome-terminal; name = "GNOME Terminal"; }; "org/gnome/shell/extensions/pop-shell" = { active-hint = false; fullscreen-launcher = false; mouse-cursor-follows-active-window = true; show-skip-taskbar = true; show-title = true; smart-gaps = true; snap-to-grid = true; stacking-with-mouse = true; tile-by-default = true; tile-enter = [ "r" ]; }; "org/gnome/shell/extensions/vitals" = { alphabetize = false; fixed-widths = true; hide-icons = false; hide-zeros = true; hot-sensors = [ "_memory_usage_" "_processor_usage_" "_storage_free_" ]; memory-measurement = 1; menu-centered = false; position-in-panel = 2; }; "org/gnome/shell/keybindings" = { toggle-application-view = [ "d" ]; toggle-quick-settings = [ "d" ]; }; # "org/gnome/shell.favorite-apps" = [ # # "chromium.desktop" # "org.gnome.terminal.desktop" # "org.gnome.nautilus.desktop" # ]; "org/gnome/shell" = { disable-user-extensions = false; enabled-extensions = map (x: x.extensionUuid) extensions; }; }; home = { packages = (with pkgs; [ # pinentry-gnome # maybe I'll delete it # cava adw-gtk3 dconf gnome-tweaks ]) ++ extensions; sessionVariables.GTK_THEME = "adw-gtk3-dark"; }; }; environment.etc."lemurs/wayland/gnome".source = pkgs.writeShellScript "gnome.sh" "${pkgs.gnome-shell}/bin/niri"; }