# open terminal rctrl - return : ~/.local/bin/kit new-window --window-type os # focus window rctrl - j : yabai -m window --focus next || yabai -m window --focus first rctrl - k : yabai -m window --focus prev || yabai -m window --focus last cmd - tab : yabai -m window --focus next || yabai -m window --focus first cmd + shift - tab : yabai -m window --focus prev || yabai -m window --focus last # focus stacked window rctrl - n : yabai -m window --focus stack.next || yabai -m window --focus stack.first rctrl - p : yabai -m window --focus stack.prev || yabai -m window --focus stack.last # swap window rctrl + shift - j : yabai -m window --swap next || yabai -m window --swap first rctrl + shift - k : yabai -m window --swap prev || yabai -m window --swap last # balance size of windows (mod =) rctrl - 0x18 : yabai -m space --balance # make floating window fill screen # shift + alt - up : yabai -m window --grid 1:1:0:0:1:1 # make floating window fill left-half of screen # shift + alt - left : yabai -m window --grid 1:2:0:0:1:1 # make floating window fill right-half of screen # shift + alt - right : 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) rctrl + cmd - n : 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) cmd + alt - n : 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 # fast focus desktop rctrl - x : yabai -m space --focus recent rctrl - z : yabai -m space --focus prev rctrl - c : yabai -m space --focus next rctrl - 1 : yabai -m space --focus 1 rctrl - 2 : yabai -m space --focus 2 rctrl - 3 : yabai -m space --focus 3 rctrl - 4 : yabai -m space --focus 4 rctrl - 5 : yabai -m space --focus 5 rctrl - 6 : yabai -m space --focus 6 rctrl - 7 : yabai -m space --focus 7 rctrl - 8 : yabai -m space --focus 8 rctrl - 9 : yabai -m space --focus 9 rctrl - 0 : yabai -m space --focus 10 # send window to desktop shift + cmd - x : yabai -m window --space recent shift + cmd - z : yabai -m window --space prev shift + cmd - c : yabai -m window --space next shift + rctrl - 1 : yabai -m window --space 1 shift + rctrl - 2 : yabai -m window --space 2 shift + rctrl - 3 : yabai -m window --space 3 shift + rctrl - 4 : yabai -m window --space 4 shift + rctrl - 5 : yabai -m window --space 5 shift + rctrl - 6 : yabai -m window --space 6 shift + rctrl - 7 : yabai -m window --space 7 shift + rctrl - 8 : yabai -m window --space 8 shift + rctrl - 9 : yabai -m window --space 9 shift + rctrl - 0 : yabai -m window --space 10 # focus monitor rctrl - w : yabai -m display --focus 1 rctrl - e : yabai -m display --focus 2 rctrl - r : yabai -m display --focus 3 # send window to monitor rctrl + shift - w : yabai -m window --display 1 rctrl + shift - e : yabai -m window --display 2 rctrl + shift - r : yabai -m window --display 3 # move window shift + ctrl - a : yabai -m window --move rel:-20:0 shift + ctrl - s : yabai -m window --move rel:0:20 shift + ctrl - w : yabai -m window --move rel:0:-20 shift + ctrl - d : yabai -m window --move rel:20:0 # increase window size shift + alt - a : yabai -m window --resize left:-20:0 shift + alt - s : yabai -m window --resize bottom:0:20 shift + alt - w : yabai -m window --resize top:0:-20 shift + alt - d : yabai -m window --resize right:20:0 # decrease window size shift + cmd - a : yabai -m window --resize left:20:0 shift + cmd - s : yabai -m window --resize bottom:0:-20 shift + cmd - w : yabai -m window --resize top:0:20 shift + cmd - d : yabai -m window --resize right:-20:0 # set insertion point in focused container ctrl + alt - h : yabai -m window --insert west ctrl + alt - j : yabai -m window --insert south ctrl + alt - k : yabai -m window --insert north ctrl + alt - l : yabai -m window --insert east # 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 - a : yabai -m space --toggle padding; yabai -m space --toggle gap # toggle window parent zoom alt - d : yabai -m window --toggle zoom-parent # toggle window fullscreen zoom alt - f : yabai -m window --toggle zoom-fullscreen # toggle window native fullscreen shift + alt - f : yabai -m window --toggle native-fullscreen # toggle window border shift + alt - b : yabai -m window --toggle border # toggle window split type # alt - e : yabai -m window --toggle split # float / unfloat window and center on screen alt - t : yabai -m window --toggle float;\ yabai -m window --grid 4:4:1:1:2:2 # toggle sticky alt - s : yabai -m window --toggle sticky # toggle sticky, float and resize to picture-in-picture size # alt - p : yabai -m window --toggle sticky;\ # yabai -m window --grid 5:5:4:0:1:1 # change layout of desktop rctrl - a : yabai -m space --layout bsp rctrl - s : yabai -m space --layout stack rctrl - d : yabai -m space --layout float play : mpc toggle rewind : mpc cdprev fast : mpc next rctrl - b : /usr/local/bin/hs -c 'stackline.config:toggle("appearance.showIcons")'