summaryrefslogtreecommitdiff
path: root/mac/.config/yabai/yabairc
blob: a717336749d547c7a495281d9cb437b610fbea3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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 &