diff options
| author | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2024-09-18 22:52:13 +0530 |
|---|---|---|
| committer | Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> | 2024-09-18 22:52:13 +0530 |
| commit | 26428de7b5bdd2480a1c225df6a5429b27214ed0 (patch) | |
| tree | 851a2e5f49faa706c95891c1589979b0b509e879 /sxhkd | |
| parent | aba78f26619e30bdb3634104a4bbe60b18bf541a (diff) | |
| download | home-manager-config-26428de7b5bdd2480a1c225df6a5429b27214ed0.tar.gz home-manager-config-26428de7b5bdd2480a1c225df6a5429b27214ed0.zip | |
Add descriptions to sxhkd keybindings and a rofi keybindings help popup.
Diffstat (limited to 'sxhkd')
| -rw-r--r-- | sxhkd/default.nix | 72 |
1 files changed, 51 insertions, 21 deletions
diff --git a/sxhkd/default.nix b/sxhkd/default.nix index 8a987b1..cdb012a 100644 --- a/sxhkd/default.nix +++ b/sxhkd/default.nix @@ -3,37 +3,67 @@ { services.sxhkd.enable = true; - services.sxhkd.keybindings = { - "super + r" = "rofi -show run"; - "super + t" = "alacritty"; - "super + f" = "alacritty -t 'File Explorer' --class 'File Explorer' -e lf"; - "super + q" = "bspc node -c"; + services.sxhkd.keybindings = + let + withDescription = keybinding: description: "# ${description}\n${keybinding}"; + in { + ${(withDescription + "super + h" + "Show keybindings.")} = ''awk '/^#/{desc=substr($0, 3)} /^[a-z]/ { cmd=$0; print cmd " : " desc }' ~/.config/sxhkd/sxhkdrc | rofi -dmenu -i -p "Keybindings"''; + + ${(withDescription + "super + r" + "Launch rofi.")} = "rofi -show run"; + + ${(withDescription + "super + t" + "Launch terminal.")} = "alacritty"; + + ${(withDescription + "super + f" + "Launch File Explorer.")} = "alacritty -t 'File Explorer' --class 'File Explorer' -e lf"; + + ${(withDescription + "super + q" + "Kill current window.")} = "bspc node -c"; # switch desktops - "super + {1-9,0}" = "bspc desktop -f {1-9,10}"; + ${(withDescription + "super + {1-9,0}" + "Switch workspace.")} = "bspc desktop -f {1-9,10}"; # move window to desktop - "super + shift + {1-9,0}" = "bspc node -d {1-9,10} --follow"; + ${(withDescription + "super + shift + {1-9,0}" + "Move window to workspace.")} = "bspc node -d {1-9,10} --follow"; # tiled - "super + n" = "bspc node focused -t tiled"; + ${(withDescription + "super + n" + "Set current window to tiled mode.")} = "bspc node focused -t tiled"; # floating - "super + d" = "bspc node focused -t floating"; + ${(withDescription + "super + d" + "Set current window to floating mode.")} = "bspc node focused -t floating"; # fullscreen - "super + m" = "bspc node focused -t fullscreen"; - - # resize windows - "super + alt + {h,j,k,l}" = '' - {bspc node @parent/second -z left -20 0; \ - bspc node @parent/first -z right -20 0, \ - bspc node @parent/second -z top 0 +20; \ - bspc node @parent/first -z bottom 0 +20, \ - bspc node @parent/first -z bottom 0 -20; \ - bspc node @parent/second -z top 0 -20, \ - bspc node @parent/first -z right +20 0; \ - bspc node @parent/second -z left +20 0} + ${(withDescription + "super + m" + "Set current window to full screen mode.")} = "bspc node focused -t fullscreen"; + + # resize windows (the indentation for each line is required to work with the help prompt) + ${(withDescription + "super + alt + {h,j,k,l}" + "Resize current window.")} = '' + {bspc node @parent/second -z left -20 0; \ + bspc node @parent/first -z right -20 0, \ + bspc node @parent/second -z top 0 +20; \ + bspc node @parent/first -z bottom 0 +20, \ + bspc node @parent/first -z bottom 0 -20; \ + bspc node @parent/second -z top 0 -20, \ + bspc node @parent/first -z right +20 0; \ + bspc node @parent/second -z left +20 0} ''; }; } |
