diff --git a/.config/sxhkd/sxhkdrc-obsd b/.config/sxhkd/sxhkdrc-obsd new file mode 100755 index 00000000..b84bd555 --- /dev/null +++ b/.config/sxhkd/sxhkdrc-obsd @@ -0,0 +1,153 @@ +#!/bin/bash + +#################### +# GENERAL HOTKEYS +#################### + +# Execute terminal +alt + Return + xfce4-terminal + +# Program launcher +alt + space + rofi -show + +# SSH browser +alt + backslash + rofi -show ssh + +# Program switcher +alt + Tab + rofi -show window + +# Reload SXHKD +alt + Escape + pkill -USR1 -x sxhkd + +# tubetop Controls +alt + p + ~/.local/bin/tubetop +alt + shift + p + pkill xwinwrap + +# Conky toggling +alt + c + pgrep conky && killall conky || conky& + +# Pulse controls +XF86Audio{Raise,Lower}Volume + pactl set-sink-volume 0 {+,-}5% +XF86AudioMute + pactl set-sink-mute 0 toggle + +# Brightness controls +XF86MonBrightness(Up,Down) + xbacklight (-inc,-dec) 5 + +#################### +# BSPWM HOTKEYS +#################### + +# Reload configuration +alt + shift + r + ~/.config/bspwm/bspwmrc + +# close and kill +alt + {_,shift + }q + bspc node -{c,k} + +# alternate between the tiled and monocle layout +alt + m + bspc desktop -l next + +# if the current node is automatic, send it to the last manual, otherwise pull the last leaf +alt + y + bspc query -N -n focused.automatic && bspc node -n last.!automatic || bspc node last.leaf -n focused + +# swap the current node and the biggest node +alt + g + bspc node -s biggest + +# +# state/flags +# + +# set the window state +alt + {t,shift + t,f,shift + f} + bspc node -t {tiled,pseudo_tiled,floating,fullscreen} + +# set the node flags +alt + ctrl + {x,y,z} + bspc node -g {locked,sticky,private} + +# +# focus/swap +# + +# focus the node in the given direction +alt + {_,shift + }{h,j,k,l} + bspc node -{f,s} {west,south,north,east} +alt + {_,shift + }{Left,Down,Up,Right} + bspc node -{f,s} {west,south,north,east} + +# focus the node for the given path jump +alt + {a,b,comma,period} + bspc node -f @{parent,brother,first,second} + +# focus the next/previous node in the current desktop +alt + {_,shift + }c + bspc node -f {next,prev}.local + +# focus the next/previous desktop in the current monitor +alt + bracket{left,right} + bspc desktop -f {prev,next}.local + +# focus the last node/desktop +alt + {grave,Tab} + bspc {node,desktop} -f last + +# focus the older or newer node in the focus history +alt + {o,i} + bspc wm -h off; \ + bspc node {older,newer} -f; \ + bspc wm -h on + +# focus or send to the given desktop +alt + {_,shift + }{1-9,0} + bspc {desktop -f,node -d} '{1-9,10}' + +# +# preselect +# + +# preselect the direction +super + {h,j,k,l} + bspc node -p {west,south,north,east} + +# preselect the ratio +super + {1-9} + bspc node -o 0.{1-9} + +# cancel the preselection for the focused node +super + space + bspc node -p cancel + +# cancel the preselection for the focused desktop +ctrl + alt + space + bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel + +# +# move/resize +# + +# expand a window by moving one of its side outward +super + alt + {h,j,k,l} + bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} + +# contract a window by moving one of its side inward +super + alt + shift + {h,j,k,l} + bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} + +# move a floating window +alt + {Left,Down,Up,Right} + bspc node -v {-20 0,0 20,0 -20,20 0}