# vim:ft=bash

## GENERAL HOTKEYS
alt + Return
	$TERMINAL
alt + space
	rofi -show drun
alt + backslash
	rofi -show ssh
alt + Tab
	rofi -show window
alt + Escape
	pkill -USR1 -x sxhkd
ctrl + alt + l
	/usr/lib/x86_64-linux-gnu/libexec/kscreenlocker_greet

## APPLICATION TOGGLES
alt + p
	killall pavucontrol-qt || pavucontrol-qt
alt + shift + m
	killall compton || ~/.firestarter/firestarter start compositor

## HARDWARE CONTROLS
XF86Audio{Raise,Lower}Volume
	pactl set-sink-volume 0 {+,-}5%
XF86AudioMute
	pactl set-sink-mute 0 toggle
XF86MonBrightness{Up,Down}
	xbacklight {-inc,-dec} 5

## BSPWM
# Reload configs
alt + shift + r
	~/.config/bspwm/bspwmrc
# Close or kill node
alt + {_,shift + }q
	bspc node -{c,k}
# Focus or move the node in the given direction
alt + {_,shift + }{h,j,k,l}
	bspc node -{f,s} {west,south,north,east}
# Focus or send to the given desktop
alt + {_,shift + }{1-9,0}
	bspc {desktop -f,node -d} '{1-9,10}'
# Toggle monocle mode
alt + m
	bspc desktop -l next
# Switch current node with biggest on current desktop
alt + g
	bspc node -s biggest.local --follow
# Focus the node for the given path jump
alt + {a,c}
	bspc node -f {@parent,biggest.descendant_of}
# Rotate, equalize, or balance selection
alt + {r,e,u}
	bspc node -{R 90,E,B @/}
# Set window states
alt + {t,shift + t,f,shift + f}
	bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
# Set node flags
alt + ctrl + {x,y,z}
	bspc node -g {locked,sticky,private}
# 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 + {comma,period}
	bspc desktop -f {prev,next}.local
# 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}

