summary refs log tree commit diff
path: root/modules/gnome.nix
blob: 7fde00da60d10c28b7c1a24687136e352f5112e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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=";
          };
        });
      });
    })
  ];
}