-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathyabai_skhdrc
279 lines (227 loc) · 11.7 KB
/
yabai_skhdrc
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
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
# SKHDRC
#
# WIP: attempting regolith/i3wm equivalence
#
# Not Working
# fn - arrows
# focus spaces (SIP?)
#
# Mod = fn
# possible alternatives:
# Alt
# Control, since CapsLock can be Control
# Unicode and Hex Keyboard symbols
# ⌘ – ⌘ – ⌘ – the Command Key symbol
# ⌥ – ⌥ – ⌥ – the Option Key symbol
# ⇧ – ⇧ – ⇧ – the Shift Key (really just an outline up-arrow, not Mac-specific)
#
# ⇥ – ⇥ – ⇥ – the Tab Key symbol
# ⏎ – ⏎ – ⏎ – the Return Key symbol
# ⌫ – ⌫ – ⌫ – the Delete Key symbol
# ## <Category> // <Action> // <Keybinding> ##
# Not supported/possible?
# ## Modify // Load Window Layout // <fn> . ##
# ## Modify // Save Window Layout // <fn> , ##
# ## Modify // Move to Scratchpad // <fn><Ctrl> m ##
# ## Navigate // Scratchpad // <fn><Ctrl> a ##
# ## Modify // Toggle Bar // <fn> i ##
# ## Modify // Tile/Float Focus Toggle // <fn><Shift> t ##
# ## Launch // Command // <fn><Shift> Space ##
# Not worked out yet
# ## Modify // Move Space to Display 1..n // <fn>?? - 1..n ##
# ## Navigate // Window by Name // <fn><Ctrl> Space ##
# TODO use yabai -m query
# Handled by native macos stuff, can't be remapped(?)
## Launch // Application // <⌘> Space ##
## Launch // File Search // <⌘><Alt> Space ##
## Launch // Notification Viewer // <Ctrl><⌥><⌘><Shift> n ##
## Modify // Window Layout Mode // <fn> t ##
fn - t : yabai -m space --layout "$([ "$(yabai -m query --spaces --space | jq '.type')" = '"bsp"' ] && echo float || echo bsp)"
## Modify // Next Window Orientation // <fn><Shift> delete ##
fn + shift - 0x75 : yabai -m space --rotate 90 # fn - delete = 0x75
## Modify // Bluetooth Settings // <fn> b ##
fn - b : osascript -e 'tell application "System Preferences"' -e 'activate' -e 'set current pane to pane "com.apple.preferences.Bluetooth"' -e 'end tell'
## Modify // Display Settings // <fn> d ##
fn - d : osascript -e 'tell application "System Preferences"' -e 'activate' -e 'set current pane to pane "com.apple.preferences.displays"' -e 'end tell'
## Modify // Wifi Settings // <fn> w ##
fn - w : osascript -e 'tell application "System Preferences"' -e 'activate' -e 'set current pane to pane "com.apple.preferences.network"' -e 'end tell'
## Modify // Settings // <fn> c ##
fn - c : osascript -e 'tell application "System Preferences" to activate'
## Session // Logout // <fn><Shift> e ##
fn + shift - e : osascript -e 'tell application "System Events" to log out'
## Session // Reload Yabai Config // <fn><Shift> c ##
fn + shift - c : command "$HOME/.yabairc"
## Session // Reload Key Bindings // <fn><Shift> r ##
fn + shift - r : skhd -r
## Session // Restart Yabai // <fn><Ctrl> r ##
fn + ctrl - r : launchctl kickstart -k "gui/${UID}/homebrew.mxcl.yabai"
## Session // Reboot // <fn><Shift> b ##
fn + shift - b : osascript -e 'tell app "loginwindow" to «event aevtrrst»'
## Session // Force Reboot // <fn><Shift><Control> b ##
fn + shift + ctrl - b : osascript -e 'tell app "System Events" to restart'
## Session // Sleep // <fn><Shift> s ##
fn + shift - s : pmset sleepnow
## Session // Power Down // <fn><Shift> p ##
fn + shift - p : osascript -e 'tell app "System Events" to shut down'
## Session // Lock Screen // <fn> Escape ##
fn - escape : python -c 'import ctypes; ctypes.CDLL("/System/Library/PrivateFrameworks/login.framework/Versions/Current/login").SACLockScreenImmediate()'
## Navigate // Relative Window // <fn> k j h l ##
fn - h : yabai -m window --focus west
fn - j : yabai -m window --focus south
fn - k : yabai -m window --focus north
fn - l : yabai -m window --focus east
# ## Navigate // Relative Window // <fn> ↑ ↓ ← → ##
#fn - left : yabai -m window --focus west
#fn - down : yabai -m window --focus south
#fn - up : yabai -m window --focus north
#fn - right : yabai -m window --focus east
# ## Navigate // Next Workspace // <fn><Alt> → ##
#fn + alt - right : yabai -m space --focus next
## Navigate // Next Workspace // <fn> Tab ##
fn - tab : yabai -m space --focus next
# ## Navigate // Previous Workspace // <fn><Alt> ← ##
#fn + alt - left : yabai -m space --focus prev
## Navigate // Previous Workspace // <fn><Shift> Tab ##
fn + shift - tab : yabai -m space --focus prev
## Navigate // Workspaces 1-10 // <fn> 0..9 ##
fn - 1 : yabai -m space --focus 1
fn - 2 : yabai -m space --focus 2
fn - 3 : yabai -m space --focus 3
fn - 4 : yabai -m space --focus 4
fn - 5 : yabai -m space --focus 5
fn - 6 : yabai -m space --focus 6
fn - 7 : yabai -m space --focus 7
fn - 8 : yabai -m space --focus 8
fn - 9 : yabai -m space --focus 9
fn - 0 : yabai -m space --focus 10
## Navigate // Workspace 11 - 19 // <fn><Ctrl> 1..9 ##
fn + ctrl - 1 : yabai -m space --focus 11
fn + ctrl - 2 : yabai -m space --focus 12
fn + ctrl - 3 : yabai -m space --focus 13
fn + ctrl - 4 : yabai -m space --focus 14
fn + ctrl - 5 : yabai -m space --focus 15
fn + ctrl - 6 : yabai -m space --focus 16
fn + ctrl - 7 : yabai -m space --focus 17
fn + ctrl - 8 : yabai -m space --focus 18
fn + ctrl - 9 : yabai -m space --focus 19
## Modify // Window Swap // <fn><Shift> k j h l ##
fn + shift - h : yabai -m window --swap west
fn + shift - j : yabai -m window --swap south
fn + shift - k : yabai -m window --swap north
fn + shift - l : yabai -m window --swap east
# ## Modify // Window Position // <fn><Ctrl> ↑ ↓ ← → ##
#fn + ctrl - left : yabai -m window --warp west
#fn + ctrl - down : yabai -m window --warp south
#fn + ctrl - up : yabai -m window --warp north
#fn + ctrl - right : yabai -m window --warp east
## Modify // Window Position // <fn><Ctrl> k j h l ##
fn + ctrl - h : yabai -m window --warp west
fn + ctrl - j : yabai -m window --warp south
fn + ctrl - k : yabai -m window --warp north
fn + ctrl - l : yabai -m window --warp east
## Modify // Carry Window to Workspace 1 - 10 // <fn><Alt> 0..9 ##
fn + alt - 1 : yabai -m window --space 1 && yabai -m space --focus 1
fn + alt - 2 : yabai -m window --space 2 && yabai -m space --focus 2
fn + alt - 3 : yabai -m window --space 3 && yabai -m space --focus 3
fn + alt - 4 : yabai -m window --space 4 && yabai -m space --focus 4
fn + alt - 5 : yabai -m window --space 5 && yabai -m space --focus 5
fn + alt - 6 : yabai -m window --space 6 && yabai -m space --focus 6
fn + alt - 7 : yabai -m window --space 7 && yabai -m space --focus 7
fn + alt - 8 : yabai -m window --space 8 && yabai -m space --focus 8
fn + alt - 9 : yabai -m window --space 9 && yabai -m space --focus 9
fn + alt - 0 : yabai -m window --space 10 && yabai -m space --focus 10
## Modify // Carry Window to Workspace 11 - 19 // <fn><Alt><Ctrl> 1..9 ##
fn + alt + ctrl - 1 : yabai -m window --space 11 && yabai -m space --focus 11
fn + alt + ctrl - 2 : yabai -m window --space 12 && yabai -m space --focus 12
fn + alt + ctrl - 3 : yabai -m window --space 13 && yabai -m space --focus 13
fn + alt + ctrl - 4 : yabai -m window --space 14 && yabai -m space --focus 14
fn + alt + ctrl - 5 : yabai -m window --space 15 && yabai -m space --focus 15
fn + alt + ctrl - 6 : yabai -m window --space 16 && yabai -m space --focus 16
fn + alt + ctrl - 7 : yabai -m window --space 17 && yabai -m space --focus 17
fn + alt + ctrl - 8 : yabai -m window --space 18 && yabai -m space --focus 18
fn + alt + ctrl - 9 : yabai -m window --space 19 && yabai -m space --focus 19
## Modify // Move Window to Workspace 1 - 10 // <fn><Shift> 0..9 ##
fn + shift - 1 : yabai -m window --space 1
fn + shift - 2 : yabai -m window --space 2
fn + shift - 3 : yabai -m window --space 3
fn + shift - 4 : yabai -m window --space 4
fn + shift - 5 : yabai -m window --space 5
fn + shift - 6 : yabai -m window --space 6
fn + shift - 7 : yabai -m window --space 7
fn + shift - 8 : yabai -m window --space 8
fn + shift - 9 : yabai -m window --space 9
fn + shift - 0 : yabai -m window --space 10
## Modify // Move Window to Workspace 11 - 19// <fn><Ctrl><Shift> 1..9 ##
fn + ctrl + shift - 1 : yabai -m window --space 11
fn + ctrl + shift - 2 : yabai -m window --space 12
fn + ctrl + shift - 3 : yabai -m window --space 13
fn + ctrl + shift - 4 : yabai -m window --space 14
fn + ctrl + shift - 5 : yabai -m window --space 15
fn + ctrl + shift - 6 : yabai -m window --space 16
fn + ctrl + shift - 7 : yabai -m window --space 17
fn + ctrl + shift - 8 : yabai -m window --space 18
fn + ctrl + shift - 9 : yabai -m window --space 19
# Move Mode
:: move : echo "Move mode is live"
## Move // Enter Move Mode // <fn> m ##
fn - m ; move
## Move // Exit Move Mode // Escape or Enter ##
move < hyper - escape ; default
move < return : echo "Exiting move mode"; skhd --key "hyper - escape"
move < escape : echo "Exiting move mode"; skhd --key "hyper - escape"
## Move // Move Window // k j h l ##
move < h : yabai -m window --move rel:-20:0
move < j : yabai -m window --move rel:0:20
move < k : yabai -m window --move rel:0:-20
move < l : yabai -m window --move rel:20:0
## Move // Move Window // ↑ ↓ ← → ##
move < left : yabai -m window --move rel:-20:0
move < down : yabai -m window --move rel:0:20
move < up : yabai -m window --move rel:0:-20
move < right : yabai -m window --move rel:20:0
# Resize Mode
:: resize : echo "Resize mode is live"
## Resize // Enter Resize Mode // <fn> r ##
fn - r ; resize
## Resize // Exit Resize Mode // Escape or Enter ##
resize < hyper - escape ; default
resize < return : echo "Exiting resize mode"; skhd --key "hyper - escape"
resize < escape : echo "Exiting resize mode"; skhd --key "hyper - escape"
## Resize // Resize Window // k j h l ##
resize < h : yabai -m window --resize left:-20:0 ; yabai -m window --resize right:-20:0
resize < j : yabai -m window --resize bottom:0:20 ; yabai -m window --resize top:0:20
resize < k : yabai -m window --resize top:0:-20 ; yabai -m window --resize bottom:0:-20
resize < l : yabai -m window --resize right:20:0 ; yabai -m window --resize left:20:0
## Resize // Resize Window // ↑ ↓ ← → ##
resize < left : yabai -m window --resize left:-20:0 ; yabai -m window --resize right:-20:0
resize < down : yabai -m window --resize bottom:0:20 ; yabai -m window --resize top:0:20
resize < up : yabai -m window --resize top:0:-20 ; yabai -m window --resize bottom:0:-20
resize < right : yabai -m window --resize right:20:0 ; yabai -m window --resize left:20:0
## Resize // Window Gaps // + - ##
resize < shift - 0x18 : yabai -m space --gap rel:1
resize < 0x1B : yabai -m space --gap rel:-1
## Resize // Balance Window Size // 0 ##
resize < 0 : yabai -m space --balance ; skhd --key "hyper - escape"
## Launch // Browser // <fn><Shift> Enter ##
fn + shift - 0x4C : command open -n -a "Google Chrome" --args --new-window
## Launch // File Browser // <fn><Shift> n ##
fn + shift - n : open -R ~
## Launch // Terminal // <fn> Enter ##
# 'fn - return' is kVK_ANSI_KeypadEnter = 0x4C
# TODO set alacritty to handle term:,ssh: URL schemes then use open -na term://
fn - 0x4C : open -n -a "/Applications/Alacritty.app"
## Modify // Window Floating Toggle // <fn><Shift> space ##
fn + shift - space : yabai -m window --toggle float
## Modify // Window Fullscreen Toggle // <fn> f ##
fn - f : yabai -m window --toggle zoom-fullscreen
## Session // Exit App // <fn><Shift> q ##
# !!Currently does not close windows that are missing title bar(more so the WM buttons)
fn + shift - q : yabai -m window --close
## Session // Terminate App // <fn><Alt> q ##
fn + alt - q : command kill -KILL $(yabai -m query --windows --window | jq '.pid')
## Modify // Insert Next Window Vertically // <fn><Shift> | ##
fn + shift - 0x2A : yabai -m window --insert east # fn + shift - \
## Modify // Insert Next Window Horizontally // <fn> Minus ##
fn - 0x1B : yabai -m window --insert south # fn - -
# ## Launch // This Dialog // <fn><Shift> ? ##
fn + shift - 0x2C : command "${HOME}/bin/remontoire_html.sh"