main
 1{lib, ...}: {
 2  flake.modules.homeManager.de-shell-noctalia = {
 3    config,
 4    osConfig,
 5    ...
 6  }:
 7    lib.mkIf osConfig.programs.niri.enable {
 8      programs.niri.extraKeybinds = let
 9        noctalia = ''spawn "noctalia-shell" "ipc" "call"'';
10      in ''
11        Mod+Shift+Slash hotkey-overlay-title="Toggle Hotkey Cheatsheet" {
12          ${noctalia} "plugin:keybind-cheatsheet" "toggle";
13        }
14        ${
15          if !(config.services.vicinae.enable or false)
16          then ''
17            Mod+Space hotkey-overlay-title="Toggle Application Launcher" {
18              ${noctalia} "launcher" "toggle";
19            }
20            Mod+V hotkey-overlay-title="Open Clipboard History" {
21              ${noctalia} "launcher" "clipboard";
22            }
23          ''
24          else ""
25        }
26        Super+Alt+L hotkey-overlay-title="Toggle Lock Screen" {
27          ${noctalia} "lockScreen" "lock";
28        }
29        Mod+X hotkey-overlay-title="Toggle Control Center" {
30          ${noctalia} "controlCenter" "toggle";
31        }
32
33        XF86AudioRaiseVolume allow-when-locked=true {
34          ${noctalia} "volume" "increase";
35        }
36        XF86AudioLowerVolume allow-when-locked=true {
37          ${noctalia} "volume" "decrease";
38        }
39        XF86AudioMute allow-when-locked=true {
40          ${noctalia} "volume" "muteOutput";
41        }
42        XF86AudioMicMute allow-when-locked=true {
43          ${noctalia} "volume" "muteInput";
44        }
45
46        XF86MonBrightnessUp allow-when-locked=true {
47          ${noctalia} "brightness" "increase";
48        }
49        XF86MonBrightnessDown allow-when-locked=true {
50          ${noctalia} "brightness" "decrease";
51        }
52      '';
53    };
54}