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}