#!/usr/bin/env sh # startup - load scripting addition sudo yabai --load-sa yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa" # global settings yabai -m config mouse_follows_focus off yabai -m config focus_follows_mouse off yabai -m config window_placement second_child yabai -m config window_topmost off yabai -m config window_shadow float yabai -m config window_opacity off yabai -m config window_opacity_duration 0.0 yabai -m config active_window_opacity 1.0 yabai -m config normal_window_opacity 0.90 yabai -m config window_border off yabai -m config window_border_width 6 yabai -m config active_window_border_color 0xff775759 yabai -m config normal_window_border_color 0xff555555 yabai -m config insert_feedback_color 0xffd75f5f yabai -m config split_ratio 0.50 yabai -m config auto_balance off yabai -m config mouse_modifier fn yabai -m config mouse_action1 move yabai -m config mouse_action2 resize yabai -m config mouse_drop_action swap # general space settings yabai -m config layout bsp yabai -m config top_padding 12 yabai -m config bottom_padding 12 yabai -m config left_padding 12 yabai -m config right_padding 12 yabai -m config window_gap 06 # Spacebar Integration #SPACEBAR_HEIGHT=$(spacebar -m config height) #yabai -m config external_bar all:$SPACEBAR_HEIGHT:0 # stacking support # yabai -m window --focus $(yabai -m query --windows --space | jq -r 'map(select(."stack-index" == 2)) | .[0].id') # base examples # # stack target_window_sel onto source_window_sel # yabai -m window [] --stack # # # next window is inserted onto source_window_sel # yabai -m window [] --insert stack # # # focus the prev window in a stack # yabai -m window --focus stack.prev # # # focus the next window in a stack # yabai -m window --focus stack.next # # # focus the first window in a stack # yabai -m window --focus stack.first # # # focus the last window in a stack # yabai -m window --focus stack.last # # # focus the most recently focused window in a stack # yabai -m window --focus stack.recent # for swapping from stack or space regardless # forward # yabai -m query --spaces --space \ # | jq -re ".index" \ # | xargs -I{} yabai -m query --windows --space {} \ # | jq -sre "add | map(select(.minimized != 1)) | sort_by(.display, .frame.y, .frame.x, .id) | reverse | nth(index(map(select(.focused == 1))) - 1).id" \ # | xargs -I{} yabai -m window --focus {} # # # backward # yabai -m query --spaces --space \ # | jq -re ".index" \ # | xargs -I{} yabai -m query --windows --space {} \ # | jq -sre "add | map(select(.minimized != 1)) | sort_by(.display, .frame.y, .frame.y, .id) | nth(index(map(select(.focused == 1))) - 1).id" \ # | xargs -I{} yabai -m window --focus {} # finished echo "yabai configuration loaded.."