{ lib, pkgs, config, username, inputs, home-manager, ... }: with lib; let cfg = config.liv.gnome; in { imports = [ inputs.home-manager.nixosModules.home-manager ]; options.liv.gnome = { enable = mkEnableOption "Enable GNOME workflow"; }; config = mkIf cfg.enable { security.pam.services.gdm.enableGnomeKeyring = true; services.displayManager.gdm.enable = true; services.desktopManager.gnome.enable = true; # services.displayManager.defaultSession = "Hyprland"; services.gnome.core-apps.enable = false; services.gnome.core-developer-tools.enable = false; services.gnome.games.enable = false; environment.gnome.excludePackages = [ pkgs.gnome-tour pkgs.gnome-user-docs ]; home-manager = { users.${username} = { home.packages = [ pkgs.gnomeExtensions.forge pkgs.gnomeExtensions.space-bar pkgs.gnomeExtensions.cmud # pkgs.gnomeExtensions.gocr pkgs.gnomeExtensions.pano pkgs.gnomeExtensions.pop-shell ]; dconf.enable = true; dconf.settings = { "org/gnome/shell" = { disable-user-extensions = false; disabled-extensions = "disabled"; enabled-extensions = [ "native-window-placement@gnome-shell-extensions.gcampax.github.com" "pop-shell@system76.com" "caffeine@patapon.info" "hidetopbar@mathieu.bidon.ca" "gsconnect@andyholmes.github.io" "rounded-window-corners@yilozt.shell-extension.zip" ]; favorite-apps = [ "firefox.desktop" "foot.desktop" ]; had-bluetooth-devices-setup = true; remember-mount-password = true; }; "org/gnome/shell/extensions/hidetopbar" = { enable-active-window = false; enable-intellihide = false; }; "org/gnome/desktop/interface" = { clock-show-seconds = false; clock-show-weekday = true; color-scheme = "prefer-dark"; enable-hot-corners = true; # font-antialiasing = "grayscale"; # font-hinting = "slight"; toolkit-accessibility = true; }; "org/gnome/desktop/wm/keybindings" = { activate-window-menu = "disabled"; toggle-message-tray = [ "n" ]; close = [ "q" ]; maximize = [ "Up" ]; minimize = [ "comma" ]; move-to-monitor-down = "disabled"; move-to-monitor-left = "disabled"; move-to-monitor-right = "disabled"; move-to-monitor-up = "disabled"; move-to-workspace-down = "disabled"; move-to-workspace-up = "disabled"; toggle-maximized = [ "m" ]; unmaximize = [ "Down" ]; 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" ]; switch-to-workspace-6 = [ "6" ]; switch-to-workspace-7 = [ "7" ]; switch-to-workspace-8 = [ "8" ]; switch-to-workspace-9 = [ "9" ]; switch-to-workspace-10 = [ "0" ]; move-to-workspace-1 = [ "1" ]; move-to-workspace-2 = [ "2" ]; move-to-workspace-3 = [ "3" ]; move-to-workspace-4 = [ "4" ]; move-to-workspace-5 = [ "5" ]; move-to-workspace-6 = [ "6" ]; move-to-workspace-7 = [ "7" ]; move-to-workspace-8 = [ "8" ]; move-to-workspace-9 = [ "9" ]; move-to-workspace-10 = [ "0" ]; cycle-windows = [ "s" ]; }; # "/org/gnome/shell/keybindings" = { # show-screenshot-ui = [ "s" ]; # }; "org/gnome/desktop/wm/preferences" = { num-workspaces = 10; mouse-button-modifier = ""; }; "org/gnome/shell/extensions/pop-shell" = { focus-right = "disabled"; tile-by-default = true; tile-enter = "disabled"; }; "org/gnome/desktop/peripherals/touchpad" = { tap-to-click = true; two-finger-scrolling-enabled = true; }; "org/gnome/settings-daemon/plugins/media-keys" = { next = [ "n" ]; previous = [ "p" ]; play = [ "space" ]; search = [ "d" ]; custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/" # "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/" ]; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { name = "Open a terminal"; command = "${pkgs.foot}/bin/foot -e tmux"; binding = "Return"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { name = "Open element"; command = "${pkgs.element-desktop}/bin/element-desktop"; binding = "e"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = { name = "Open nautilus"; command = "${pkgs.nautilus}/bin/nautilus"; binding = "e"; }; # "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3" = { # name = "Show launcher"; # command = "${pkgs.bemenu}/bin/bemenu-run -l 5 --ignorecase"; # binding = "d"; # }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4" = { name = "Open element"; command = "${pkgs.firefox}/bin/firefox"; binding = "f"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5" = { name = "Open ungoogled-chromium"; command = "${pkgs.ungoogled-chromium}/bin/chromium"; binding = "c"; }; "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6" = { name = "Open Thunderbird"; command = "${pkgs.thunderbird}/bin/thunderbird"; binding = "t"; }; "org/gnome/desktop/interface" = { accent-color = "purple"; }; "org/gnome/desktop/input-sources" = { xkb-options = [ "ctrl:nocaps" "lv3:ralt_switch" "compose:rwin" ]; }; }; }; }; }; }