Skip to content

Instantly share code, notes, and snippets.

@amiorin
Last active December 5, 2023 19:56
Show Gist options
  • Save amiorin/be81d5455c76dc5a61e14488018ee171 to your computer and use it in GitHub Desktop.
Save amiorin/be81d5455c76dc5a61e14488018ee171 to your computer and use it in GitHub Desktop.
My yabai and skhdrc config
# # focus space #
# alt - q : yabai -m space --focus 1 || yabai -m window --focus stack.next || yabai -m window --focus stack.first
# alt - w : yabai -m space --focus 2 || yabai -m window --focus stack.next || yabai -m window --focus stack.first
# alt - e : yabai -m space --focus 3 || yabai -m window --focus stack.next || yabai -m window --focus stack.first
# alt - r : yabai -m space --focus 4 || yabai -m window --focus stack.next || yabai -m window --focus stack.first
alt - a : yabai -m space --focus 1 || yabai -m window --focus stack.next || yabai -m window --focus stack.first
alt - s : yabai -m space --focus 2 || yabai -m window --focus stack.next || yabai -m window --focus stack.first
alt - d : yabai -m space --focus 3 || yabai -m window --focus stack.next || yabai -m window --focus stack.first
alt - f : yabai -m space --focus 4 || yabai -m window --focus stack.next || yabai -m window --focus stack.first
# alt - z : yabai -m space --focus 9
# alt - x : yabai -m space --focus 10
# alt - c : yabai -m space --focus 11
# alt - v : yabai -m space --focus 12
# move window to space #
# ctrl + alt - q : happy-yabai cmds move-or-prev 1
# ctrl + alt - w : happy-yabai cmds move-or-prev 2
# ctrl + alt - e : happy-yabai cmds move-or-prev 3
# ctrl + alt - r : happy-yabai cmds move-or-prev 4
ctrl + alt - a : happy-yabai cmds move-or-prev 1
ctrl + alt - s : happy-yabai cmds move-or-prev 2
ctrl + alt - d : happy-yabai cmds move-or-prev 3
ctrl + alt - f : happy-yabai cmds move-or-prev 4
# ctrl + alt - z : yabai -m window --space 9 && yabai -m space --focus 9
# ctrl + alt - x : yabai -m window --space 10 && yabai -m space --focus 10
# ctrl + alt - c : yabai -m window --space 11 && yabai -m space --focus 11
# ctrl + alt - v : yabai -m window --space 12 && yabai -m space --focus 12
# switch space left
# alt - x : yabai -m space --focus prev || yabai -m space --focus last
# alt - c : yabai -m space --focus next || yabai -m space --focus first
# switch stack
#alt - x : yabai -m window --focus stack.prev || yabai -m window --focus stack.last
#alt - c : yabai -m window --focus stack.next || yabai -m window --focus stack.first
# swap windows in display
alt - v : happy-yabai cmds swap-windows 1 2
#alt - v : happy-yabai cmds swap-spaces 1 2
#alt - v : display=$(yabai -m query --windows | jq 'map(select(."has-focus"))[0].display') \
# && win1=$(yabai -m query --windows --display 1 | jq 'map(select(."is-visible"))[0].id') \
# && win2=$(yabai -m query --windows --display 2 | jq 'map(select(."is-visible"))[0].id') \
# && yabai -m window $win1 --display 2 \
# && yabai -m window $win2 --display 1 \
# && yabai -m display --focus $((3-display))
#alt - a : wins=($(yabai -m query --windows | jq 'map(select(."is-visible"))[].id')) \
# && yabai -m window ${wins[2]} --swap ${wins[3]} \
# && yabai -m display --focus 2
#ctrl + alt - g : yabai -m space --swap recent
# cycle
alt - t : yabai -m window --focus next || (yabai -m display --focus next && yabai -m window --focus first) || (yabai -m display --focus 1 && yabai -m window --focus first)
# move to left and focus
# alt - w : yabai -m window --display prev; yabai -m display --focus prev
# alt - e : yabai -m window --display next; yabai -m display --focus next
#change focus between external displays (left and right)
#cmd + alt - a : yabai -m display --focus west
#cmd + alt - f : yabai -m display --focus east
# move space to display
#alt - x : yabai -m space --display 1 || yabai -m space --create && yabai -m space --display 1
#alt - c : yabai -m space --display 2 || yabai -m space --create && yabai -m space --display 2
#alt - v : yabai -m space --display 3 || yabai -m space --create && yabai -m space --display 3
# move windows through spaces
#alt - x : yabai -m window --space prev || yabai -m window --space last; yabai -m space --focus prev || yabai -m space --focus last
#alt - c : yabai -m window --space next || yabai -m window --space first; yabai -m space --focus next || yabai -m space --focus first
# focus recent space
#cmd + alt - r : yabai -m space --focus recent
# maximize a window
shift + alt - m : yabai -m window --toggle zoom-fullscreen
# balance out tree of windows (resize to occupy same area)
shift + alt - e : yabai -m space --balance
# swap windows
shift + alt - j : yabai -m window --swap south
shift + alt - k : yabai -m window --swap north
shift + alt - h : yabai -m window --swap west
shift + alt - l : yabai -m window --swap east
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
sudo yabai --load-sa
yabai -m config layout stack
#yabai -m signal --add event=space_changed \
# action="echo foobar $PATH"
yabai -m rule --add app='^System Settings$' manage=off
yabai -m rule --add app='^Calculator$' manage=off
yabai -m config focus_follows_mouse autoraise
yabai -m config mouse_follows_focus on
yabai -m signal --add event=window_created action="happy-yabai events fix-left-padding 39"
yabai -m signal --add event=window_destroyed action="happy-yabai events fix-left-padding 39"
yabai -m signal --add event=window_moved action="happy-yabai events fix-left-padding 39"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment