super + alt + Escape
	bspc quit

super + {_,shift + }q
	bspc node -{c,k}

super + t
	bspc desktop -l next

super + apostrophe
	bspc window -s last

# Attach to a detached session. If none is available create a new one, rather
# than attach to one that is already attached to elsewhere.
super + Return
	$TERMINAL -e bash -c "(tmux ls | grep -qEv 'attached|scratch' && tmux at) || tmux"

ctrl + super + Return
	$TERMINAL

super + grave
	scratch

# Open a disposable scratch buffer in a floating Emacs window, to run arbitrary
# code or quickly note something down.
super + shift + grave
	emacsclient --eval "(open-scratch-frame)"

# Invoke emacs-everywhere at point.
super + e
    emacsclient --eval "(emacs-everywhere)"

super + space
	$DOTFILES_BIN/rofi/appmenu

super + Tab
	$DOTFILES_BIN/rofi/windowmenu

super + p
	$DOTFILES_BIN/rofi/bwmenu

super + shift + p
	$DOTFILES_BIN/rofi/bwmenu -r

super + slash
	$DOTFILES_BIN/rofi/filemenu -x

super + Escape
	pkill -USR1 -x sxhkd

{Prior,Next}
	:


#
##

## Toggle floating/fullscreen
super + {_,ctrl + }f
	bspc node -t ~{floating,fullscreen}


super + {_,ctrl +}{h,j,k,l}
	$DOTFILES_BIN/bspwm/focus {_,-m }{west,south,north,east}

super + shift + {_,ctrl +}{h,j,k,l}
	$DOTFILES_BIN/bspwm/swap {_,-m }{west,south,north,east}

## Resize by preselection
super + alt + {1-9}
	$DOTFILES/bin/bspwm/presel 0.{1-9}

super + alt + {h,j,k,l}
	bspc node -p {west,south,north,east}

super + alt + Return
	$DOTFILES/bin/bspwm/subtract-presel

super + alt + Delete
	bspc node -p cancel

super + {_,shift +}{1-9,0}
	bspc {desktop -f,node -d} {1-9,10};

# expand a window by moving one of its side outward
super + {Left,Down,Up,Right}
	bspc node -z {left -40 0,bottom 0 40,top 0 -40,right 40 0}

# contract a window by moving one of its side inward
super + ctrl + {Left,Down,Up,Right}
	bspc node -z {right -40 0,top 0 40,bottom 0 -40,left 40 0}

# move a floating window
super + shift + {Left,Down,Up,Right}
	bspc node -v {-40 0,0 40,0 -40,40 0}


#
## Media keys

# screenshot region
Print
	scrcap
# screencast region to mp4
super + Print
	scrrec -s ~/recordings/$(date +%F-%T).mp4
# screencast region to gif
super + ctrl + Print
	scrrec -s ~/recordings/$(date +%F-%T).gif

XF86MonBrightnessUp
	light -A 5
XF86MonBrightnessDown
	light -U 5

XF86AudioMute
	pamixer --toggle-mute
XF86AudioLowerVolume
    pamixer -d 10
XF86AudioRaiseVolume
    pamixer -i 10


#
## Edmund Specific

XF86Audio{Play,Pause}
	mpc -q toggle
XF86Audio{Prev,Next}
	mpc -q {prev,next}

super + w
  $BROWSER

super + e
	zsh -c emacs

super + shift + a
	autorandr -c
