#!/usr/bin/env sh # necessary to load scripting-addition during startup on macOS Big Sur # *yabai --load-sa* is configured to run through sudo without a password sudo yabai --load-sa yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa" # mission-control desktop labels yabai -m space 1 --label code yabai -m space 2 --label web yabai -m space 3 --label mail yabai -m space 4 --label chat yabai -m space 5 --label social yabai -m space 6 --label notes yabai -m space 7 --label media yabai -m space 8 --label games # window rules yabai -m rule --add app="^WezTerm$" space=code yabai -m rule --add app="^(Safari|Firefox)$" space=web yabai -m rule --add app="^Mail$" space=mail yabai -m rule --add app="^Element$" space=chat yabai -m rule --add app="^Discord$" space=social grid=1:1:0:0:1:1 manage=off yabai -m rule --add app="^(Notes|Joplin)$" space=notes yabai -m rule --add app="^(Spotify|Fineamp|Musik)$" space=media yabai -m rule --add app="^Steam Helper$" space=games manage=off # Advanced Window rules yabai -m rule --add app="^(Calculator|Rechner|System Preferences|Systemeinstellungen|Einstellungen|System Settings|Preferences|Aktivitätsanzeige|Archive Utility)$" manage=off yabai -m rule --add app="^mpv$" manage=off border=off sticky=on layer=above opacity=1.0 grid=8:8:6:0:2:2 yabai -m rule --add app="^(JetBrains Toolbox|PyCharm)$" manage=off yabai -m rule --add app="^choose$" manage=off # show digital colour meter topmost and on all spaces yabai -m rule --add app="^Digital Colou?r Meter$" sticky=on # refresh my Übersicht bar when the space changes yabai -m signal --add event=space_changed \ action="osascript -e 'tell application \"Übersicht\" to refresh widget id \"spaces-widget\"'" # signals yabai -m signal --add event=window_destroyed active=yes action="yabai -m query --windows --window &> /dev/null || yabai -m window --focus mouse &> /dev/null || yabai -m window --focus \$(yabai -m query --windows --space | jq .[0].id) &> /dev/null" yabai -m signal --add event=window_minimized active=yes action="if \$(yabai -m query --windows --window \$YABAI_WINDOW_ID | jq -r '.\"is-floating\"'); then yabai -m query --windows --window &> /dev/null || yabai -m window --focus mouse &> /dev/null || yabai -m window --focus \$(yabai -m query --windows --space | jq .[0].id) &> /dev/null; fi" # specific space settings yabai -m config --space mail layout stack yabai -m config --space games layout float # global settings yabai -m config \ mouse_follows_focus off \ focus_follows_mouse autoraise \ window_origin_display default \ window_placement second_child \ window_zoom_persist on \ window_topmost off \ window_shadow on \ window_animation_duration 0.0 \ window_animation_frame_rate 120 \ window_opacity_duration 0.0 \ active_window_opacity 1.0 \ normal_window_opacity 0.90 \ window_opacity off \ insert_feedback_color 0xffd75f5f \ active_window_border_color 0xff775759 \ normal_window_border_color 0xff555555 \ window_border_width 4 \ window_border_radius 12 \ window_border_blur off \ window_border_hidpi on \ window_border off \ split_ratio 0.50 \ split_type auto \ auto_balance off \ top_padding 12 \ bottom_padding 12 \ left_padding 12 \ right_padding 12 \ window_gap 06 \ layout bsp \ mouse_modifier fn \ mouse_action1 move \ mouse_action2 resize \ mouse_drop_action swap echo "yabai configuration loaded.."