aboutsummaryrefslogtreecommitdiffstats
path: root/modules/desktop/sxhkd/default.nix
blob: 19bc540e452c9f246dcd1122b0de2bdca1498ed1 (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
40
41
42
{ 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")
    ];
  };
}