summary refs log tree commit diff
path: root/modules/gnome.nix
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2024-10-14 22:15:32 +0200
committerMel <einebeere@gmail.com>2024-10-14 22:15:32 +0200
commit7bca7fb6cac0a3d6479ee8dd8fb5f13fa0261a51 (patch)
treeced025aff19ffe1a9a040f3e8034a48a88285b3a /modules/gnome.nix
downloadminerals-7bca7fb6cac0a3d6479ee8dd8fb5f13fa0261a51.tar.zst
minerals-7bca7fb6cac0a3d6479ee8dd8fb5f13fa0261a51.zip
Break up configuration for multiple machines
Signed-off-by: Mel <einebeere@gmail.com>
Diffstat (limited to 'modules/gnome.nix')
-rw-r--r--modules/gnome.nix64
1 files changed, 64 insertions, 0 deletions
diff --git a/modules/gnome.nix b/modules/gnome.nix
new file mode 100644
index 0000000..7fde00d
--- /dev/null
+++ b/modules/gnome.nix
@@ -0,0 +1,64 @@
+{ config, pkgs, ... }:
+
+{
+  services.xserver.enable = true;
+
+  # i dont like how the icon looks :)
+  services.xserver.excludePackages = [ pkgs.xterm ];
+
+  services.xserver.displayManager.gdm.enable = true;
+  services.xserver.desktopManager.gnome.enable = true;
+
+  environment.gnome.excludePackages = with pkgs; [
+    gnome-console
+  ];
+
+  environment.systemPackages = (with pkgs.gnome; [
+    gnome-terminal gnome-tweaks dconf-editor
+  ]) ++ (with pkgs.gnomeExtensions; [
+    runcat vitals
+  ]);
+
+  # legacy apps dark mode support
+  services.xserver.desktopManager.gnome.extraGSettingsOverrides = ''
+    # set dark theme for legacy applications
+    [org.gnome.desktop.interface]
+    gtk-theme="Adwaita"
+
+    # minimize windows when middle-clicking on titlebar
+    [org.gnome.desktop.wm.preferences]
+    action-middle-click-titlebar="minimize"
+  '';
+
+  environment.etc = {
+    "xdg/gtk-2.0/gtkrc".text = ''
+      gtk-application-prefer-dark-theme = 1
+    '';
+    "xdg/gtk-3.0/settings.ini".text = ''
+      [Settings]
+      gtk-application-prefer-dark-theme = 1
+    '';
+    "xdg/gtk-4.0/settings.ini".text = ''
+      [Settings]
+      gtk-application-prefer-dark-theme = 1
+    '';
+  };
+
+  # enable triple buffering which makes mutter supposedly feel smoother
+  nixpkgs.overlays = [
+    # GNOME 46: triple-buffering-v4-46
+    (final: prev: {
+      gnome = prev.gnome.overrideScope (gnomeFinal: gnomePrev: {
+        mutter = gnomePrev.mutter.overrideAttrs (old: {
+          src = pkgs.fetchFromGitLab  {
+            domain = "gitlab.gnome.org";
+            owner = "vanvugt";
+            repo = "mutter";
+            rev = "triple-buffering-v4-46";
+            hash = "sha256-C2VfW3ThPEZ37YkX7ejlyumLnWa9oij333d5c4yfZxc=";
+          };
+        });
+      });
+    })
+  ];
+}