summaryrefslogtreecommitdiff
path: root/modules/gnome/extensions.nix
blob: 8bb24c8d4bbe4419e6b2ad275d08acfe9ab577a7 (plain) (blame)
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
{ config, lib, pkgs, ... } : let
  inherit (builtins) attrNames attrValues filter;
  cfg = config.santi-modules.gnome;
  enabled-extensions = lib.filterAttrs (key: conf: conf.enabled) cfg.extensions;
in {
  config = lib.mkIf cfg.enable {
    environment.systemPackages = with pkgs; [
      gnome-tweaks
      tela-icon-theme # gtk theme
      hackneyed       # mouse icons
    ] ++ map (pkg-name: pkgs.gnomeExtensions.${pkg-name})
      (attrNames enabled-extensions);
    santi-modules.gnome.extensions = {
      appindicator = {
        email = "[email protected]";
        enabled = true;
      };
      x11-gestures = {
        email = "[email protected]";
        enabled = config.santi-modules.has-touchpad;
      };
      system-monitor = {
        email = "[email protected]";
        enabled = true;
      };
      rounded-window-corners-reborn = {
        enabled = true;
        email = "rounded-window-corners@fxgn";
      };
      unite = {
        email = "[email protected]";
        enabled = true;
      };
    };
    home-manager.users.leonardo.dconf.settings = lib.mkMerge ([{
      "org/gnome/shell" = {
        enabled-extensions = filter (e: !(isNull e))
          (map (pkg: pkg.email) (attrValues enabled-extensions));
      };
    }] ++ (map (pkg: pkg.dconf-settings) (attrValues enabled-extensions)));
  };
}