nix-config/.config/sxhkd/sxhkdrc
Donovan Glover 3b8b3bece4
sxhkd: Move non-bspc commands to the top
The sxhkdrc becomes much easier to manage when all the window manager
commands are at the bottom together.
2018-10-20 03:02:52 -04:00

128 lines
3.2 KiB
Plaintext

# 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