Add playback control (via mpc) bindings to sxhkd
[~bandali/configs] / sxhkd / .config / sxhkd / sxhkdrc
index 13734ef..308cc87 100644 (file)
 #
-# bspwm hotkeys
+# wm independent hotkeys
 #
 
-super + alt + Escape
-       bspc quit
-
-super + w
-       bspc window -c
-
-super + t
-       bspc desktop -l next
+# terminal emulator
+super + {_,shift} + Return
+       urxvt{_, -name tiled}
 
-super + b
-       bspc desktop -B
+# program launcher
+super + space
+       rofi -show run
 
-super + {s,f}
-       bspc window -t {floating,fullscreen}
+# window finder
+super + backslash
+       rofi -show window
 
-super + {grave,Tab}
-       bspc {window,desktop} -f last
+# password manager
+super + shift + space
+       rofi-pass
 
-super + apostrophe
-       bspc window -s last
+# firefox
+#super + r
+#      firefox
 
-super + {o,i}
-       bspc control --record-history off; \
-       bspc window {older,newer} -f; \
-       bspc control --record-history on
+# chromium
+#super + c
+#      chromium -incognito
 
-super + y
-       bspc window -w last.manual
+# emacs
+super + e
+       emacs
 
-super + m
-       bspc window -s biggest
+# make sxhkd reload its configuration files:
+super + Escape
+       pkill -USR1 -x sxhkd
 
-super + {_,shift + }{h,j,k,l}
-       bspc window -{f,s} {left,down,up,right}
+# volume {up,down}
+XF86Audio{Raise,Lower}Volume
+       pamixer --allow-boost --{in,de}crease 5
 
-super + {_,shift + }c
-       bspc window -f {next,prev}
+# mute
+XF86AudioMute
+       pamixer --toggle-mute
 
-super + {comma,period}
-       bspc desktop -C {backward,forward}
+# playback control
+XF86Audio{Play,Prev,Next}
+       mpc {toggle,prev,next}
 
-super + bracket{left,right}
-       bspc desktop -f {prev,next}
+# Xfce log out
+super + shift + q
+       xfce4-session-logout
 
-super + ctrl + {h,j,k,l}
-       bspc window -p {left,down,up,right}
+# Toggle keyboard layout
+XF86LaunchA
+       toggle-layout
 
-super + ctrl + {_,shift + }space
-       bspc {window -p cancel,desktop -c}
+# Toggle Xfce presentation mode
+XF86LaunchB
+       toggle-presentation-mode
 
-super + alt + {h,j,k,l}
-       bspc window -e {left -10,down +10,up -10,right +10}
+# monitor brightness
+#XF86MonBrightness{Up,Down}
+#      light -s mba6x_backlight -{A,U} 10
 
-super + alt + shift + {h,j,k,l}
-       bspc window -e {right -10,up +10,down -10,left +10}
+# keyboard brightness
+#XF86KbdBrightness{Up,Down}
+#      kbdlight {up,down}
 
-super + ctrl + {1-9}
-       bspc window -r 0.{1-9}
+#
+# bspwm hotkeys
+#
 
-super + {_,shift + }{1-9,0}
-       bspc {desktop -f,window -d} ^{1-9,10}
+# quit bspwm normally
+super + alt + Escape
+       bspc quit
 
-~button1
-       bspc pointer -g focus
+# close and kill
+super + {w,q}
+       bspc node -{c,k}
 
-super + button{1-3}
-       bspc pointer -g {move,resize_side,resize_corner}
+# alternate between the tiled and monocle layout
+super + m
+       bspc desktop -l next
 
-super + !button{1-3}
-       bspc pointer -t %i %i
+# if the current node is automatic, send it to the last manual, otherwise pull the last leaf
+super + y
+       bspc query -N -n focused.automatic && bspc node -n last.!automatic || bspc node last.leaf -n focused
 
-super + @button{1-3}
-       bspc pointer -u
+# swap the current node and the biggest node
+super + g
+       bspc node -s biggest
 
 #
-# wm independent hotkeys
+# state/flags
 #
 
-super + Return
-       urxvt
-
-super + space
-       xfce4-popup-whiskermenu
+# set the window state
+super + {t,shift + t,s,f}
+       bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
 
-super + x
-    slimlock
+# set the node flags
+super + ctrl + {x,y,z}
+       bspc node -g {locked,sticky,private}
 
-super + e
-    emacs
+#
+# focus/swap
+#
 
-super + r
-    firefox
+# focus the node in the given direction
+super + {_,shift + }{h,j,k,l}
+       bspc node -{f,s} {west,south,north,east}
 
-# make sxhkd reload its configuration files:
-super + Escape
-       pkill -USR1 -x sxhkd
+# focus the node for the given path jump
+super + {p,b,comma,period}
+       bspc node -f @{parent,brother,first,second}
 
-#XF86MonBrightnessDown
-#      xbacklight -dec 5
+# focus the next/previous node in the current desktop
+super + {_,shift + }c
+       bspc node -f {next,prev}.local
 
-#XF86MonBrightnessUp
-#      xbacklight -inc 5
+# focus the next/previous desktop in the current monitor
+super + bracket{left,right}
+       bspc desktop -f {prev,next}.local
 
-# XF86KbdBrightnessDown
-       #kbdlight down
+# send to next/prev desktop
+super + shift + bracket{left,right}
+       bspc node -d {prev,next}
 
-# XF86KbdBrightnessUp
-       #kbdlight up
+# focus the last node/desktop
+super + {grave,Tab}
+       bspc {node,desktop} -f last
 
-#XF86AudioRaiseVolume
-#    pulseaudio-ctl up
+# 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
 
-#XF86AudioLowerVolume
-#    pulseaudio-ctl down
+# focus or send to the given desktop
+super + {_,shift + }{1-9,0}
+       bspc {desktop -f,node -d} '^{1-9,10}'
 
-#XF86AudioMute
-#    pulseaudio-ctl mute
+#
+# preselect
+#
 
-XF86AudioPlay
-    mpc toggle
+# preselect the direction
+super + ctrl + {h,j,k,l}
+       bspc node -p {west,south,north,east}
 
-XF86AudioPrev
-    mpc prev
+# preselect the ratio
+super + ctrl + {1-9}
+       bspc node -o 0.{1-9}
 
-XF86AudioNext
-    mpc next
+# cancel the preselection for the focused node
+super + ctrl + space
+       bspc node -p cancel
 
-XF86AudioRaiseVolume
-       pamixer --allow-boost --increase 5
+# 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
 
-XF86AudioLowerVolume
-       pamixer  --allow-boost --decrease 5
+#
+# move/resize
+#
 
-XF86AudioMute
-       pamixer --toggle-mute
+# expand a window by moving one of its side outward
+super + alt + {h,j,k,l}
+       bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
 
-XF86LaunchA
-  toggle-layout
+# contract a window by moving one of its side inward
+super + alt + shift + {h,j,k,l}
+       bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
 
-XF86LaunchB
-  toggle-mouse
+# move a floating window
+super + {Left,Down,Up,Right}
+       bspc node -v {-20 0,0 20,0 -20,20 0}