# Services hyper - z : brew services restart yabai hyper - x : brew services restart skhd # Moving windows hyper - w : yabai -m window --warp north || $(yabai -m window --display north; yabai -m display --focus north) hyper - a : yabai -m window --warp west || $(yabai -m window --display west; yabai -m display --focus west) hyper - s : yabai -m window --warp south || $(yabai -m window --display south; yabai -m display --focus south) hyper - d : yabai -m window --warp east || $(yabai -m window --display east; yabai -m display --focus east) # Toggle mouse focus mode hyper - m : [[ $(yabai -m config focus_follows_mouse) = "disabled" ]] && \ yabai -m config focus_follows_mouse autoraise || \ yabai -m config focus_follows_mouse off # Resize windowsa hyper - i : \ yabai -m window --resize top:0:-20 ; \ yabai -m window --resize bottom:0:-20 hyper - j : \ yabai -m window --resize left:-20:0 ; \ yabai -m window --resize right:-20:0 hyper - k : \ yabai -m window --resize bottom:0:20 ; \ yabai -m window --resize top:0:20 hyper - l : \ yabai -m window --resize right:20:0 ; \ yabai -m window --resize left:20:0 # Rotate windows hyper - r : yabai -m space --rotate 270 # Mirror tree y-axis hyper - y : yabai -m space --mirror y-axis # Balance size of windows hyper - b : yabai -m space --balance # float / unfloat window and center on screen hyper - h : yabai -m window --toggle float;\ yabai -m window --grid 4:4:1:1:2:2 # toggle window zoom hyper - t : yabai -m window --toggle zoom-parent hyper - f : yabai -m window --toggle zoom-fullscreen # Enable / Disable gaps in current workspace hyper - 0 : yabai -m space --toggle padding; yabai -m space --toggle gap # Cycle windows forwards hyper - e : yabai -m window --focus prev || yabai -m window --focus last # hyper - e : yabai -m query --spaces --space \ # | jq -re ".index" \ # | xargs -I{} yabai -m query --windows --space {} \ # | jq "map(select(.minimized == 0))" \ # | jq -sre "add | sort_by(.display, .frame.x, .frame.y, .id) | reverse | nth(index(map(select(.focused == 1))) - 1).id" \ # | xargs -I{} yabai -m window --focus {} # Cycle windows backwards hyper - q : yabai -m window --focus next || yabai -m window --focus first # hyper - q : yabai -m query --spaces --space \ # | jq -re ".index" \ # | xargs -I{} yabai -m query --windows --space {} \ # | jq "map(select(.minimized == 0))" \ # | jq -sre "add | sort_by(.display, .frame.x, .frame.y, .id) | nth(index(map(select(.focused == 1))) - 1).id" \ # | xargs -I{} yabai -m window --focus {} # Cycle windows forwards and backwards in focused stack only hyper - tab : yabai -m window --focus stack.next || yabai -m window --focus stack.first # Cycle windows forwards and backwards but stops at ends # hyper - tab : yabai -m window --focus stack.prev || yabai -m window --focus prev || yabai -m window --focus last # hyper - tab : yabai -m window --focus stack.next || yabai -m window --focus next || yabai -m window --focus first hyper - up : yabai -m window --stack north hyper - right : yabai -m window --stack east hyper - down : yabai -m window --stack south hyper - left : yabai -m window --stack west # Make focused window stack starter # hyper - tab : yabai -m query --spaces --space \ # | jq -re ".index" \ # | xargs -I{} yabai -m query --windows --space {} \ # | jq -sre "add | sort_by(.display, .frame.x, .frame.y, .id) | nth(index(map(select(.focused == 1)))).id" \ # | xargs -I{} yabai -m window {} --insert stack