aboutsummaryrefslogtreecommitdiff
path: root/modules/desktop/nixos/gnome.nix
blob: 335815ad63c9df38a115b48e70fa9bb075a2e9e1 (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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
{
  pkgs,
  config,
  lib,
  ...
}: let
  cfg = config.collinux.desktop.gnome;
in
  lib.mkIf cfg.enable {
    services.desktopManager.gnome.enable = true;

    services.gnome.gcr-ssh-agent.enable = false; # conflicts with normal ssh-agent

    environment.gnome.excludePackages = with pkgs; [
      orca
      evince
      # file-roller
      geary
      # gnome-disk-utility
      seahorse
      # sushi
      # sysprof
      # gnome-shell-extensions
      adwaita-icon-theme
      # nixos-background-info
      gnome-backgrounds
      # gnome-bluetooth
      # gnome-color-manager
      # gnome-control-center
      # gnome-shell-extensions
      gnome-tour # GNOME Shell detects the .desktop file on first log-in.
      gnome-user-docs
      # glib # for gsettings program
      # gnome-menus
      # gtk3.out # for gtk-launch program
      # xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
      # xdg-user-dirs-gtk # Used to create the default bookmarks
      #
      baobab
      epiphany
      gnome-text-editor
      gnome-calculator
      gnome-calendar
      gnome-characters
      # gnome-clocks
      gnome-console
      gnome-contacts
      gnome-font-viewer
      gnome-logs
      gnome-maps
      gnome-music
      # gnome-system-monitor
      gnome-weather
      # loupe
      # nautilus
      gnome-connections
      simple-scan
      snapshot
      totem
      yelp
      gnome-software
    ];

    hjem.users."${config.collinux.user.name}".packages = with pkgs.gnomeExtensions; [blur-my-shell dash-to-dock] ++ [pkgs.wl-clipboard];

    programs.dconf = {
      enable = true;
      profiles.user.databases = [
        {
          settings = {
            "org/gnome/mutter" = {
              workspaces-only-on-primary = false;
            };
            "org/gnome/shell/app-switcher" = {
              current-workspace-only = true;
            };

            # Idle settings
            "org/gnome/desktop/session" = {
              idle-delay = lib.gvariant.mkInt16 0;
            };
            "org/gnome/settings-daemon/plugins/power" = {
              sleep-inactive-ac-type = "nothing";
            };

            # Theming, etc
            "org/gnome/desktop/interface" = {
              color-scheme = "prefer-dark";
              enable-hot-corners = false;
            };

            # Keybindings
            "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
              binding = "<Super>Return";
              command = "blackbox";
              name = "Terminal";
            };
            "org/gnome/settings-daemon/plugins/media-keys" = {
              custom-keybindings = [
                "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
              ];
            };

            # Background
            "org/gnome/desktop/background" = rec {
              picture-uri = "file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/blobs-d.svg";
              picture-uri-dark = picture-uri;
            };

            # Extensions
            "org/gnome/shell" = {
              disable-user-extensions = false;
              enabled-extensions = with pkgs.gnomeExtensions; [
                blur-my-shell.extensionUuid
                dash-to-dock.extensionUuid
              ];
            };

            "org/gnome/shell/extensions/dash-to-dock" = {
              dash-max-icon-size = lib.gvariant.mkInt16 48;
              show-trash = false;
              show-mounts = false;
            };
          };
        }
      ];
    };
  }