# sxhkdrc for use with dk
#########################################################

# launcher
mod4 + p
	dmenu_run -fn 'Fira Code Nerd Font Ret:size=13'

# terminal
mod4 + shift + Return
	st

mod4 + ctrl + shift + Return
	st-abduco-tabbed

# screenshot and selection capture
{_,mod4 + }@Print
	scrot {_,-s}

# dedicated volume keys
{XF86AudioRaiseVolume,XF86AudioLowerVolume}
	pamixer {-i,-d} 2

# dedicated backlight keys
{XF86MonBrightnessUp,XF86MonBrightnessDown}
	xbacklight {+10,-10}

# alt volume keys
mod4 + {Insert,Delete}
	pamixer {-i,-d} 2

# reload sxhkd
mod4 + shift + x
	pkill -USR1 -x sxhkd



# quit dk
mod4 + shift + q
	dkcmd exit

# reload dkrc
mod4 + shift + r
	$HOME/.config/dk/dkrc

# restart dk
mod4 + ctrl + shift + r
	dkcmd restart

# focus next or previous window
mod4 + {j,k}
	dkcmd win focus {next,prev}

# close window, swap tiled window in/out of master, cycle tiled windows in place
mod4 + {q,space,Tab}
	dkcmd win {kill,swap,cycle}

# toggle fullscreen and fake fullscreen (enable manipulating fullscreen window)
{_,mod4 + }F11
	dkcmd win {full,fakefull}

# toggle floating, sticky, or scratchpad
mod4 + shift + {space,s,u}
	dkcmd win {float,stick,scratch}
	# alternatively to scratch a window by class "scratchpad"
	#dkcmd win {float,stick,scratchpad scratch}

# move window, signed (+/-) for relative changes, for tiled windows
# y coord changes will move the window up/down the stack
mod4 + shift + {h,j,k,l}
	dkcmd win resize {x=-20,y=+20,y=-20,x=+20}

# resize window, signed (+/-) for relative changes
mod4 + ctrl + {h,j,k,l}
	dkcmd win resize {w=-20,h=+20,h=-20,w=+20}

# view, send, or follow to a workspace (by number)
mod4 + {_,shift + ,ctrl + }{1-9,0}
	dkcmd ws {view,send,follow} {1-9,10}

# view, send, or follow to the next, previous, last active,
# next non-empty, or prev non-empty workspace
mod4 + {_,shift + ,ctrl + }{bracketleft,bracketright,BackSpace,Left,Right}
	dkcmd ws {view,send,follow} {prev,next,last,prevne,nextne}

# view, send, or follow to the next, previous, or last active monitor
mod4 + {_,shift + ,ctrl + }{comma,period,backslash}
	dkcmd mon {view,send,follow} {prev,next,last}

# change active workspace layout or cycle between them
mod4 + {t,r,m,g,s,w,f,u,c}
	dkcmd set layout {tile,rtile,mono,grid,spiral,dwindle,none,tstack,cycle}

# change number of windows in master or first stack
mod4 + {_,shift + }{i,d}
	dkcmd set {master,stack} {+1,-1}

# change gap width
mod4 + {equal,minus}
	dkcmd set gap {+5,-5}

# change border widths
mod4 + ctrl + {_,shift + }{equal,minus}
	dkcmd set border {width,outer_width} {+1,-1}

# lock screen
mod4 + ctrl + shift + l
	slock

# suspend
mod4 + ctrl + shift + s
	systemctl suspend

# toggle light/dark theme
mod4 + F6
	lupan-set-theme toggle

# vim:ft=sxhkdrc
