Skip to content

Instantly share code, notes, and snippets.

@darfink
Created March 1, 2020 16:14
Show Gist options
  • Save darfink/9e7f63fc6b9a03c4fdd140528201f48b to your computer and use it in GitHub Desktop.
Save darfink/9e7f63fc6b9a03c4fdd140528201f48b to your computer and use it in GitHub Desktop.
#######################################
# Modes
######################################
:: default : yabai -m config active_window_border_color 0xffffffff
:: resize : yabai -m config active_window_border_color 0x99ff0000
# Navigating windows
rshift + rcmd + rctrl + ralt - h : yabai -m window --focus west
rshift + rcmd + rctrl + ralt - j : yabai -m window --focus south
rshift + rcmd + rctrl + ralt - k : yabai -m window --focus north
rshift + rcmd + rctrl + ralt - l : yabai -m window --focus east
# Moving windows
rshift + rcmd + rctrl + ralt + lshift - h : yabai -m window --warp west
rshift + rcmd + rctrl + ralt + lshift - j : yabai -m window --warp south
rshift + rcmd + rctrl + ralt + lshift - k : yabai -m window --warp north
rshift + rcmd + rctrl + ralt + lshift - l : yabai -m window --warp east
# Resizing windows
rshift + rcmd + rctrl + ralt - r ; resize
resize < rshift + rcmd + rctrl + ralt - r ; default
resize < escape ; default
resize < h : \
yabai -m window --resize left:-20:0 && \
(yabai -m query --windows --display | jq -e '.[] | select(.focused == 1) | .floating == 0') && \
yabai -m window --resize right:-20:0
resize < j : \
yabai -m window --resize bottom:0:20 && \
(yabai -m query --windows --display | jq -e '.[] | select(.focused == 1) | .floating == 0') && \
yabai -m window --resize top:0:20
resize < k : \
yabai -m window --resize top:0:-20 && \
(yabai -m query --windows --display | jq -e '.[] | select(.focused == 1) | .floating == 0') && \
yabai -m window --resize bottom:0:-20
resize < l : \
yabai -m window --resize right:20:0 && \
(yabai -m query --windows --display | jq -e '.[] | select(.focused == 1) | .floating == 0') && \
yabai -m window --resize left:20:0
# Positioning windows
rshift + rcmd + rctrl + ralt - up : yabai -m window --grid 1:1:0:0:1:1
rshift + rcmd + rctrl + ralt - left : yabai -m window --grid 1:2:0:0:1:1
rshift + rcmd + rctrl + ralt - right : yabai -m window --grid 1:2:1:0:1:1
# Equalize windows
rshift + rcmd + rctrl + ralt - 0 : yabai -m space --balance
# Rotating windows
#rshift + rcmd + rctrl + ralt - r : yabai -m space --rotate 90
#rshift + rcmd + rctrl + ralt + lshift - r : yabai -m space --rotate 270
#######################################
# Window attributes
######################################
# Toggle floating
rshift + rcmd + rctrl + ralt - t : \
yabai -m window --toggle float; \
yabai -m window --grid 4:4:1:1:2:2
# Toggle topmost
rshift + rcmd + rctrl + ralt - a : yabai -m window --toggle topmost
# Toggle sticky
rshift + rcmd + rctrl + ralt - s : yabai -m window --toggle sticky
# Toggle fullscreen
rshift + rcmd + rctrl + ralt - f : \
yabai -m window --toggle zoom-fullscreen && \
(yabai -m query --windows --display | jq -e '.[] | select(.focused == 1) | .floating == 1') && \
yabai -m window --grid 1:1:0:0:1:1
ctrl + cmd - f : yabai -m window --toggle native-fullscreen
#######################################
# Workspace operations
######################################
# Creating workspaces
rshift + rcmd + rctrl + ralt - n : yabai -m space --create
rshift + rcmd + rctrl + ralt + lshift - n : \
yabai -m space --create && \
index="$(yabai -m query --spaces --display | jq 'map(select(."native-fullscreen" == 0))[-1].index')" && \
yabai -m space --focus "${index}"
rshift + rcmd + rctrl + ralt - w : \
(yabai -m space --focus next || yabai -m space --focus prev) && yabai -m space recent --destroy
# Focus workspaces
rshift + rcmd + rctrl + ralt - 1 : yabai -m space --focus 1
rshift + rcmd + rctrl + ralt - 2 : yabai -m space --focus 2
rshift + rcmd + rctrl + ralt - 3 : yabai -m space --focus 3
rshift + rcmd + rctrl + ralt - 4 : yabai -m space --focus 4
rshift + rcmd + rctrl + ralt - 5 : yabai -m space --focus 5
rshift + rcmd + rctrl + ralt - 6 : yabai -m space --focus 6
rshift + rcmd + rctrl + ralt - 7 : yabai -m space --focus 7
rshift + rcmd + rctrl + ralt - 8 : yabai -m space --focus 8
rshift + rcmd + rctrl + ralt - 9 : yabai -m space --focus 9
rshift + rcmd + rctrl + ralt - q : yabai -m space --focus recent
# Move window to workspace
rshift + rcmd + rctrl + ralt + lshift - z : yabai -m window --space prev
rshift + rcmd + rctrl + ralt + lshift - x : yabai -m window --space next
rshift + rcmd + rctrl + ralt + lshift - 1 : yabai -m window --space 1
rshift + rcmd + rctrl + ralt + lshift - 2 : yabai -m window --space 2
rshift + rcmd + rctrl + ralt + lshift - 3 : yabai -m window --space 3
rshift + rcmd + rctrl + ralt + lshift - 4 : yabai -m window --space 4
rshift + rcmd + rctrl + ralt + lshift - 5 : yabai -m window --space 5
rshift + rcmd + rctrl + ralt + lshift - 6 : yabai -m window --space 6
rshift + rcmd + rctrl + ralt + lshift - 7 : yabai -m window --space 7
rshift + rcmd + rctrl + ralt + lshift - 8 : yabai -m window --space 8
rshift + rcmd + rctrl + ralt + lshift - 9 : yabai -m window --space 9
# Iterate workspaces
rshift + rcmd + rctrl + ralt - 0x32 : yabai -m space --focus last
rshift + rcmd + rctrl + ralt - z : yabai -m space --focus prev
rshift + rcmd + rctrl + ralt - x : yabai -m space --focus next
#######################################
# Miscellaneous
######################################
# Open a new terminal with <Enter>
rshift + rcmd + rctrl + ralt - return : open -nb io.alacritty
# Reload the SKHD configuration file
rshift + rcmd + rctrl + ralt + lshift - c : skhd -r
# Restart/exit the yabai service
rshift + rcmd + rctrl + ralt + lshift - r : brew services restart yabai
rshift + rcmd + rctrl + ralt + lshift - e : brew services stop yabai
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment