# open terminal # alt - return : /Applications/Kitty.app/Contents/MacOS/kitty --single-instance -d ~ &> /dev/null # # open mpv with url from clipboard # shift + cmd - m : mpv $(pbpaste) # focus window alt - z : yabai -m window --focus recent alt - h : yabai -m window --focus west alt - j : yabai -m window --focus south alt - k : yabai -m window --focus north alt - l : yabai -m window --focus east alt - 0x2B : yabai -m window --focus stack.prev # alt + , alt - 0x2F : yabai -m window --focus stack.next # alt + . # swap window alt + ctrl - z : yabai -m window --swap recent alt + ctrl - h : yabai -m window --swap west alt + ctrl - j : yabai -m window --swap south alt + ctrl - k : yabai -m window --swap north alt + ctrl - l : yabai -m window --swap east # move window cmd + ctrl - h : yabai -m window --warp west cmd + ctrl - j : yabai -m window --warp south cmd + ctrl - k : yabai -m window --warp north cmd + ctrl - l : yabai -m window --warp east # balance size of windows alt - 0x18 : yabai -m space --balance # toggle window float cmd + shift - return : yabai -m window --toggle float --grid 4:4:1:1:2:2 # make floating window fill screen cmd + shift - f : yabai -m window --grid 1:1:0:0:1:4 # make floating window fill top-left of screen cmd + shift - u : yabai -m window --grid 2:2:0:0:0:0 # make floating window fill top-right of screen cmd + shift - i : yabai -m window --grid 2:2:1:0:0:0 # make floating window fill bottom-left of screen cmd + shift - m : yabai -m window --grid 2:2:0:1:0:0 # make floating window fill bottom-right of screen cmd + shift - 0x2B : yabai -m window --grid 2:2:1:1:4:4 # make floating window fill top-half of screen cmd + shift - k : yabai -m window --grid 4:4:0:0:4:2 # make floating window fill bottom-half of screen cmd + shift - j : yabai -m window --grid 2:2:0:1:4:4 # make floating window fill left-half of screen cmd + shift - h : yabai -m window --grid 1:2:0:0:1:1 # make floating window fill right-half of screen cmd + shift - l : yabai -m window --grid 1:2:1:0:1:1 # # create desktop, move window and follow focus - uses jq for parsing json (brew install jq) alt + shift - w : yabai -m space --create && \ index="$(yabai -m query --spaces --display | jq 'map(select(."native-fullscreen" == 0))[-1].index')" && \ yabai -m window --space "${index}" && \ yabai -m space --focus "${index}" # # create desktop and follow focus - uses jq for parsing json (brew install jq) alt + ctrl - w : yabai -m space --create && \ index="$(yabai -m query --spaces --display | jq 'map(select(."native-fullscreen" == 0))[-1].index')" && \ yabai -m space --focus "${index}" # destroy desktop # cmd + alt - w : yabai -m space --destroy alt + ctrl - x : yabai -m space --focus prev && yabai -m space recent --destroy # fast focus desktop alt - 0x32 : yabai -m space --focus recent alt - 0x21 : yabai -m space --focus prev || skhd -k "ctrl + alt + cmd - p" alt - 0x1E : yabai -m space --focus next || skhd -k "ctrl + alt + cmd - n" alt - 1 : yabai -m space --focus 1 || skhd -k "ctrl + alt + cmd - 1" alt - 2 : yabai -m space --focus 2 || skhd -k "ctrl + alt + cmd - 2" alt - 3 : yabai -m space --focus 3 || skhd -k "ctrl + alt + cmd - 3" alt - 4 : yabai -m space --focus 4 || skhd -k "ctrl + alt + cmd - 4" alt - 5 : yabai -m space --focus 5 || skhd -k "ctrl + alt + cmd - 5" alt - 6 : yabai -m space --focus 6 || skhd -k "ctrl + alt + cmd - 6" alt - 7 : yabai -m space --focus 7 || skhd -k "ctrl + alt + cmd - 7" alt - 8 : yabai -m space --focus 8 || skhd -k "ctrl + alt + cmd - 8" alt - 9 : yabai -m space --focus 9 || skhd -k "ctrl + alt + cmd - 9" alt - 0 : yabai -m space --focus 10 || skhd -k "ctrl + alt + cmd - 0" alt + cmd - 1 : yabai -m space --focus 11 || skhd -k "ctrl + alt + cmd - 11" alt + cmd - 2 : yabai -m space --focus 12 || skhd -k "ctrl + alt + cmd - 12" alt + cmd - 3 : yabai -m space --focus 13 || skhd -k "ctrl + alt + cmd - 13" alt + cmd - 4 : yabai -m space --focus 14 || skhd -k "ctrl + alt + cmd - 14" alt + cmd - 5 : yabai -m space --focus 15 || skhd -k "ctrl + alt + cmd - 15" alt + cmd - 6 : yabai -m space --focus 16 || skhd -k "ctrl + alt + cmd - 16" alt + cmd - 7 : yabai -m space --focus 17 || skhd -k "ctrl + alt + cmd - 17" alt + cmd - 8 : yabai -m space --focus 18 || skhd -k "ctrl + alt + cmd - 18" alt + cmd - 9 : yabai -m space --focus 19 || skhd -k "ctrl + alt + cmd - 19" alt + cmd - 0 : yabai -m space --focus 20 || skhd -k "ctrl + alt + cmd - 20" # send window to desktop alt + ctrl - 0x21 : yabai -m window --space prev alt + ctrl - 0x1E : yabai -m window --space next alt + ctrl - 1 : yabai -m window --space 1 alt + ctrl - 2 : yabai -m window --space 2 alt + ctrl - 3 : yabai -m window --space 3 alt + ctrl - 4 : yabai -m window --space 4 alt + ctrl - 5 : yabai -m window --space 5 alt + ctrl - 6 : yabai -m window --space 6 alt + ctrl - 7 : yabai -m window --space 7 alt + ctrl - 8 : yabai -m window --space 8 alt + ctrl - 9 : yabai -m window --space 9 alt + ctrl - 0 : yabai -m window --space 10 # send window to desktop and follow focus alt + shift - 0x32 : yabai -m window --space recent && yabai -m space --focus recent alt + shift - 0x21 : yabai -m window --space prev && skhd -k "ctrl + alt + cmd - p" || yabai -m space --focus prev alt + shift - 0x1E : yabai -m window --space next && skhd -k "ctrl + alt + cmd - n" || yabai -m space --focus next alt + shift - 1 : yabai -m window --space 1 && skhd -k "ctrl + alt + cmd - 1" || yabai -m space --focus 1 alt + shift - 2 : yabai -m window --space 2 && skhd -k "ctrl + alt + cmd - 2" || yabai -m space --focus 2 alt + shift - 3 : yabai -m window --space 3 && skhd -k "ctrl + alt + cmd - 3" || yabai -m space --focus 3 alt + shift - 4 : yabai -m window --space 4 && skhd -k "ctrl + alt + cmd - 4" || yabai -m space --focus 4 alt + shift - 5 : yabai -m window --space 5 && skhd -k "ctrl + alt + cmd - 5" || yabai -m space --focus 5 alt + shift - 6 : yabai -m window --space 6 && skhd -k "ctrl + alt + cmd - 6" || yabai -m space --focus 6 alt + shift - 7 : yabai -m window --space 7 && skhd -k "ctrl + alt + cmd - 7" || yabai -m space --focus 7 alt + shift - 8 : yabai -m window --space 8 && skhd -k "ctrl + alt + cmd - 8" || yabai -m space --focus 8 alt + shift - 9 : yabai -m window --space 9 && skhd -k "ctrl + alt + cmd - 9" || yabai -m space --focus 9 alt + shift - 0 : yabai -m window --space 10 && skhd -k "ctrl + alt + cmd - 0" || yabai -m space --focus 0 # focus monitor cmd + ctrl - z : yabai -m display --focus recent cmd + ctrl - 0x21 : yabai -m display --focus prev cmd + ctrl - 0x1E : yabai -m display --focus next cmd + ctrl - 1 : yabai -m display --focus 1 cmd + ctrl - 2 : yabai -m display --focus 2 cmd + ctrl - 3 : yabai -m display --focus 3 # send window to monitor and follow focus cmd + shift - r : yabai -m window --display recent && yabai -m display --focus recent cmd + shift - 0x21 : yabai -m window --display prev && yabai -m display --focus prev cmd + shift - 0x1E : yabai -m window --display next && yabai -m display --focus next cmd + shift - 1 : yabai -m window --display 1 && yabai -m display --focus 1 cmd + shift - 2 : yabai -m window --display 2 && yabai -m display --focus 2 cmd + shift - 3 : yabai -m window --display 3 && yabai -m display --focus 3 # move window ctrl + shift - h : yabai -m window --move rel:-20:0 ctrl + shift - j : yabai -m window --move rel:0:20 ctrl + shift - k : yabai -m window --move rel:0:-20 ctrl + shift - l : yabai -m window --move rel:20:0 # increase window size alt + ctrl - a : yabai -m window --resize left:-20:0 alt + ctrl - s : yabai -m window --resize bottom:0:20 alt + ctrl - w : yabai -m window --resize top:0:-20 alt + ctrl - d : yabai -m window --resize right:20:0 # decrease window size cmd + ctrl - a : yabai -m window --resize left:20:0 cmd + ctrl - s : yabai -m window --resize bottom:0:-20 cmd + ctrl - w : yabai -m window --resize top:0:20 cmd + ctrl - d : yabai -m window --resize right:-20:0 # set insertion point in focused container cmd + ctrl - 0x7B : yabai -m window --insert west cmd + ctrl - 0x7D : yabai -m window --insert south cmd + ctrl - 0x7E : yabai -m window --insert north cmd + ctrl - 0x7C : yabai -m window --insert east cmd + ctrl - i : yabai -m window --insert stack # rotate tree alt - r : yabai -m space --rotate 90 # mirror tree y-axis alt - y : yabai -m space --mirror y-axis # mirror tree x-axis alt - x : yabai -m space --mirror x-axis # toggle desktop offset alt - d : yabai -m space --toggle padding --toggle gap # toggle window parent zoom alt + ctrl - f : yabai -m window --toggle zoom-parent # toggle window fullscreen zoom alt - f : yabai -m window --toggle zoom-fullscreen # toggle window native fullscreen alt + shift - f : yabai -m window --toggle native-fullscreen # toggle window split type alt - s : yabai -m window --toggle split # float / unfloat window and restore position alt - t : yabai -m window --toggle float && /tmp/yabai-restore/$(yabai -m query --windows --window | jq -re '.id').restore 2>/dev/null || true # toggle sticky (show on all spaces) alt - 0x27 : yabai -m window --toggle sticky # toggle topmost (keep above other windows) alt - o : yabai -m window --toggle topmost # toggle picture-in-picture alt - i : yabai -m window --toggle border --toggle pip # change layout of desktop # alt + ctrl - 1 : yabai -m space --layout bsp # alt + ctrl - 2 : yabai -m space --layout float alt + ctrl - t : yabai -m space --layout $(yabai -m query --spaces --space | jq -r 'if .type == "bsp" then "float" else "bsp" end') ########################################################### ### --- Starting/Stopping/Restarting Yabai ########################################################### # stop/start/restart yabai alt + cmd + ctrl - q : yabai --stop-service alt + cmd + ctrl - s : yabai --start-service alt + cmd + ctrl - r : yabai --restart-service alt + cmd + shift - q : skhd --stop-service alt + cmd + shift - s : skhd --start-service alt + cmd + shift - r : skhd --restart-service