summaryrefslogtreecommitdiff
path: root/modules/features/niri.nix
blob: ec869a836a0f091d875ce41705561ef5c815d02a (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
{
  self,
  inputs,
  ...
}: {
  flake.nixosModules.ngeNiri = {
    pkgs,
    lib,
    ...
  }: {
    stylix = {
      base16Scheme = "${pkgs.base16-schemes}/share/themes/nord.yaml";
      autoEnable = true;
      targets = {
        firefox.profileNames = ["mun" "work" "school" "opsec"];
        btop.enable = true;
      };
      fonts = {
        serif = {
          package = pkgs.dejavu_fonts;
          name = "DejaVu Serif";
        };

        sansSerif = {
          package = pkgs.dejavu_fonts;
          name = "DejaVu Sans";
        };

        monospace = {
          package = pkgs.dejavu_fonts;
          name = "DejaVu Sans Mono";
        };

        emoji = {
          package = pkgs.noto-fonts-color-emoji;
          name = "Noto Color Emoji";
        };
      };
    };
    gtk = {
      enable = true;
      cursorTheme = {
        package = pkgs.rose-pine-cursor;
        name = "rose-pine-cursor";
        size = 30;
      };
      iconTheme = {
        package = pkgs.material-design-icons;
        name = "material-design-icons";
      };
    };

    programs.niri = {
      enable = true;
      package = self.packages.${pkgs.stdenv.hostPlatform.system}.ngeNiri;
    };
  };

  perSystem = {
    pkgs,
    lib,
    self',
    ...
  }: {
    packages.ngeNiri = inputs.wrapper-modules.wrappers.niri.wrap {
      inherit pkgs;
      settings = {
        spawn-at-startup = [
          (lib.getExe self'.packages.ngeNoctalia)
        ];

        xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite;
        input.touchpad.natural-scroll = {};

        layout.gaps = 5;

        binds = {
          "Mod+Return".spawn-sh = lib.getExe pkgs.alacritty;
          "Mod+Shift+Q".close-window = {};
          "Mod+Space".toggle-overview = {};
          "Mod+D".spawn-sh = "${lib.getExe self'.packages.ngeNoctalia} ipc call launcher toggle";
          "Mod+Shift+S".spawn-sh = "${lib.getExe pkgs.niri} msg action screenshot";
        };
      };
    };
  };
}