-
Notifications
You must be signed in to change notification settings - Fork 0
/
yabairc
executable file
·146 lines (131 loc) · 7.29 KB
/
yabairc
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#!/usr/bin/env sh
# YABAI STUFF
# the scripting-addition must be loaded manually if
# you are running yabai on macOS Big Sur. Uncomment
# the following line to have the injection performed
# when the config is executed during startup.
#
# for this to work you must configure sudo such that
# it will be able to run the command without password
#
# see this wiki page for information:
# - https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(latest-release)
#
# for this to work you must configure sudo such that
# it will be able to run the command without password
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
sudo yabai --load-sa
## global settings
yabai -m config external_bar off
yabai -m config mouse_follows_focus off
yabai -m config focus_follows_mouse off
## New window spawns to the right if vertical split, or bottom if horizontal split
yabai -m config window_placement second_child
## floating windows are always on top (default: off)
yabai -m config window_topmost on
## example: show shadows only for floating windows
yabai -m config window_shadow on
yabai -m config window_opacity off
yabai -m config window_opacity_duration 0.0
yabai -m config active_window_opacity 1.0
yabai -m config normal_window_opacity 0.90
yabai -m config window_border off # (on | off)
yabai -m config window_border_width 6
yabai -m config active_window_border_color 0xff775759
yabai -m config normal_window_border_color 0xff555555
yabai -m config insert_feedback_color 0xffd75f5f
yabai -m config auto_balance on
yabai -m config split_ratio 0.50
## set mouse interaction modifier key (default: fn)
yabai -m config mouse_modifier fn
# set modifier + left-click drag to resize window (default: move)
yabai -m config mouse_action1 move
# set modifier + right-click drag to resize window (default: resize)
yabai -m config mouse_action2 resize
yabai -m config mouse_drop_action stack
# general space settings
# bsp or float (default: bsp)
yabai -m config layout bsp
## Change how yabai looks
yabai -m config top_padding 5
yabai -m config bottom_padding 5
yabai -m config left_padding 5
yabai -m config right_padding 5
yabai -m config window_gap 16
# My custom space names for my 3 monitor setup. These names are used in some of my scripts.
yabai -m space 1 --label one
yabai -m space 2 --label two
yabai -m space 3 --label three
yabai -m space 4 --label four
yabai -m space 5 --label five
yabai -m space 6 --label six
yabai -m space 9 --label nine
# # add 20 padding to the top and 0 padding to the bottom of every space located on the main display
# yabai -m config external_bar all:20:0
# yabai -m config external_bar main:20:0
# add 20 padding to the top and bottom of all spaces regardless of the display it belongs to
# yabai -m config external_bar all:20:20
# float system preferences. Most of these just diable Yabai form resizing them.
yabai -m rule --add app="^系統偏好設定$" sticky=on layer=above manage=off
yabai -m rule --add app="^System Preferences$" sticky=on layer=above manage=off
yabai -m rule --add app="^系統資訊$" sticky=on layer=above manage=off
yabai -m rule --add app="^System Information$" sticky=on layer=above manage=off
yabai -m rule --add app="^活動監視器$" sticky=on layer=above manage=off
yabai -m rule --add app="^Activity Monitor$" sticky=on layer=above manage=off
yabai -m rule --add app="^LINE$" sticky=on layer=normal manage=off
yabai -m rule --add app="^Hammerspoon$" sticky=on layer=above manage=off
yabai -m rule --add app="^Finder$" sticky=on layer=above manage=off
yabai -m rule --add app="^計算機$" sticky=on layer=above manage=off
yabai -m rule --add app="^Calculator$" sticky=on layer=above manage=off
# https://www.cockos.com/licecap/
yabai -m rule --add app="^licecap$" sticky=on layer=above manage=off
yabai -m rule --add app="^Alfred Preferences$" sticky=on layer=above manage=off
yabai -m rule --add app="^Disk Utility$" sticky=on layer=above manage=off
yabai -m rule --add app="^磁碟工具程式$" sticky=on layer=above manage=off
yabai -m rule --add app="^Path Finder$" manage=off
yabai -m rule --add app="^TeamViewer$" sticky=off layer=above manage=off
yabai -m rule --add app="^AppCleaner$" sticky=off layer=above manage=off
yabai -m rule --add app="^iStat Menus$" sticky=off layer=above manage=off
yabai -m rule --add app="^iStat Menus$" manage=off
yabai -m rule --add app="^Flux$" manage=off
yabai -m rule --add app="^Time Out$" manage=off
yabai -m rule --add app="^perl_client_app$" manage=off
yabai -m rule --add app="^CiscoSparkHelper$" manage=off
yabai -m rule --add app="ygo|YGO" manage=off
yabai -m rule --add app="^MyCard$" manage=off
yabai -m rule --add app="^富途牛牛$" manage=off
yabai -m rule --add app="^TradingView$" manage=off
yabai -m rule --add app="^Vivaldi$" manage=off
yabai -m rule --add app="^Simulator$" layer=above manage=on
yabai -m rule --add app="^qemu-system-aarch64$" manage=off
yabai -m rule --add app="^installer$" manage=off
yabai -m rule --add app="^YGO Omega$" manage=off
yabai -m rule --add app="^Telegram$" manage=off
# yabai -m rule --add app="^Google Chrome$" manage=off
# yabai -m rule --add app="^Logi Options$" manage=off
# yabai -m rule --add app="^Cisco Webex Start$" manage=off
# yabai -m rule --add app="^Private Internet Access$" manage=off
# yabai -m rule --add app="^Karabiner-Elements$" sticky=on layer=above manage=off
# yabai -m rule --add app="^Karabiner-EventViewer$" sticky=on layer=above manage=off
# yabai -m rule --add app="^Keka$" sticky=on layer=above manage=off
# yabai -m rule --add app="Fantastical" manage=off
# yabai -m rule --add app="^Spotify$" manage=off
# yabai -m rule --add app="^console$" manage=off
# yabai -m rule --add app="^Harvest$" manage=off
# find ~/Library/Parallels/Applications\ Menus/ -maxdepth 3 -type f | awk -F'/' '{ print $NF; }' | awk '{$1=$1};1' | sort | uniq | tr "\n" "\0" | xargs -0 -I{} yabai -m rule --add app="^{}\$" title=".*" manage=on
## general space settings
# yabai -m config focused_border_skip_floating 1
# yabai -m config --space 3 layout float
# signals
# yabai -m signal --add event=window_destroyed action="yabai -m query --windows --window &> /dev/null || yabai -m window --focus mouse"
# yabai -m signal --add event=space_changed action="yabai -m window --focus $(yabai -m query --windows --window | jq ".id")"
# yabai -m signal --add event=application_terminated action="yabai -m query --windows --window &> /dev/null || yabai -m window --focus mouse"
# testing signals
# yabai -m signal --add event=window_destroyed action="terminal-notifier -message 'window_destroyed'"
# yabai -m signal --add event=application_terminated action="terminal-notifier -message 'application_terminated'"
# yabai -m signal --add event=window_focused action="yabai -m window --toggle zoom-fullscreen"
## If I close the active window, focus on any other visible window.
yabai -m signal --add event=window_destroyed action="bash ~/.config/yabai/scripts/windowFocusOnDestroy.sh"
# yabai -m signal --add event=space_changed action="export CUR_ACTIVE_APP=\"iTerm2\""
echo "yabai configuration loaded.."
#END