summaryrefslogtreecommitdiff
path: root/mac/.config/yabai/yabairc
diff options
context:
space:
mode:
Diffstat (limited to 'mac/.config/yabai/yabairc')
-rw-r--r--mac/.config/yabai/yabairc102
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 &