main
1{den, ...}: {
2 den.aspects.desktop.env.shell.noctalia = {
3 includes =
4 den.lib.policy.when
5 ({host, ...}: host.hasAspect den.aspects.desktop.env.wm.niri)
6 [den.aspects.desktop.env.shell.noctalia.integration.niri];
7 };
8
9 den.aspects.desktop.env.shell.noctalia.integration = {
10 niri = {
11 homeManager = {
12 programs.noctalia.settings = {
13 backdrop.enabled = true;
14 };
15
16 programs.niri.extraConfig = {
17 pre = {
18 _children = [
19 {spawn-at-startup = "noctalia";}
20 {
21 layer-rule = {
22 match._props = {namespace = "^noctalia-backdrop";};
23 place-within-backdrop = true;
24 };
25 }
26 {
27 layer-rule = {
28 match._props = {namespace = "^noctalia-(bar-[^\"]+|notification|dock|panel|attached-panel|osd)$";};
29 background-effect = {
30 xray = false;
31 };
32 };
33 }
34 {
35 window-rule = {
36 match._props = {app-id = "dev.noctalia.Noctalia.Settings";};
37 open-floating = true;
38 default-column-width = {fixed = 1080;};
39 default-window-height = {fixed = 920;};
40 background-effect = {
41 xray = false;
42 };
43 };
44 }
45 ];
46 binds = {
47 "Mod+Space" = {
48 _props.hotkey-overlay-title = "Toggle Application Launcher";
49 spawn-sh = "noctalia msg panel-toggle launcher";
50 };
51 "Mod+X" = {
52 _props.hotkey-overlay-title = "Toggle Noctalia Control Center";
53 spawn-sh = "noctalia msg panel-toggle control-center";
54 };
55 "Mod+V" = {
56 _props.hotkey-overlay-title = "Toggle Clipboard History";
57 spawn-sh = "noctalia msg panel-toggle clipboard";
58 };
59 "Mod+Alt+L" = {
60 _props.hotkey-overlay-title = "Lock Screen";
61 spawn-sh = "noctalia msg session lock";
62 };
63
64 XF86AudioRaiseVolume.spawn-sh = "noctalia msg volume-up";
65 XF86AudioLowerVolume.spawn-sh = "noctalia msg volume-down";
66 XF86AudioMute.spawn-sh = "noctalia msg volume-mute";
67 XF86MonBrightnessUp.spawn-sh = "noctalia msg brightness-up";
68 XF86MonBrightnessDown.spawn-sh = "noctalia msg brightness-down";
69 };
70 };
71 };
72 };
73 };
74 };
75}