# New Start: A modern Arch workflow built with an emphasis on functionality. # Copyright (C) 2017-2018 Donovan Glover # Reload sxhkd / Quit bspwm super + {_, alt} + Escape {pkill -USR1 -x sxhkd,bspc quit} # Take a screenshot super + p ~/.config/sxhkd/screenshot.sh # Open a new terminal window super + {_,shift} + Return urxvtcd {_,-e "tmux"} # Open a new transparent terminal super + {_,shift} + backslash termite -e {"tmux new-session; set status", "tmux"} # toggle polybar: top_padding depends on the height you set in polybar/config super + o (xdotool search --class --onlyvisible "Polybar" && \ (xdo hide -N "Polybar" && bspc config top_padding 0)) || \ (xdo show -N "Polybar" && bspc config top_padding 80) # Change the wal color scheme alt + m wal -o ~/.config/wal/done.sh -i ~/Pictures/Wallpapers # Show rofi drun / window / calc alt + {z,space,backslash} env XDG_CURRENT_DESKTOP="KDE" QT_FONT_DPI="192" rofi -show {drun,window,calc -modi calc -no-show-match -no-sort} # Show rofi-pass alt + slash rofi-pass # Get the current node's state alt + n SXHKD_NODE=$(bspc query -T -n) && \ notify-send "Current window $(echo $SXHKD_NODE | jq '.client.className') is in a node with state" "$(echo $SXHKD_NODE | jq '.client.state')" # ==================== # ======= Node ======= # ==================== # Close the focused window super + {_,shift} + q bspc node -{c,k} # Switch to / Swap with the node in the specified direction super + {_,shift} + {h,j,k,l} bspc node -{f,s} {west,south,north,east} # Switch to the next / previous node (includes monocle layout) super + {n,m} bspc node -f {next,prev} # Swap between the last window used super + c bspc node -f last # Send a node to a certain desktop super + shift + {1-9,0} bspc node -d '^{1-9,10}' # FLAGS: Toggle between node flags super + {x,y,l} bspc node -g {sticky,private,locked} # STATES: Toggle between node states super + {t,r,f,space} bspc node focused -t ~{tiled,pseudo_tiled,fullscreen,floating} # ======================= # ======= Desktop ======= # ======================= # Move to the next desktop on the current monitor alt + {_, shift} + Tab bspc desktop -f {next,prev}.local # Easily go back and forth between the last desktop used alt + a bspc desktop -f last # Focus a certain desktop super + {1-9,0} bspc desktop -f '^{1-9,10}' # Switch between tiled and monocle desktop layouts super + f bspc desktop -l next # ===================== # ===== Preselect ===== # ===================== # Preselect where windows go super + ctrl + {h,j,k,l} bspc node -p {west,south,north,east} # Preselect the ratio of windows super + ctrl + {1-9} bspc node -o 0.{1-9} # Cancel the preselection for the focused node super + ctrl + space bspc node -p cancel # ====================== # ======= Resize ======= # ====================== # Expand a window (move its side outward) super + alt + {h,j,k,l} bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} # Contract a window (move 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} # Move a floating window super + {Left,Down,Up,Right} bspc node -v {-20 0,0 20,0 -20,20 0} # vim:ft=sxhkdrc