aboutsummaryrefslogtreecommitdiffstats
path: root/modules/desktop/sxhkd/default.nix
blob: fe8acbbad5c44b3cdedc598c7e300f2dd688ddb7 (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
{
  pkgs,
  config,
  lib,
  ...
}:

{
  config = lib.mkIf config.desktop.enable {
    services.sxhkd.enable = true;
    services.sxhkd.keybindings =
      let
        modKey = "super";
        createKeybinding = keybinding: createKeybindingBase "${modKey} + ${keybinding}";
        createKeybindingBase = keybinding: description: command: {
          "# ${description}\n${keybinding}" = command;
        };
      in
      lib.mkMerge [
        (import ./keybindings/brightnessctl.nix { inherit pkgs createKeybindingBase lib; })
        (import ./keybindings/bspwm.nix { inherit pkgs createKeybinding lib; })
        (import ./keybindings/maim.nix { inherit pkgs createKeybinding lib; })
        (import ./keybindings/pamixer.nix { inherit pkgs createKeybindingBase lib; })
        (import ./keybindings/playerctl.nix { inherit pkgs createKeybindingBase lib; })

        (createKeybinding "s" "Show keybindings."
          "kitty --title 'Keybindings' --class floating-termial -e ${pkgs.writeShellScript "keybindings.sh" (builtins.readFile ./scripts/keybindings.sh)}"
        )

        (createKeybinding "r" "Application launcher." "rofi -show drun")

        (createKeybinding "t" "Launch terminal." "kitty")

        (createKeybinding "f" "Launch File Manager."
          "kitty --title 'File Manager' --class floating-termial -e nnn"
        )
      ];
  };
}