From c922e85afbdf967731707b2fce61a8f08d316593 Mon Sep 17 00:00:00 2001 From: Tyler Starr Date: Sun, 7 Apr 2024 23:56:54 -0700 Subject: [PATCH] several updates to gnome config --- provision/modules/desktop/gnome.nix | 93 ++++++++++++++++++++-------- provision/overlays/focus-changer.nix | 10 +++ 2 files changed, 78 insertions(+), 25 deletions(-) create mode 100644 provision/overlays/focus-changer.nix diff --git a/provision/modules/desktop/gnome.nix b/provision/modules/desktop/gnome.nix index 50430765..f5260925 100644 --- a/provision/modules/desktop/gnome.nix +++ b/provision/modules/desktop/gnome.nix @@ -1,10 +1,7 @@ -{ config, lib, pkgs, user, ... }: +{ config, lib, pkgs, user, home-manager, ... }: let cfg = config.modules.desktop.gnome; in { - #imports = [ - # home-manager.nixosModule - #]; options.modules.desktop.gnome = with lib; { enable = lib.mkEnableOption "gnome"; @@ -19,6 +16,11 @@ in { }; config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + gnome.dconf-editor + gnomeExtensions.focus-changer + ]; + # Enable wayland gnome services.xserver = { enable = true; @@ -33,26 +35,67 @@ in { sound.enable = true; hardware.pulseaudio.enable = lib.mkForce false; - ## GNOME settings through home - #home-manager.users.${user} = { - # dconf.settings = { - # "org/gnome/desktop/background" = { - # picture-options = "centered"; - # picture-uri = "file://${../../../resources/img/bulwark.png}"; - # picture-uri-dark = "file://${../../../resources/img/bulwark.png}"; - # }; - # # Enable on-screen keyboard - # "org/gnome/desktop/a11y/applications" = { - # screen-keyboard-enabled = true; - # }; - # "org/gnome/shell" = { - # favorite-apps = [ - # "steam.desktop" - # "org.gnome.Console.desktop" - # "chromium-browser.desktop" - # ]; - # }; - # }; - #}; + # GNOME settings through home + home-manager.users.${user} = { + dconf.settings = { + "org/gnome/desktop/background" = { + picture-options = "centered"; + picture-uri = "file://${../../../resources/img/kestrel.png}"; + picture-uri-dark = "file://${../../../resources/img/kestrel.png}"; + }; + "org/gnome/shell" = { + favorite-apps = [ + "steam.desktop" + "discord.desktop" + "org.gnome.Console.desktop" + "google-chrome.desktop" + ]; + disable-user-extensions = false; + enabled-extensions = [ + "focus-changer@heartmire" + ]; + }; + "org/gnome/mutter" = { + center-new-windows = true; + focus-change-on-pointer-rest = false; + overlay-key = "Super"; + workspaces-only-on-primary = true; + }; + "org/gnome/shell/keybindings" = { + switch-to-application-1 = []; + switch-to-application-2 = []; + switch-to-application-3 = []; + switch-to-application-4 = []; + switch-to-application-5 = []; + switch-to-application-6 = []; + switch-to-application-7 = []; + switch-to-application-8 = []; + switch-to-application-9 = []; + toggle-quick-settings = []; + }; + "org/gnome/settings-daemon/plugins/media-keys" = { + screensaver = []; + }; + "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"]; #  + move-to-workspace-1 = ["1"]; #  + move-to-workspace-2 = ["2"]; #  + move-to-workspace-3 = ["3"]; #  + move-to-workspace-4 = ["4"]; #  + move-to-monitor-left = ["h"]; #  + move-to-monitor-right = ["l"]; #  + close = ["d"]; #  + toggle-fullscreen = [ "f" ]; #  + toggle-maximized = [ "t" ]; #  + raise-or-lower = [ "s" ]; #  + switch-windows = ["Tab"]; #  + switch-windows-backward = ["Tab"]; #  + minimize = []; + }; + }; + }; }; } diff --git a/provision/overlays/focus-changer.nix b/provision/overlays/focus-changer.nix new file mode 100644 index 00000000..780d9fbd --- /dev/null +++ b/provision/overlays/focus-changer.nix @@ -0,0 +1,10 @@ +self: super: { + gnomeExtensions.focus-changer = super.gnomeExtensions.focus-changer.overrideAttrs (old: { + src = super.fetchFromGitHub { + owner = "martinhjartmyr"; + repo = "gnome-shell-extension-focus-changer"; + rev = "4de5bc334a1624fd8eb22203ab229a6045320923"; + sha256 = "sha256-hvLDsLQl7+Flrlg26HNIuwLnWqpB09ZO1xNHRms22g0="; + }; + }); +}