| 
						 | 
						#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# sxhkdrc#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Hotkey bindings for bspwm window management and other miscillaneous functions.# Reload configureation settings with <Alt> + <Escape>.# Get names from output of `xev` and key/mouse event.#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Reload Settings#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# make sxhkd reload its configuration files:alt + Escape	pkill -USR1 -x sxhkd
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Closing Things#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# exit bspwmsuper + alt + Escape	xlogout#	pkill -x panel; bspc quit
# close the current windowalt + w	bspc node --close
# kill the current windowalt + ctrl + shift + w	bspc node --kill
# toggle panelalt + super + p	pgrep -x bspwm-panel > /dev/null && running=yes || running=no; \	if [[ "$running" == yes ]]; then; \		pkill -x panel; bspc config top_padding 0; \	elif [[ "$running" == no ]]; then; \		bspwm-panel &; \	fi
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Window Management#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# focus/swap window in <direction>alt + {_,shift +} {h,j,k,l}	bspc node --{focus,swap} {west,south,north,east}
# preselect window split in <direction>alt + ctrl + {h,j,k,l}	bspc node --presel-dir \~{west,south,north,east}
# push window edge in <direction>alt + super + {h,j,k,l}	bspc node --resize {left -10 0,bottom 0 10,top 0 -10,right 10 0}
# pull window edge in <direction>alt + super + shift + {h,j,k,l}	bspc node --resize {right -10 0,top 0 10,bottom 0 -10,left 10 0}
# move floating windowalt + super + {Left,Down,Up,Right}	bpsc node --move {-10 0,0 10,0 -10,10 0}
# set split of parent nodealt + {1-9}	bspc node @parent --ratio 0.{1-9}
# send window to prev/next monitor/desktopalt + {_,ctrl +} shift + bracket{left,right}	type={monitor,desktop}; \	direction={prev,next}; \	bspc node --to-$type $direction; \	bspc $type --focus $direction
# toggle window floating/fullscreen/pseudo-tiledalt + {s,f,t}	bspc node --state \~{floating,fullscreen,pseudo_tiled}
# force tiled windowalt + shift + t	bspc node --state tiled
# select window backward/forward in history, preserving orderalt + {o,i}	bspc wm --record-history off; \	bspc node --focus {older,newer}; \	bspc wm --record-history on
# select window backward/forward in historyalt + {_,shift} + Tab	bspc node --focus {prev.local,next.local}
# swap window with last focused windowalt + apostrophe	bspc node --swap last
# send window to preselectionalt + Return	bspc node --to-node last.\!automatic --follow
# select splitting ratio of windowalt + ctrl + {1-9}	bspc node --presel-ratio 0.{1-9}
# focus clockwise/counterclockwise windowalt + {_,shift + }c	bspc node --focus {next,prev}
# swap with biggest windowalt + shift + b	bspc node --swap biggest
# insert receptaclealt + r	bspc node --insert-receptacle
# clear receptacles on current desktopalt + shift + r	for win in `bspc query -N -n .leaf.\!window.local`; do bspc node $win --kill; done
# send window to receptacle on current desktopalt + super + Return	bspc node --to-node `bspc query -N -n .leaf.\!window.local` --follow
# move node to adjacent receptacle (this doesn't seem to work...)alt + ctrl + super + {h,j,k,l}	bspc node --to-node `bspc query -N -n {west,south,north,east}`
# move node to receptacle on previous/next monitor/desktopalt + {_,shift +} super + bracket{left,right}	type={monitor,desktop}; \	direction={prev,next}; \	bspc node --to-node `bspc query -N --$type $direction -n .leaf.\!window` --follow
# make fullscreen across all monitorssuper + alt + f	bspc node --state \~floating; xdotool getactivewindow windowsize 5920 1080 windowmove 0 0	#bspc node -t --state \~floating; bspc config -w focused border_width 0; xdotool getactivewindow windowsize 5920 1080 windowmove 0 0
# move a floating windowsuper + {Left,Down,Up,Right}	bspc node -v {-10 0,0 10,0 -10,10 0}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Desktop Management#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# focus prev/next desktopalt + ctrl + bracket{left,right}	bspc desktop --focus {prev,next}.local
# focus prev/next desktop, all monitorsalt + ctrl + {Left,Right}	for i in \{1..3\}; do \		direction={prev,next}; \		bspc desktop --focus $direction; \		bspc monitor --focus $direction; \	done
# flip the tree horizonally/verticallyalt + {_,super +} {_,shift +} slash	bspc node @{/,parent} --flip {vertical,horizontal}
# select nodes (new shortcuts needed)alt + {p,b,comma,period}	bspc node --focus @{parent,brother,first,second}
# circulate window leaves through treealt + {period,comma}	bspc node @parent --circulate {backward,forward}
# rotate treealt + shift + {period,comma}	bspc node @parent --rotate {90,270}
# increase/decrease window gap sizealt + {minus,equal}	bspc config -d focused window_gap $((`bspc config -d focused window_gap` {+,-} 6 ))
# window gap to zeroalt + super + 0	bspc config -d focused window_gap 0
# toggle tiled/monacle layoutalt + m	bspc desktop -l next
# balance windows to occupy equivalent areaalt + b	bspc node -B
# reset windows rooted at node to original split ratioalt + e	bspc node --equalize
# focus/send window to desktop#alt + {_,shift + }{1-9,0}#	bspc {desktop -f,window -d} $(bspc query -M -m)/{i,ii,iii,iv,v,vi,vii,viii,ix,x}
# select previous desktopalt + grave	bspc desktop --focus last
# toggle the private flag to keep a node where it is (?)#alt + ctrl + p#	bspc node --flag private
# toggle visibility of all windows on current desktop of current monitoralt + shift + v	bspc node @/ --flag hidden
# toggle visibility of all windows on current desktop of all monitorsalt + v	for i in \{1..3\}; do \		bspc monitor --focus next; \		bspc node @/ --flag hidden; \	done
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# Monitor Management#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# focus monitor to the left/rightalt + bracket{left,right}	bspc monitor --focus {prev,next}
# swap monitorsalt + ctrl + super + bracket{left,right}	direction={prev,next}; \	bspc desktop --to-monitor $direction; \	bspc monitor --focus $direction; \	bspc desktop --to-monitor last; \	bspc desktop --focus last
# add merged virtual monitoralt + ctrl + super + m	bspc wm -a merge 5920x1080+0+0
alt + ctrl + super + shift + m	bspc monitor merge -r
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# mouse actions#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# close window under pointer (Logitech MX Master)button10	bspc node pointed --close
# close window under pointer (Logitech MX Master 2S)ctrl + alt + Tab	bspc node pointed --close
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# wm independent hotkeys#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# open a terminalalt + backslash	urxvt
# run dmenu launcheralt + space	dmenu_recent -x 400 -w 1120 -y 525 -h 25 -o 0.75 -dim 0.5 -s 0	#XDG_CURRENT_DESKTOP=KDE dmenu_recent -x 400 -w 1120 -y 525 -h 25 -o 0.75 -dim 0.5 -s 0
# volume controlsXF86AudioRaiseVolume	true	#amixer set Speaker 1%+
XF86AudioLowerVolume	true	#amixer set Speaker 1%-
XF86AudioMute	togglemute	#amixer set PCM toggle	#amixer set Speaker toggle
# take a screenshotPrint	scrot -e 'mv $f ~/Images/Screenshots/.'
shift + Print	scrot --focused -e 'mv $f ~/Images/Screenshots/.'
alt + Print	scrot --select -e 'mv $f ~/Images/Screenshots/.'
# refresh background imagesuper + b	feh --bg-center --no-xinerama ~/Images/DesktopImages/current
# run xbmcsuper + x	env SDL_VIDEO_FULLSCREEN_HEAD=1 kodi
# turn on tv and mirror central monitorsuper + {_, alt +} t	xrandr --output HDMI-0 {--auto --same-as DVI-D-0, --off}
# lock screenXF86Sleep	i3lock --ignore-empty-password --show-failed-attempts --image=/home/djsissom/Local/share/wallpaper/current.png
# lock screensuper + l	i3lock --ignore-empty-password --show-failed-attempts --image=/home/djsissom/Local/share/wallpaper/current.png	#i3lock --ignore-empty-password --tiling --image=/home/djsissom/Local/share/wallpaper/current.png	#i3lock --ignore-empty-password --dpms --inactivity-timeout 60 --tiling --image=/home/djsissom/Images/Desktop\ Images/current.png
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# End#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  |