diff options
Diffstat (limited to 'mac/.config/yabai/yabairc')
| -rw-r--r-- | mac/.config/yabai/yabairc | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/mac/.config/yabai/yabairc b/mac/.config/yabai/yabairc new file mode 100644 index 0000000..a717336 --- /dev/null +++ b/mac/.config/yabai/yabairc @@ -0,0 +1,102 @@ +#!/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 Terminal +yabai -m space 2 --label Code +yabai -m space 3 --label Browser +yabai -m space 4 --label Notes +yabai -m space 5 --label Temp +yabai -m space 6 --label Finder +yabai -m space 7 --label Settings +yabai -m space 8 --label Media +yabai -m space 9 --label Messenger +yabai -m space 10 --label Mail + +# window rules +yabai -m rule --add app="^kitty$" space=1 +yabai -m rule --add app="^Code$" space=2 +yabai -m rule --add app="^Safari$" space=3 +yabai -m rule --add app="^Google Chrome$" space=3 +yabai -m rule --add app="^Firefox$" space=3 +yabai -m rule --add app="^(Microsoft Word|Preview|Notes|Obsidian|Anki)$" space=4 +yabai -m rule --add app="^Excel$" space=4 manage=off +yabai -m rule --add app="^(MySQLWorkbench|DBeaver)$" space=5 +yabai -m rule --add app="^Finder$" space=6 +yabai -m rule --add app="^(universalAccessAuthWarn|Activity Monitor|Archive Utility|Alfred Preferences|Bartender 5|BetterTouchTool|Karabiner-Elements|System Settings)$" space=7 +yabai -m rule --add app="^IINA$" space=8 +yabai -m rule --add app="^Music$" space=8 +yabai -m rule --add app="^Spotify$" space=8 +yabai -m rule --add app="^Discord$" space=9 grid=1:1:0:0:1:1 +yabai -m rule --add app="^Messages$" space=9 grid=1:1:0:0:1:1 +yabai -m rule --add app="^KakaoTalk$" space=9 grid=1:1:0:0:1:1 +yabai -m rule --add app="^WeChat$" space=9 grid=1:1:0:0:1:1 +yabai -m rule --add app="^WhatsApp$" space=9 grid=1:1:0:0:1:1 +yabai -m rule --add app="^Log in$" space=9 grid=1:1:0:0:1:1 manage=off +yabai -m rule --add app="^Mail$" space=10 grid=1:1:0:0:1:1 +yabai -m rule --add app="^Thunderbird$" space=10 grid=1:1:0:0:1:1 +yabai -m rule --add app="^FaceTime$" manage=off +yabai -m rule --add app="^CleanShot X$" 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 + +# 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 bsp/float/stack +yabai -m config --space 1 layout bsp +yabai -m config --space 2 layout bsp +yabai -m config --space 3 layout bsp +yabai -m config --space 4 layout bsp +yabai -m config --space 5 layout bsp +yabai -m config --space 6 layout bsp +yabai -m config --space 7 layout float +yabai -m config --space 8 layout bsp +yabai -m config --space 9 layout bsp +yabai -m config --space 0 layout float + +# global settings +yabai -m config \ + \ + mouse_follows_focus on \ + focus_follows_mouse autoraise \ + window_placement first_child \ + window_topmost off \ + window_shadow off \ + window_opacity on \ + window_opacity_duration 0.25 \ + active_window_opacity 0.90 \ + normal_window_opacity 0.50 \ + window_animation_duration 0.25 \ + insert_feedback_color 0xaad75f5f \ + split_ratio 0.50 \ + split_type auto \ + auto_balance off \ + mouse_modifier ctrl \ + mouse_action1 move \ + mouse_action2 resize \ + mouse_drop_action swap \ + layout bsp \ + top_padding 10 \ + left_padding 10 \ + right_padding 10 \ + bottom_padding 35 \ + window_gap 10 # external_bar all:32:0 \ + +# sketchybar +yabai -m signal --add event=window_focused action="sketchybar --trigger window_focus" +yabai -m signal --add event=display_added action="sleep 3 && $HOME/.config/yabai/create_spaces.sh" +yabai -m signal --add event=display_removed action="sleep 3 && $HOME/.config/yabai/create_spaces.sh" +yabai -m signal --add event=window_created action="sketchybar -m --trigger window_change &> /dev/null" +yabai -m signal --add event=window_destroyed action="sketchybar -m --trigger window_change &> /dev/null" + +# borders +borders \ + style=squre \ + active_color=0xff00ff00 \ + width=6 \ + hidpi=on & |
