aboutsummaryrefslogtreecommitdiffstats
path: root/modules/desktop/sxhkd/keybindings
diff options
context:
space:
mode:
authorArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2025-11-28 00:01:27 +0530
committerArpit Chakladar <54011232+arpitchakladar@users.noreply.github.com>2025-11-28 00:01:27 +0530
commit170461002890d55718618bec64feaa8856c3a6d4 (patch)
tree39828106660958fc9de2c8c8d1fc972c8e2320cb /modules/desktop/sxhkd/keybindings
parent547bf872cbf85f4718576e1ac3a0eab094ccd26a (diff)
downloadhome-manager-config-170461002890d55718618bec64feaa8856c3a6d4.tar.gz
home-manager-config-170461002890d55718618bec64feaa8856c3a6d4.zip
Organised the configuration to allow for different options for different users.
Diffstat (limited to 'modules/desktop/sxhkd/keybindings')
-rw-r--r--modules/desktop/sxhkd/keybindings/brightnessctl.nix15
-rw-r--r--modules/desktop/sxhkd/keybindings/bspwm.nix45
-rw-r--r--modules/desktop/sxhkd/keybindings/pamixer.nix20
-rw-r--r--modules/desktop/sxhkd/keybindings/playerctl.nix10
4 files changed, 90 insertions, 0 deletions
diff --git a/modules/desktop/sxhkd/keybindings/brightnessctl.nix b/modules/desktop/sxhkd/keybindings/brightnessctl.nix
new file mode 100644
index 0000000..acb4ea2
--- /dev/null
+++ b/modules/desktop/sxhkd/keybindings/brightnessctl.nix
@@ -0,0 +1,15 @@
+{ createKeybindingBase, pkgs, lib }:
+
+let
+ brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
+in lib.mkMerge [
+ (createKeybindingBase
+ "XF86MonBrightnessDown"
+ "Decrease brightness."
+ "${brightnessctl} set 5%-")
+
+ (createKeybindingBase
+ "XF86MonBrightnessUp"
+ "Increase brightness."
+ "${brightnessctl} set +5%")
+]
diff --git a/modules/desktop/sxhkd/keybindings/bspwm.nix b/modules/desktop/sxhkd/keybindings/bspwm.nix
new file mode 100644
index 0000000..ed62ed4
--- /dev/null
+++ b/modules/desktop/sxhkd/keybindings/bspwm.nix
@@ -0,0 +1,45 @@
+{ createKeybinding, pkgs, lib }:
+
+let
+ bspc = "${pkgs.bspwm}/bin/bspc";
+in lib.mkMerge [
+ (createKeybinding
+ "q"
+ "Kill current window."
+ "${bspc} node -c")
+
+ (createKeybinding
+ "{1-9,0}"
+ "Switch workspace."
+ "${bspc} desktop -f {1-9,10}")
+
+ (createKeybinding
+ "shift + {1-9,0}"
+ "Move window to workspace."
+ "${bspc} node -d {1-9,10} --follow")
+
+ (createKeybinding
+ "{n,d,m}"
+ "Set current window mode (tiled, floating, fullscreen)."
+ "${bspc} node focused -t {tiled,floating,fullscreen}")
+
+ (createKeybinding
+ "{_,shift + }{h,j,k,l}"
+ "Navigate between windows."
+ "${bspc} node --{focus,swap} {west,south,north,east}")
+
+ # the indentation for each line is required to work with the help prompt
+ (createKeybinding
+ "ctrl + {h,j,k,l}"
+ "Resize current window."
+ ''
+ ${bspc} node {@parent/second -z left -20 0; \
+ @parent/first -z right -20 0, \
+ @parent/second -z top 0 +20; \
+ @parent/first -z bottom 0 +20, \
+ @parent/first -z bottom 0 -20; \
+ @parent/second -z top 0 -20, \
+ @parent/first -z right +20 0; \
+ @parent/second -z left +20 0}
+'')
+]
diff --git a/modules/desktop/sxhkd/keybindings/pamixer.nix b/modules/desktop/sxhkd/keybindings/pamixer.nix
new file mode 100644
index 0000000..3543d8f
--- /dev/null
+++ b/modules/desktop/sxhkd/keybindings/pamixer.nix
@@ -0,0 +1,20 @@
+{ createKeybindingBase, pkgs, lib }:
+
+let
+ pamixer = "${pkgs.pamixer}/bin/pamixer";
+in lib.mkMerge [
+ (createKeybindingBase
+ "XF86AudioLowerVolume"
+ "Decrease volume."
+ "${pamixer} --decrease 5")
+
+ (createKeybindingBase
+ "XF86AudioRaiseVolume"
+ "Increase volume."
+ "${pamixer} --increase 5")
+
+ (createKeybindingBase
+ "XF86AudioMute"
+ "Mute audio."
+ "${pamixer} --toggle-mute")
+]
diff --git a/modules/desktop/sxhkd/keybindings/playerctl.nix b/modules/desktop/sxhkd/keybindings/playerctl.nix
new file mode 100644
index 0000000..3e5c4e0
--- /dev/null
+++ b/modules/desktop/sxhkd/keybindings/playerctl.nix
@@ -0,0 +1,10 @@
+{ createKeybindingBase, pkgs, lib }:
+
+let
+ playerctl = "${pkgs.playerctl}/bin/playerctl";
+in lib.mkMerge [
+ (createKeybindingBase
+ "XF86AudioPlay"
+ "Toggle video / audio player."
+ "${playerctl} play-pause")
+]