-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathyabairc
More file actions
126 lines (100 loc) · 5.25 KB
/
Copy pathyabairc
File metadata and controls
126 lines (100 loc) · 5.25 KB
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/usr/bin/env sh
# ===== Loading Scripting Additions ============
# See: https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(latest-release)#macos-big-sur---automatically-load-scripting-addition-on-startup
sudo yabai --load-sa
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
# ===== Tiling setting =========================
yabai -m config layout bsp
yabai -m config menubar_opacity 0.0
yabai -m config top_padding 1
yabai -m config bottom_padding 1
yabai -m config left_padding 1
yabai -m config right_padding 1
yabai -m config window_gap 1
yabai -m config mouse_follows_focus off
yabai -m config focus_follows_mouse off
yabai -m config window_topmost off
yabai -m config window_opacity on
yabai -m config window_opacity_duration 0.15
yabai -m config window_shadow float
yabai -m config active_window_opacity 1.0
yabai -m config normal_window_opacity 0.95
yabai -m config split_ratio 0.50
yabai -m config auto_balance off
# ===== Mouse support ==========================
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
# ===== Window modifications ===================
yabai -m config window_placement second_child
yabai -m config window_animation_duration 0.35
yabai -m config window_animation_easing ease_out_quint
yabai -m config insert_feedback_color 0xff61afef
# ===== External bar support ===================
# Account for sketchybar height
yabai -m config external_bar all:34:0
# ===== Status bar support =====================
SKETCHYBAR_TRIGGER="$HOME/.config/yabai/scripts/sketchybar_trigger.sh"
# Keep signals idempotent across yabairc reloads. Remove both current labels and
# labels from older versions of this config.
for label in \
sketchybar_window_focus \
sketchybar_windows_on_spaces_created \
sketchybar_windows_on_spaces_destroyed \
sketchybar_windows_on_spaces_minimized \
sketchybar_windows_on_spaces_deminimized \
sketchybar_windows_on_spaces_moved \
sketchybar_space_change \
sketchybar_display_change \
sketchybar_space_windows_created \
sketchybar_space_windows_destroyed \
sketchybar_space_windows_moved \
sketchybar_space_windows_space_changed \
sketchybar_space_windows_display_changed \
ghostty_layout_created \
ghostty_layout_destroyed
do
yabai -m signal --remove "$label" >/dev/null 2>&1 || true
done
# Only send the custom event that this sketchybar config subscribes to. Avoid
# flooding sketchybar with unused window_focus/windows_on_spaces triggers. The
# wrapper times out so a hung sketchybar cannot leave stuck trigger clients.
yabai -m signal --add label=sketchybar_space_windows_created event=window_created action="$SKETCHYBAR_TRIGGER space_windows_change"
yabai -m signal --add label=sketchybar_space_windows_destroyed event=window_destroyed action="$SKETCHYBAR_TRIGGER space_windows_change"
yabai -m signal --add label=sketchybar_space_windows_moved event=window_moved action="$SKETCHYBAR_TRIGGER space_windows_change"
yabai -m signal --add label=sketchybar_space_windows_space_changed event=space_changed action="$SKETCHYBAR_TRIGGER space_windows_change"
yabai -m signal --add label=sketchybar_space_windows_display_changed event=display_changed action="$SKETCHYBAR_TRIGGER space_windows_change"
# Ghostty Fix
yabai -m signal --add label=ghostty_layout_created app='^Ghostty$' event=window_created action='yabai -m space --layout bsp'
yabai -m signal --add label=ghostty_layout_destroyed app='^Ghostty$' event=window_destroyed action='yabai -m space --layout bsp'
# ===== Rules ==================================
# Unmanaged apps
yabai -m rule --add app="^System Settings$" manage=off
yabai -m rule --add app="^System Information$" manage=off
yabai -m rule --add app="^System Preferences$" manage=off
yabai -m rule --add app="^Archive Utility$" manage=off
yabai -m rule --add app="^Finder$" manage=off
yabai -m rule --add app="^Alfred Preferences$" manage=off
yabai -m rule --add app="^Disk Utility$" manage=off
yabai -m rule --add app="^Activity Monitor$" manage=off
yabai -m rule --add app="^Path Finder$" manage=off
yabai -m rule --add app="^Calculator$" manage=off
yabai -m rule --add app="^Dictionary$" manage=off
yabai -m rule --add app="^Software Update$" manage=off
yabai -m rule --add app="^About This Mac$" manage=off
yabai -m rule --add app="^Installer$" manage=off
yabai -m rule --add app="^Numi$" manage=off
yabai -m rule --add app="^Console$" manage=off
yabai -m rule --add app="^Bluetooth Explorer$" manage=off
yabai -m rule --add app="^Logi Options$" manage=off
yabai -m rule --add app="^Private Internet Access$" manage=off
# Float specific windows
yabai -m rule --add app="^zoom.us$" manage=off
yabai -m rule --add app="^Facetime$" manage=off
yabai -m rule --add app="^Messages$" sticky=on manage=off
yabai -m rule --add title="^Opening$" manage=off
yabai -m rule --add title="^Copy$" manage=off
yabai -m rule --add title="^(Moving|Copying)$" manage=off
# ===== Initialization =========================
echo "yabai configuration loaded..."