From cb281054da974f7d13fd8c4ea3835c56347b7c03 Mon Sep 17 00:00:00 2001 From: Chris Toph Date: Sat, 11 Jan 2025 15:28:56 -0500 Subject: [PATCH] Gnome customization, shortcuts, and extensions --- host/rune/default.nix | 1 + host/rune/modules/gnome/default.nix | 18 +++- host/rune/modules/gnome/home.nix | 139 ++++++++++++++++++++++++++-- 3 files changed, 143 insertions(+), 15 deletions(-) diff --git a/host/rune/default.nix b/host/rune/default.nix index 46fc0ff..1564f7d 100644 --- a/host/rune/default.nix +++ b/host/rune/default.nix @@ -54,5 +54,6 @@ environment.variables = { HOSTNAME = hostName; + GTK_THEME = "Gruvbox-Dark"; }; } diff --git a/host/rune/modules/gnome/default.nix b/host/rune/modules/gnome/default.nix index ee6f9c9..dd4887e 100644 --- a/host/rune/modules/gnome/default.nix +++ b/host/rune/modules/gnome/default.nix @@ -20,9 +20,11 @@ environment.systemPackages = with pkgs; [ gnome-tweaks gnomeExtensions.appindicator - gnomeExtensions.tiling-shell - gnomeExtensions.dash-to-panel gnomeExtensions.blur-my-shell + gnomeExtensions.clipboard-indicator + gnomeExtensions.dash-to-panel + gnomeExtensions.tiling-shell + gnomeExtensions.vitals ]; environment.gnome.excludePackages = ( @@ -32,16 +34,22 @@ epiphany # web browser evince # document viewer gedit # text editor - yelp gnome-maps gnome-music gnome-photos - gnome-terminal gnome-tour + gnomeExtensions.applications-menu + gnomeExtensions.launch-new-instance + gnomeExtensions.light-style + gnomeExtensions.places-status-indicator + gnomeExtensions.status-icons + gnomeExtensions.system-monitor + gnomeExtensions.window-list + gnomeExtensions.windownavigator hitori # sudoku game iagno # go game tali # poker game + yelp ] ); - } diff --git a/host/rune/modules/gnome/home.nix b/host/rune/modules/gnome/home.nix index 8162e34..8a04a2e 100644 --- a/host/rune/modules/gnome/home.nix +++ b/host/rune/modules/gnome/home.nix @@ -1,17 +1,136 @@ -{ pkgs, ... }: { + pkgs, + config, + lib, + ... +}: +{ + home.packages = with pkgs; [ + gruvbox-gtk-theme + papirus-icon-theme + numix-cursor-theme + ]; - dconf = { + gtk = { enable = true; - settings."org/gnome/shell" = { - disable-user-extensions = false; - enabled-extensions = with pkgs.gnomeExtensions; [ - appindicator.extensionUuid - blur-my-shell.extensionUuid - dash-to-panel.extensionUuid - tiling-shell.extensionUuid - ]; + + iconTheme = { + name = "Papirus-Dark"; + package = pkgs.papirus-icon-theme; + }; + + theme = { + name = "Gruvbox-Dark"; + package = pkgs.gruvbox-gtk-theme; + }; + + cursorTheme = { + name = "Numix-Cursor"; + package = pkgs.numix-cursor-theme; + }; + + gtk3.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; + }; + + gtk4.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; }; }; + dconf = { + enable = true; + settings = { + "org/gnome/shell" = { + + favorite-apps = [ + "org.gnome.Nautilus.desktop" + "org.wezfurlong.wezterm.desktop" + "zen.desktop" + "spotify.desktop" + "vesktop.desktop" + "org.telegram.desktop.desktop" + "code.desktop" + "Marvel Rivals.desktop" + "steam.desktop" + ]; + + disable-user-extensions = false; + enabled-extensions = with pkgs.gnomeExtensions; [ + appindicator.extensionUuid + blur-my-shell.extensionUuid + clipboard-indicator.extensionUuid + dash-to-panel.extensionUuid + native-window-placement.extensionUuid + screenshot-window-sizer.extensionUuid + tiling-shell.extensionUuid + user-themes.extensionUuid + vitals.extensionUuid + ]; + }; + + ## Fix some annoying keybindings + "org/gnome/desktop/wm/keybindings" = { + close = [ "['Q']" ]; + switch-to-workspace-up = [ "" ]; + switch-to-workspace-down = [ "" ]; + shift-overview-up = [ "" ]; + shift-overview-down = [ "" ]; + toggle-application-view = [ "" ]; + toggle-message-tray = [ "a" ]; + }; + + "org/gnome/desktop/peripherals/mouse" = { + speed = 0.0; + natural-scroll = false; + accel-profile = "flat"; + }; + + "org/gnome/desktop/input-sources/xkb-options" = { + xkb-options = [ + "compose:menu" + "lv3:ralt_switch" + "terminate:ctrl_alt_bksp" + ]; + }; + + "org/gnome/shell/extensions/clipboard-indicator" = { + toggle-menu = [ "v" ]; + cache-size = 120; + history-size = 40; + pinned-on-bottom = true; + }; + + "org/gnome/shell/extensions/blur-my-shell/panel" = { + static-blur = false; + sigma = 50; + }; + + "org/gnome/shell/extensions/dash-to-panel" = { + appicon-margin = 6; + appicon-padding = 8; + dot-position = "TOP"; + dot-style-focused = "DASHES"; + dot-style-unfocused = "DASHES"; + multi-monitors = false; + panel-positions = builtins.toJSON { + "0" = "TOP"; + "1" = "TOP"; + }; + scroll-icon-action = "CYCLE_WINDOWS"; + scroll-panel-action = "SWITCH_WORKSPACE"; + trans-panel-opacity = "0.40"; + trans-use-custom-opacity = true; + tray-padding = 8; + }; + + "org/gnome/shell/extensions/user-theme" = { + name = "Gruvbox-Dark"; + }; + }; + }; }