#+TITLE: SXHKD config #+PROPERTY: header-args :tangle sxhkdrc * Table of contents :toc: - [[#about][About]] - [[#terminal-emulator][Terminal emulator]] - [[#dmenu][dmenu]] - [[#restarting-sxhkd][Restarting sxhkd]] - [[#quitting-and-restarting-bspwm][Quitting and restarting bspwm]] - [[#closing-and-killing-apps][Closing and killing apps]] - [[#strange-keys][Strange keys]] - [[#alternate-between-the-tiled-and-monocle-layout][Alternate between the tiled and monocle layout]] - [[#send-the-newest-marked-node-to-the-newest-preselected-node][Send the newest marked node to the newest preselected node]] - [[#swap-the-current-node-and-the-biggest-node][Swap the current node and the biggest node]] - [[#state-and-flags][State and flags]] - [[#set-the-window-state][Set the window state]] - [[#set-the-node-flags][Set the node flags]] - [[#focus-and-swap][Focus and swap]] - [[#focusswap-the-node-in-the-given-direction][Focus/swap the node in the given direction]] - [[#focus-the-node-for-the-given-path-jump][Focus the node for the given path jump]] - [[#focus-the-nextprevious-node-in-the-current-desktop][Focus the next/previous node in the current desktop]] - [[#focus-the-nextprevious-desktop-in-the-current-monitor][Focus the next/previous desktop in the current monitor]] - [[#focus-the-last-nodedesktop][Focus the last node/desktop]] - [[#focus-the-older-or-newer-node-in-the-focus-history][Focus the older or newer node in the focus history]] - [[#focus-or-send-to-the-given-desktop][Focus or send to the given desktop]] - [[#preselect-options][Preselect options]] - [[#preselect-the-direction][Preselect the direction]] - [[#preselect-the-ratio][Preselect the ratio]] - [[#cancel-the-preselection-for-the-focused-node][Cancel the preselection for the focused node]] - [[#cancel-the-preselection-for-the-focused-desktop][Cancel the preselection for the focused desktop]] - [[#move-and-resize][Move and resize]] - [[#expand-a-window-by-moving-one-of-its-side-outward][Expand a window by moving one of its side outward]] - [[#contract-a-window-by-moving-one-of-its-side-inward][Contract a window by moving one of its side inward]] - [[#move-a-floating-window][Move a floating window]] - [[#some-custom-quick-launch-apps][Some custom quick launch apps]] - [[#xf86-keys][XF86 keys]] * About The following is my ~sxhkd~ configuration file. * Terminal emulator #+BEGIN_SRC text super + Return /usr/local/bin/alacritty #+END_SRC * dmenu #+BEGIN_SRC text super + p /usr/local/bin/dmenu_run -c -l 5 -m 0 -fn "mononoki Nerd Font:size=12" -nb "#222222" -nf "#bbbbbb" -sb "#b92121" -sf "#eeeeee" #+END_SRC * Restarting sxhkd #+BEGIN_SRC text super + control + r /bin/pkill -USR1 -x sxhkd #+END_SRC * Quitting and restarting bspwm #+BEGIN_SRC text super + shift + {e,r} /usr/local/bin/bspc {quit,wm -r} #+END_SRC * Closing and killing apps #+BEGIN_SRC text super + {_,shift + }q /usr/local/bin/bspc node -{c,k} #+END_SRC * Strange keys ** Alternate between the tiled and monocle layout #+BEGIN_SRC text super + m /usr/local/bin/bspc desktop -l next #+END_SRC ** Send the newest marked node to the newest preselected node #+BEGIN_SRC text super + y /usr/local/bin/bspc node newest.marked.local -n newest.!automatic.local #+END_SRC ** Swap the current node and the biggest node #+BEGIN_SRC text super + g /usr/local/bin/bspc node -s biggest #+END_SRC * State and flags ** Set the window state #+BEGIN_SRC text super + {s,shift + t,space,f} /usr/local/bin/bspc node -t {tiled,pseudo_tiled,floating,fullscreen} #+END_SRC ** Set the node flags #+BEGIN_SRC text super + ctrl + {m,x,y,z} /usr/local/bin/bspc node -g {marked,locked,sticky,private} #+END_SRC * Focus and swap ** Focus/swap the node in the given direction #+BEGIN_SRC text super + {_,shift + }{h,j,k,l} /usr/local/bin/bspc node -{f,s} {west,south,north,east} #+END_SRC ** Focus the node for the given path jump #+BEGIN_SRC text super + { ,b,comma,period} /usr/local/bin/bspc node -f @{parent,brother,first,second} #+END_SRC ** Focus the next/previous node in the current desktop #+BEGIN_SRC text super + {_,shift + }c /usr/local/bin/bspc node -f {next,prev}.local #+END_SRC ** Focus the next/previous desktop in the current monitor #+BEGIN_SRC text super + bracket{left,right} /usr/local/bin/bspc desktop -f {prev,next}.local #+END_SRC ** Focus the last node/desktop #+BEGIN_SRC text alt + {grave,Tab} /usr/local/bin/bspc {node,desktop} -f last #+END_SRC ** Focus the older or newer node in the focus history #+BEGIN_SRC text super + {o,i} /usr/local/bin/bspc wm -h off; \ /usr/local/bin/bspc node {older,newer} -f; \ /usr/local/bin/bspc wm -h on #+END_SRC ** Focus or send to the given desktop #+BEGIN_SRC text super + {_,shift + }{F1} /usr/local/bin/bspc {desktop -f,node -d} 01 super + {_,shift + }{F2} /usr/local/bin/bspc {desktop -f,node -d} 02 super + {_,shift + }{F3} /usr/local/bin/bspc {desktop -f,node -d} 03 super + {_,shift + }{F4} /usr/local/bin/bspc {desktop -f,node -d} 04 super + {_,shift + }{F5} /usr/local/bin/bspc {desktop -f,node -d} 05 super + {_,shift + }{F6} /usr/local/bin/bspc {desktop -f,node -d} 06 super + {_,shift + }{F7} /usr/local/bin/bspc {desktop -f,node -d} 07 super + {_,shift + }{F8} /usr/local/bin/bspc {desktop -f,node -d} 08 super + {_,shift + }{F9} /usr/local/bin/bspc {desktop -f,node -d} 09 super + {_,shift + }{F10} /usr/local/bin/bspc {desktop -f,node -d} 10 super + {_,shift + }{F11} /usr/local/bin/bspc {desktop -f,node -d} 11 super + {_,shift + }{F12} /usr/local/bin/bspc {desktop -f,node -d} 12 #+END_SRC * Preselect options ** Preselect the direction #+BEGIN_SRC text super + ctrl + {h,j,k,l} /usr/local/bin/bspc node -p {west,south,north,east} #+END_SRC ** Preselect the ratio #+BEGIN_SRC text super + ctrl + {1-9} /usr/local/bin/bspc node -o 0.{1-9} #+END_SRC ** Cancel the preselection for the focused node #+BEGIN_SRC text super + ctrl + {space,Escape} /usr/local/bin/bspc node -p cancel #+END_SRC ** Cancel the preselection for the focused desktop #+BEGIN_SRC text super + ctrl + shift + space /usr/local/bin/bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel #+END_SRC * Move and resize ** Expand a window by moving one of its side outward #+BEGIN_SRC text ctrl + alt + {Left,Down,Up,Right} /usr/local/bin/bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} #+END_SRC ** Contract a window by moving one of its side inward #+BEGIN_SRC text super + ctrl + {Left,Down,Up,Right} /usr/local/bin/bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} #+END_SRC ** Move a floating window #+BEGIN_SRC text super + {Left,Down,Up,Right} /usr/local/bin/bspc node -v {-20 0,0 20,0 -20,20 0} #+END_SRC * Some custom quick launch apps #+BEGIN_SRC text super + 1 /usr/local/bin/alacritty -e vifm super + 2 /usr/local/bin/emacsclient -c super + 3 /usr/local/bin/firefox --kiosk https://start.duckduckgo.com/ super + 4 /usr/local/bin/alacritty -e w3m https://start.duckduckgo.com/ #+END_SRC * XF86 keys #+BEGIN_SRC text {XF86AudioRaiseVolume} /usr/home/jozan/.local/bin/mixer-set raise >/dev/null 2>&1 {XF86AudioLowerVolume} /usr/home/jozan/.local/bin/mixer-set lower >/dev/null 2>&1 {XF86AudioMute} /usr/home/jozan/.local/bin/mixer-set toggle >/dev/null 2>&1 {XF86MonBrightnessUp} /usr/local/bin/xbacklight -inc 4 {XF86MonBrightnessDown} /usr/local/bin/xbacklight -dec 4 {XF86Sleep} /usr/home/jozan/.local/bin/gotosleep #+END_SRC