aboutsummaryrefslogtreecommitdiffstats
path: root/modules/desktop/sxhkd/default.nix
blob: 98338c26be03451cf8976ad03205a4f8f6918dbd (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")
		];
	};
}