From 78dddddbf3b3e80e94ee987b048e0d4bd1d70d0b Mon Sep 17 00:00:00 2001 From: Ahwx Date: Wed, 17 Jun 2026 13:03:44 +0200 Subject: [PATCH] feat: import gnome role --- roles/gnome.nix | 175 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 169 insertions(+), 6 deletions(-) diff --git a/roles/gnome.nix b/roles/gnome.nix index 553bf90..fbe820a 100644 --- a/roles/gnome.nix +++ b/roles/gnome.nix @@ -3,6 +3,7 @@ pkgs, config, username, + inputs, home-manager, ... }: @@ -11,21 +12,183 @@ 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; + # 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 = with pkgs; [ - gnome-tour - gnome-user-docs + 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 = [ + "librewolf.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.librewolf}/bin/librewolf"; + 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" + ]; + }; + }; + }; + }; }; }