# # wm independent hotkeys # # terminal emulator super + ctrl + Return urxvt # scratchpad super + grave xdotool search --onlyvisible --class scratchpad windowunmap \ || xdotool search --class scratchpad windowmap \ || termite --class=scratchpad # program launcher super + space rofi -show run # switch to desktop super + shift + space rofi_bspwm.sh # password manager super + alt + space rofi_pass.sh # make sxhkd reload its configuration files: super + Escape pkill -USR1 -x sxhkd # # bspwm hotkeys # # quit bspwm normally super + alt + Escape bspc quit # close and kill super + {_,shift + }q bspc node -{c,k} # if the current node is automatic, send it to the last manual, otherwise pull the last leaf super + 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 super + g bspc node -s biggest # # state/flags # super + {f,shift + f} bspc {desktop -l next,node -t \~floating} # set the node flags super + ctrl + {x,y,z} bspc node -g {locked,sticky,private} # # focus/swap # # focus/swap the node in the given direction super + {_,shift + }{h,j,k,l} bspc node -{f,s} {west,south,north,east} # focus the node for the given path jump super + {p,b,comma,period} bspc node -f @{parent,brother,first,second} # focus the next/previous node super + {_,shift + }c bspc node -f {next,prev} # focus the next/previous desktop super + bracket{left,right} bspc desktop -f {prev,next} # focus the last node/desktop / rotate / balance / equalize super + {_,shift +,ctrl +,alt +} Tab bspc node {-f last,@/ {-R 90,-B,-E}} # focus the older or newer node in the focus history super + {o,i} bspc wm -h off; \ bspc node {older,newer} -f; \ bspc wm -h on # focus or send to the given desktop super + {_,shift + }{1-9,0} bspc {desktop -f,node -d} '^{1-9,10}' # # preselect # # preselect the direction super + ctrl + {h,j,k,l} bspc node -p {west,south,north,east} # preselect the ratio super + ctrl + {1-9} bspc node -o 0.{1-9} # cancel the preselection for the focused node super + ctrl + space bspc node -p cancel # cancel the preselection for the focused desktop super + ctrl + shift + space bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel # # resize tiled/floating # # Rebalance windows # super + plus # bspc node @focused:/ -B # expand the tiled space in the given direction super + alt + {h,j,k,l} bspc node {@west -r -10,@south -r +10,@north -r -10,@east -r +10} # contract the tiled space in the given direction super + alt + shift + {h,j,k,l} bspc node {@east -r -10,@north -r +10,@south -r -10,@west -r +10} # move a floating window super + {Left,Down,Up,Right} xdo move {-x -20,-y +20,-y -20,-x +20} # # pointer focus/move/resize # # focus ~button1 bspc pointer -g focus # start move/resize super + button{1-3} bspc pointer -g {move,resize_side,resize_corner} # end move/resize super + @button{1-3} bspc pointer -u # # Volume # super + shift + {Down,Up} volume.sh {-,+} super + ctrl + shift + {Down,Up} volume.sh {mute,unmute}