summaryrefslogtreecommitdiff
path: root/modules/features/desktop/niri.nix
blob: 1b0df4777b481b9e8b96ba58dfe9b68b926415db (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
{ self, inputs, ... }: {

  flake.nixosModules.niri = { pkgs, lib, ... }: {    
    programs.niri = {
      enable = true;
      package = self.packages.${pkgs.stdenv.hostPlatform.system}.myNiri;
    };
  };
  
  
  perSystem = { pkgs, lib, self', ... }: {
    
    packages.myNiri = inputs.wrapper-modules.wrappers.niri.wrap {
      inherit pkgs;
      #env.QT_QPA_PLATFORMTHEME = "gtk3";
      settings = {
         spawn-at-startup = [
           "${lib.getExe self'.packages.myNoctalia}"
         ];

        spawn-sh-at-startup = [
          "${lib.getExe pkgs.brightnessctl} set 60%"
        ];

        xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite;

        input.keyboard = {
          xkb.layout = "de";
        };
        
        layout.gaps = 10;

        prefer-no-csd = true;
      
        binds = {
          "Mod+Return".spawn-sh = lib.getExe pkgs.alacritty;
          "Mod+S".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher toggle";
          "Mod+Q".close-window = _: {};
          "Mod+Shift+E".quit = _: {};
          "Mod+F".maximize-column = _: {};
          "Mod+H".show-hotkey-overlay = _: {};
          "Mod+Left".focus-column-left = _: {};
          "Mod+Right".focus-column-right = _: {};
          "Mod+Shift+Left".move-column-left = _: {};
          "Mod+Shift+Right".move-column-right = _: {};
          "Mod+Prior".focus-workspace-up = _: {};
          "Mod+Next".focus-workspace-down = _: {};
          "Mod+Shift+Prior".move-column-to-workspace-up = _: {};
          "Mod+Shift+Next".move-column-to-workspace-down = _: {};
          "Mod+O".toggle-overview = _: {};
          "Mod+G".toggle-window-floating = _: {};
          "Mod+Ctrl+Left".consume-or-expel-window-left = _: {};
          "Mod+Ctrl+Right".consume-or-expel-window-right = _: {};
          "Mod+Space".switch-focus-between-floating-and-tiling = _: {};
          "Mod+Ctrl+Space".switch-preset-column-width = _: {};
          "Mod+W".spawn-sh = "$BROWSER";
          "Mod+E".spawn-sh = "emacsclient -c";
        };

        window-rules = [
          {
            matches = [ { app-id = ".*"; } ];
            opacity = 0.90;
          } 
        ];
       
      };

      extraSettings = [
        { include = [ { optional = true; } "~/.config/niri/noctalia.kdl" ]; }
      ];
    };
 
  };

}