blob: 9e8505190bae80bcb18a900b8c9c816b52c93a4e (
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
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
|
# open terminal
# alt - return : /Applications/Kitty.app/Contents/MacOS/kitty --single-instance -d ~ &> /dev/null
# # open mpv with url from clipboard
# shift + cmd - m : mpv $(pbpaste)
# focus window
alt - z : yabai -m window --focus recent
alt - h : yabai -m window --focus west
alt - j : yabai -m window --focus south
alt - k : yabai -m window --focus north
alt - l : yabai -m window --focus east
alt - 0x2B : yabai -m window --focus stack.prev # alt + ,
alt - 0x2F : yabai -m window --focus stack.next # alt + .
# swap window
alt + ctrl - z : yabai -m window --swap recent
alt + ctrl - h : yabai -m window --swap west
alt + ctrl - j : yabai -m window --swap south
alt + ctrl - k : yabai -m window --swap north
alt + ctrl - l : yabai -m window --swap east
# move window
cmd + ctrl - h : yabai -m window --warp west
cmd + ctrl - j : yabai -m window --warp south
cmd + ctrl - k : yabai -m window --warp north
cmd + ctrl - l : yabai -m window --warp east
# balance size of windows
alt - 0x18 : yabai -m space --balance
# toggle window float
cmd + shift - return : yabai -m window --toggle float --grid 4:4:1:1:2:2
# make floating window fill screen
cmd + shift - f : yabai -m window --grid 1:1:0:0:1:4
# make floating window fill top-left of screen
cmd + shift - u : yabai -m window --grid 2:2:0:0:0:0
# make floating window fill top-right of screen
cmd + shift - i : yabai -m window --grid 2:2:1:0:0:0
# make floating window fill bottom-left of screen
cmd + shift - m : yabai -m window --grid 2:2:0:1:0:0
# make floating window fill bottom-right of screen
cmd + shift - 0x2B : yabai -m window --grid 2:2:1:1:4:4
# make floating window fill top-half of screen
cmd + shift - k : yabai -m window --grid 4:4:0:0:4:2
# make floating window fill bottom-half of screen
cmd + shift - j : yabai -m window --grid 2:2:0:1:4:4
# make floating window fill left-half of screen
cmd + shift - h : yabai -m window --grid 1:2:0:0:1:1
# make floating window fill right-half of screen
cmd + shift - l : yabai -m window --grid 1:2:1:0:1:1
# # create desktop, move window and follow focus - uses jq for parsing json (brew install jq)
alt + shift - w : yabai -m space --create && \
index="$(yabai -m query --spaces --display | jq 'map(select(."native-fullscreen" == 0))[-1].index')" && \
yabai -m window --space "${index}" && \
yabai -m space --focus "${index}"
# # create desktop and follow focus - uses jq for parsing json (brew install jq)
alt + ctrl - w : yabai -m space --create && \
index="$(yabai -m query --spaces --display | jq 'map(select(."native-fullscreen" == 0))[-1].index')" && \
yabai -m space --focus "${index}"
# destroy desktop
# cmd + alt - w : yabai -m space --destroy
alt + ctrl - x : yabai -m space --focus prev && yabai -m space recent --destroy
# fast focus desktop
alt - 0x32 : yabai -m space --focus recent
alt - 0x21 : yabai -m space --focus prev || skhd -k "ctrl + alt + cmd - p"
alt - 0x1E : yabai -m space --focus next || skhd -k "ctrl + alt + cmd - n"
alt - 1 : yabai -m space --focus 1 || skhd -k "ctrl + alt + cmd - 1"
alt - 2 : yabai -m space --focus 2 || skhd -k "ctrl + alt + cmd - 2"
alt - 3 : yabai -m space --focus 3 || skhd -k "ctrl + alt + cmd - 3"
alt - 4 : yabai -m space --focus 4 || skhd -k "ctrl + alt + cmd - 4"
alt - 5 : yabai -m space --focus 5 || skhd -k "ctrl + alt + cmd - 5"
alt - 6 : yabai -m space --focus 6 || skhd -k "ctrl + alt + cmd - 6"
alt - 7 : yabai -m space --focus 7 || skhd -k "ctrl + alt + cmd - 7"
alt - 8 : yabai -m space --focus 8 || skhd -k "ctrl + alt + cmd - 8"
alt - 9 : yabai -m space --focus 9 || skhd -k "ctrl + alt + cmd - 9"
alt - 0 : yabai -m space --focus 10 || skhd -k "ctrl + alt + cmd - 0"
alt + cmd - 1 : yabai -m space --focus 11 || skhd -k "ctrl + alt + cmd - 11"
alt + cmd - 2 : yabai -m space --focus 12 || skhd -k "ctrl + alt + cmd - 12"
alt + cmd - 3 : yabai -m space --focus 13 || skhd -k "ctrl + alt + cmd - 13"
alt + cmd - 4 : yabai -m space --focus 14 || skhd -k "ctrl + alt + cmd - 14"
alt + cmd - 5 : yabai -m space --focus 15 || skhd -k "ctrl + alt + cmd - 15"
alt + cmd - 6 : yabai -m space --focus 16 || skhd -k "ctrl + alt + cmd - 16"
alt + cmd - 7 : yabai -m space --focus 17 || skhd -k "ctrl + alt + cmd - 17"
alt + cmd - 8 : yabai -m space --focus 18 || skhd -k "ctrl + alt + cmd - 18"
alt + cmd - 9 : yabai -m space --focus 19 || skhd -k "ctrl + alt + cmd - 19"
alt + cmd - 0 : yabai -m space --focus 20 || skhd -k "ctrl + alt + cmd - 20"
# send window to desktop
alt + ctrl - 0x21 : yabai -m window --space prev
alt + ctrl - 0x1E : yabai -m window --space next
alt + ctrl - 1 : yabai -m window --space 1
alt + ctrl - 2 : yabai -m window --space 2
alt + ctrl - 3 : yabai -m window --space 3
alt + ctrl - 4 : yabai -m window --space 4
alt + ctrl - 5 : yabai -m window --space 5
alt + ctrl - 6 : yabai -m window --space 6
alt + ctrl - 7 : yabai -m window --space 7
alt + ctrl - 8 : yabai -m window --space 8
alt + ctrl - 9 : yabai -m window --space 9
alt + ctrl - 0 : yabai -m window --space 10
# send window to desktop and follow focus
alt + shift - 0x32 : yabai -m window --space recent && yabai -m space --focus recent
alt + shift - 0x21 : yabai -m window --space prev && skhd -k "ctrl + alt + cmd - p" || yabai -m space --focus prev
alt + shift - 0x1E : yabai -m window --space next && skhd -k "ctrl + alt + cmd - n" || yabai -m space --focus next
alt + shift - 1 : yabai -m window --space 1 && skhd -k "ctrl + alt + cmd - 1" || yabai -m space --focus 1
alt + shift - 2 : yabai -m window --space 2 && skhd -k "ctrl + alt + cmd - 2" || yabai -m space --focus 2
alt + shift - 3 : yabai -m window --space 3 && skhd -k "ctrl + alt + cmd - 3" || yabai -m space --focus 3
alt + shift - 4 : yabai -m window --space 4 && skhd -k "ctrl + alt + cmd - 4" || yabai -m space --focus 4
alt + shift - 5 : yabai -m window --space 5 && skhd -k "ctrl + alt + cmd - 5" || yabai -m space --focus 5
alt + shift - 6 : yabai -m window --space 6 && skhd -k "ctrl + alt + cmd - 6" || yabai -m space --focus 6
alt + shift - 7 : yabai -m window --space 7 && skhd -k "ctrl + alt + cmd - 7" || yabai -m space --focus 7
alt + shift - 8 : yabai -m window --space 8 && skhd -k "ctrl + alt + cmd - 8" || yabai -m space --focus 8
alt + shift - 9 : yabai -m window --space 9 && skhd -k "ctrl + alt + cmd - 9" || yabai -m space --focus 9
alt + shift - 0 : yabai -m window --space 10 && skhd -k "ctrl + alt + cmd - 0" || yabai -m space --focus 0
# focus monitor
cmd + ctrl - z : yabai -m display --focus recent
cmd + ctrl - 0x21 : yabai -m display --focus prev
cmd + ctrl - 0x1E : yabai -m display --focus next
cmd + ctrl - 1 : yabai -m display --focus 1
cmd + ctrl - 2 : yabai -m display --focus 2
cmd + ctrl - 3 : yabai -m display --focus 3
# send window to monitor and follow focus
cmd + shift - r : yabai -m window --display recent && yabai -m display --focus recent
cmd + shift - 0x21 : yabai -m window --display prev && yabai -m display --focus prev
cmd + shift - 0x1E : yabai -m window --display next && yabai -m display --focus next
cmd + shift - 1 : yabai -m window --display 1 && yabai -m display --focus 1
cmd + shift - 2 : yabai -m window --display 2 && yabai -m display --focus 2
cmd + shift - 3 : yabai -m window --display 3 && yabai -m display --focus 3
# move window
ctrl + shift - h : yabai -m window --move rel:-20:0
ctrl + shift - j : yabai -m window --move rel:0:20
ctrl + shift - k : yabai -m window --move rel:0:-20
ctrl + shift - l : yabai -m window --move rel:20:0
# increase window size
alt + ctrl - a : yabai -m window --resize left:-20:0
alt + ctrl - s : yabai -m window --resize bottom:0:20
alt + ctrl - w : yabai -m window --resize top:0:-20
alt + ctrl - d : yabai -m window --resize right:20:0
# decrease window size
cmd + ctrl - a : yabai -m window --resize left:20:0
cmd + ctrl - s : yabai -m window --resize bottom:0:-20
cmd + ctrl - w : yabai -m window --resize top:0:20
cmd + ctrl - d : yabai -m window --resize right:-20:0
# set insertion point in focused container
cmd + ctrl - 0x7B : yabai -m window --insert west
cmd + ctrl - 0x7D : yabai -m window --insert south
cmd + ctrl - 0x7E : yabai -m window --insert north
cmd + ctrl - 0x7C : yabai -m window --insert east
cmd + ctrl - i : yabai -m window --insert stack
# rotate tree
alt - r : yabai -m space --rotate 90
# mirror tree y-axis
alt - y : yabai -m space --mirror y-axis
# mirror tree x-axis
alt - x : yabai -m space --mirror x-axis
# toggle desktop offset
alt - d : yabai -m space --toggle padding --toggle gap
# toggle window parent zoom
alt + ctrl - f : yabai -m window --toggle zoom-parent
# toggle window fullscreen zoom
alt - f : yabai -m window --toggle zoom-fullscreen
# toggle window native fullscreen
alt + shift - f : yabai -m window --toggle native-fullscreen
# toggle window split type
alt - s : yabai -m window --toggle split
# float / unfloat window and restore position
alt - t : yabai -m window --toggle float && /tmp/yabai-restore/$(yabai -m query --windows --window | jq -re '.id').restore 2>/dev/null || true
# toggle sticky (show on all spaces)
alt - 0x27 : yabai -m window --toggle sticky
# toggle topmost (keep above other windows)
alt - o : yabai -m window --toggle topmost
# toggle picture-in-picture
alt - i : yabai -m window --toggle border --toggle pip
# change layout of desktop
# alt + ctrl - 1 : yabai -m space --layout bsp
# alt + ctrl - 2 : yabai -m space --layout float
alt + ctrl - t : yabai -m space --layout $(yabai -m query --spaces --space | jq -r 'if .type == "bsp" then "float" else "bsp" end')
###########################################################
### --- Starting/Stopping/Restarting Yabai
###########################################################
# stop/start/restart yabai
alt + cmd + ctrl - q : yabai --stop-service
alt + cmd + ctrl - s : yabai --start-service
alt + cmd + ctrl - r : yabai --restart-service
alt + cmd + shift - q : skhd --stop-service
alt + cmd + shift - s : skhd --start-service
alt + cmd + shift - r : skhd --restart-service
|