# Basic binds super + Return st super + F1 brave super + F9 st -e vifmrun super + F3 st -e pulsemixer # st -e alsamixer super + F5 discord super + F2 st -e ncmpcpp-ueberzug super + F4 mumble super + F6 st -e neomutt #thunderbird super + F8 sct 2500 super + F7 passmenu super + shift + F7 otpmenu super + shift + F8 sct #super + shift + x XF86ScreenSaver i3lock -c 131313 # st -n unimatrix -c unimatrix -e unimatrix -g=black -c=white -a -s 92 & slock shift + Print import ~/pics/screenshots/$(date +%F_%H%M%S).png Print import -window root ~/pics/screenshots/$(date +%F_%H%M%S_%N).png super + Escape #XF86Launch1 st -e htop super + d /home/trollshotlol/Work/xmenu/xmenu.sh super + r dmenu_run -fn "JetBrains Mono:style=Regular:size=9" -i -l 10 super + n networkmanager_dmenu -fn "JetBrains Mono:style=Regular:size=9" -w 650 -x 365 -y 244 -p ">>" -l 15 XF86AudioRaiseVolume pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo +5% # amixer set Master 5%+ XF86AudioLowerVolume pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo -5% # amixer set Master 5%- shift + XF86AudioRaiseVolume mpc volume +2 shift + XF86AudioLowerVolume mpc volume -2 XF86AudioNext mpc next XF86AudioPrev mpc prev XF86AudioPlay mpc toggle XF86AudioMute # amixer set Master toggle pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo toggle XF86AudioMicMute # amixer set Master toggle pactl set-source-mute alsa_input.pci-0000_00_1b.0.analog-stereo toggle XF86Sleep light -S 0 XF86MonBrightnessUp light -A 5 XF86MonBrightnessDown light -U 5 super + c camtoggle ## ## bspwm hotkeys ## # ## quit/restart bspwm #super + shift + {e,r} # bspc {quit,wm -r} # ## close and kill #super + shift + q # bspc node -c # ## alternate between the tiled and monocle layout #super + w # bspc desktop -l next # ## send the newest marked node to the newest preselected node #super + y # bspc node newest.marked.local -n newest.!automatic.local # ## swap the current node and the biggest node #super + g # bspc node -s biggest # ## ## state/flags ## # ## set the window state #super + {e,t,shift + space,f} # bspc node -t {tiled,pseudo_tiled,floating,fullscreen} # ## set the node flags #super + ctrl + {m,x,y,z} # bspc node -g {marked,locked,sticky,private} # ## ## focus/swap ## # ## focus the node for the given path jump #super + {p,b,comma,period} # bspc node -f @{parent,brother,first,second} # ## focus the next/previous node in the current desktop #super + {_,shift + }{h,j,k,l} # LAYOUT=$(bspc query -T -d | jq -r .layout); \ # [[ "$LAYOUT" == "tiled" ]] && bspc node -{f,s} {west,south,north,east}.local; \ # [[ "$LAYOUT" == "monocle" ]] && bspc node -{f,s} {prev,next,prev,next}.local # ## focus the next/previous desktop in the current monitor #super + bracket{left,right} # bspc desktop -f {prev,next}.local # ## focus the last node/desktop #super + q # bspc desktop -f last # ## focus the older or newer node in the focus history #super + {o,i} # bspc wm -h off; \ # bspc node {older,newer} -f; \ # bspc wm -h on # ## focus or send to the given desktop #super + {_,shift + }{1-9,0} # bspc {desktop -f,node -d} '^{1-9,10}' # #super {_,shift +}Tab # bspc desktop -f {next,prev} # ## ## preselect ## # ## preselect the direction #super + ctrl + {h,j,k,l} # bspc node -p {west,south,north,east} # ## preselect the ratio #super + ctrl + {1-9} # bspc node -o 0.{1-9} # ## cancel the preselection for the focused node #super + ctrl + space # bspc node -p cancel # ## cancel the preselection for the focused desktop #super + ctrl + shift + space # bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel # ## ## move/resize ## # ## expand a window by moving one of its side outward #alt + {h,j,k,l} # bspc node -z {left -10 0,bottom 0 10,top 0 -10,right 10 0} # ## contract a window by moving one of its side inward #shift + alt + {h,j,k,l} # bspc node -z {right -10 0,top 0 10,bottom 0 -10,left 10 0} # ## move a floating window #super + {Left,Down,Up,Right} # bspc node -v {-20 0,0 20,0 -20,20 0}