main
 1{den, ...}: {
 2  den.aspects.desktop.noctalia.includes = [
 3    (
 4      den.lib.policy.when
 5      ({user, ...}: user.hasAspect den.aspects.desktop.wm.niri)
 6      den.aspects.desktop.noctalia.integration.niri
 7    )
 8  ];
 9
10  den.aspects.desktop.noctalia.integration = {
11    niri = {
12      hjem = {
13        xdg.config.files."noctalia/config.toml".value = {
14          backdrop.enabled = true;
15        };
16
17        xdg.config.files."niri/nix/pre.kdl".text = ''
18          spawn-at-startup "noctalia"
19          layer-rule {
20          	match namespace="^noctalia-backdrop"
21          	place-within-backdrop true
22          }
23          layer-rule {
24          	match namespace="^noctalia-(bar-[^\"]+|notification|dock|panel|attached-panel|osd)$"
25          	background-effect { xray false; }
26          }
27          window-rule {
28           	match app-id="dev.noctalia.Noctalia.Settings"
29           	open-floating true
30           	background-effect { xray false; }
31           	default-column-width { fixed 1080; }
32           	default-window-height { fixed 920; }
33          }
34        '';
35
36        xdg.config.files."niri/nix/keybinds.kdl".value = {
37          "Mod+Space" = ''spawn-sh  "noctalia msg panel-toggle launcher"'';
38          "Mod+X" = ''spawn-sh "noctalia msg panel-toggle control-center"'';
39          "Mod+V" = ''spawn-sh "noctalia msg panel-toggle clipboard"'';
40          "Mod+Alt+L" = ''spawn-sh "noctalia msg session lock"'';
41          "XF86AudioRaiseVolume" = ''spawn-sh "noctalia msg volume-up"'';
42          "XF86AudioLowerVolume" = ''spawn-sh "noctalia msg volume-down"'';
43          "XF86AudioMute" = ''spawn-sh "noctalia msg volume-mute"'';
44          "XF86MonBrightnessUp" = ''spawn-sh "noctalia msg brightness-up"'';
45          "XF86MonBrightnessDown" = ''spawn-sh "noctalia msg brightness-down"'';
46        };
47      };
48    };
49  };
50}