173 lines
3.7 KiB
Plaintext
173 lines
3.7 KiB
Plaintext
|
#
|
||
|
# wm independent hotkeys
|
||
|
#
|
||
|
|
||
|
# make sxhkd reload its configuration files:
|
||
|
super + Escape
|
||
|
pkill -USR1 -x sxhkd
|
||
|
|
||
|
#
|
||
|
# bspwm hotkeys
|
||
|
#
|
||
|
|
||
|
# send the newest marked node to the newest preselected node
|
||
|
super + y
|
||
|
bspc node newest.marked.local -n newest.!automatic.local
|
||
|
|
||
|
#
|
||
|
# state/flags
|
||
|
#
|
||
|
|
||
|
# set the node flags
|
||
|
super + ctrl + {m,x,y,z}
|
||
|
bspc node -g {marked,locked,sticky,private}
|
||
|
|
||
|
## My Custom Keybindings ##
|
||
|
|
||
|
# Launch Programs
|
||
|
|
||
|
# Browser
|
||
|
super + ctrl + b
|
||
|
brave
|
||
|
# dmenu Launcher
|
||
|
super + p
|
||
|
dmenu_run
|
||
|
# Terminal
|
||
|
super + Return
|
||
|
st
|
||
|
super + d
|
||
|
st
|
||
|
# Cmus
|
||
|
super + ctrl + c
|
||
|
st -e cmus
|
||
|
# Ranger
|
||
|
super + ctrl + r
|
||
|
st -e ranger
|
||
|
# NeoVim
|
||
|
super + ctrl + v
|
||
|
st -e nvim
|
||
|
# Emacs
|
||
|
super + ctrl + e
|
||
|
emacs
|
||
|
# Screenshot
|
||
|
super + ctrl + s
|
||
|
scrot
|
||
|
|
||
|
# Media Controls
|
||
|
|
||
|
# Mute Audio
|
||
|
XF86AudioMute
|
||
|
pulseaudio-ctl mute
|
||
|
# Lower Volume
|
||
|
XF86AudioLowerVolume
|
||
|
pulseaudio-ctl down 1
|
||
|
# Raise Volume
|
||
|
XF86AudioRaiseVolume
|
||
|
pulseaudio-ctl up 1
|
||
|
# Play/Pause
|
||
|
XF86AudioPlay
|
||
|
playerctl play-pause
|
||
|
# Stop
|
||
|
XF86AudioStop
|
||
|
playerctl stop
|
||
|
# Next Song
|
||
|
XF86AudioNext
|
||
|
playerctl next
|
||
|
# Previous Song
|
||
|
XF86AudioPrev
|
||
|
playerctl previous
|
||
|
|
||
|
## BSPWM Controls ##
|
||
|
|
||
|
# Quit/Restart BSPWM
|
||
|
super + shift + {q,r}
|
||
|
bspc {quit,wm -r}
|
||
|
# Move A Floating Window
|
||
|
super + {Left,Down,Up,Right}
|
||
|
bspc node -v {-20 0,0 20,0 -20,20 0}
|
||
|
# Set Window State
|
||
|
super + {t,shift + t,s,f}
|
||
|
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
|
||
|
# Close and Kill Window
|
||
|
super + x
|
||
|
bspc node -{c,k}
|
||
|
|
||
|
# Resize/Rearrange Windows
|
||
|
|
||
|
# Move Left and Bottom Sides of a Window for Resizing
|
||
|
super + alt + {h,j,k,l}
|
||
|
bspc node -z {left -20 0,bottom 0 20,bottom 0 -20,left 20 0}
|
||
|
# Move Top and Right Sides of a Window for Resizing
|
||
|
super + alt + shift + {h,j,k,l}
|
||
|
bspc node -z {right -20 0,top 0 20,top 0 -20,right 20 0}
|
||
|
# Swap the Current Node and the Biggest Node
|
||
|
super + space
|
||
|
bspc node -s biggest
|
||
|
# Switch Between Tiled and Fullscreen Layout
|
||
|
super + m
|
||
|
bspc desktop -l next
|
||
|
# Focus/Move the Node in the Given Direction
|
||
|
super + {_,shift + }{h,j,k,l}
|
||
|
bspc node -{f,s} {west,south,north,east}
|
||
|
# Cycle Between Windows in Fullscreen Layout (Also Works in Tiled)
|
||
|
super + {_,shift + }c
|
||
|
bspc node -f {next,prev}.local
|
||
|
|
||
|
# Virtual Desktop Controls
|
||
|
|
||
|
# Change Desktop/Send Window to Desktop
|
||
|
super + {_,shift + }{1-9}
|
||
|
bspc {desktop -f,node -d} focused:'^{1-9}'
|
||
|
# Move to Next/Previous Virtual Desktop
|
||
|
super + bracket{left,right}
|
||
|
bspc desktop -f {prev,next}.local
|
||
|
|
||
|
# Manual Tiling Controls
|
||
|
|
||
|
# 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
|
||
|
|
||
|
# Focus of Nodes
|
||
|
|
||
|
# Focus the Node For the Given Path Jump
|
||
|
super + {p,b,comma,period}
|
||
|
bspc node -f @{parent,brother,first,second}
|
||
|
# Focus the Last Node/Desktop
|
||
|
# super + {grave,Tab}
|
||
|
# bspc {node,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
|
||
|
# Switch Focus of Monitors
|
||
|
super + ctrl + alt {h,l}
|
||
|
bspc monitor --focus {prev,next}
|
||
|
super + shift {comma,period}
|
||
|
bspc monitor --focus {prev,next}
|
||
|
# Send Window to other monitor
|
||
|
super + ctrl + shift {h,l}
|
||
|
bspc node -m {prev,next} --follow
|
||
|
super + ctrl {comma,period}
|
||
|
bspc node -m {prev,next} --follow
|
||
|
|
||
|
# gaps
|
||
|
super + equal
|
||
|
gap=$(bspc query --tree --monitor | jq '.windowGap'); new_gap=$(( $gap + 5 )); bspc config window_gap ${new_gap}
|
||
|
|
||
|
super + minus
|
||
|
gap=$(bspc query --tree --monitor | jq '.windowGap'); new_gap=$(( $gap - 5 )); bspc config window_gap ${new_gap}
|
||
|
|
||
|
super + plus
|
||
|
bspc config window_gap 0
|