# BSPWM
# Uses modifier key ALT

# Desktop
# View desktop
alt + {1-9,0}
	bspc desktop -f {6-9,10,1-5}

# Move node to desktop
alt + shift + {1-9,0}
	bspc node -d {6-9,10,1-5}


# WM
# quit/restart bspwm
alt + shift + {e,r}
	bspc {quit,wm -r}

# close/kill node
alt + {_,shift + }q
  bspc node -{c,k}

# make sxhkd reload its configuration files:
alt + shift + c
	pkill -USR1 -x sxhkd && dunstify 'sxhkd' 'Reloaded config!' 


# State and Flags
# set the window state
alt + {t,shift + t,s,f}
	bspc node -t {tiled,pseudo_tiled,floating,fullscreen}

# set the node flags
alt + ctrl + {m,l,s,p,}
	bspc node -g {marked,locked,sticky,private}


# Focus/Swap Nodes
# focus the node in the given direction
alt + {_,shift + }{h,j,k,l}
	bspc node -{f,s} {west,south,north,east}

# Rotate tree
alt + shift + {d,a}
    bspc node @/ -C {forward,backward}


# Resize Node
# expand a window by moving one of its side outward
alt + ctrl + {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
alt + shift + ctrl + {h,j,k,l}
	bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}


# XF86 Keys
XF86AudioRaiseVolume 
	pamixer -i 5
XF86AudioLowerVolume 
	pamixer -d 5
XF86AudioMute
	pamixer -t

XF86AudioPlay
	[ $(playerctl -p "spotifyd,firefox" status) = "Playing" ] && playerctl -p "spotifyd,firefox" pause || playerctl -p "spotifyd,firefox" play
XF86AudioNext
	playerctl -p "spotifyd,firefox" next
XF86AudioPrev
	playerctl -p "spotifyd,firefox" previous

XF86MonBrightnessDown
	brightnessctl s 10%-
XF86MonBrightnessUp
	brightnessctl s +10%


# Programs
# Uses modifier key SUPER

# Rofi
# start rofi
super + d
	rofi -show combi

# start Networkmanager rofi
super + w
	networkmanager_dmenu

# start rofi-calc
super + c
	rofi -show calc -modi calc -no-show-match -no-sort | xclip -selection clipboard

# Show help
super + h
	sxhkd-help

# Apps
# start firefox
super + {_,shift} +f
	firefox {_,--private-window}

# terminal emulator
super + Return
	kitty


# Emacs
# start emacs
super  + e
	emacsclient -c -a emacs
# emacs everywhere
super + shift + e
	bspc rule -a 'Emacs' -o state=floating sticky=on; \
	emacsclient --eval "(emacs-everywhere)"