-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathskhdrc
103 lines (84 loc) · 3.29 KB
/
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
# prevents skhd from monitoring events for listed processes.
.blacklist [
"terminal"
# "kitty"
# "google chrome"
# "firefox"
]
# ############################################################### #
# Mode declarations
# hyper + w
:: hyper_w
hyper - w ; hyper_w
hyper_w < hyper - w ; default
# Grow window
# hyper + g
:: hyper_g
hyper - g ; hyper_g
hyper_g < hyper - g ; default
# Shrink window
# hyper + s
:: hyper_s
hyper - s ; hyper_s
hyper_s < hyper - s ; default
# End mode declarations
# focus window
hyper - h : yabai -m window --focus west
hyper - l : yabai -m window --focus east
hyper - j : yabai -m window --focus south
hyper - k : yabai -m window --focus north
# create space, move window and follow focus - uses jq for parsing json (brew install jq)
shift + ctrl + alt + cmd - c : 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}"
# fast focus space
hyper - 1 : yabai -m space --focus 1
hyper - 2 : yabai -m space --focus 2
hyper - 3 : yabai -m space --focus 3
hyper - 4 : yabai -m space --focus 4
hyper - 5 : yabai -m space --focus 5
hyper - 6 : yabai -m space --focus 6
hyper - 7 : yabai -m space --focus 7
hyper - 8 : yabai -m space --focus 8
hyper - 9 : yabai -m space --focus 9
# previously accessed space
hyper - 0 : yabai -m space --focus recent
# swap spaces
# comma
hyper_w < 0x2F : yabai -m space --swap next
# dot
hyper_w < 0x2B : yabai -m space --swap prev
# next | prev space
# Focus next space of current display. No-op if the current space is the last space of its display.
hyper - n : if [[ $(yabai -m query --spaces --display | jq '.[-1]."has-focus"') == "false" ]]; then yabai -m space --focus next; fi
# Focus previous space of current display. No-op if the current space is the first space of its display.
hyper - p : if [[ $(yabai -m query --spaces --display | jq '.[0]."has-focus"') == "false" ]]; then yabai -m space --focus prev; fi
# Rotatte windows 90
hyper - r : yabai -m space --rotate 90
# Destroys current space
hyper - q : yabai -m space --destroy
# Move windows in current space
hyper_w < h : yabai -m window --swap west
hyper_w < j : yabai -m window --swap south
hyper_w < k : yabai -m window --swap north
hyper_w < l : yabai -m window --swap east
# Move window to next space and focus on it
hyper_w < n : yabai -m window --space next && yabai -m window --focus recent
# Move window to prev space and focus on it
hyper_w < p : yabai -m window --space prev && yabai -m window --focus recent
# Move window to recent display and focus on it
hyper_w < d : yabai -m window --display recent && yabai -m window --focus recent
# Resize windows
hyper_g < h : yabai -m window --resize left:-20:0
hyper_g < l : yabai -m window --resize right:20:0
hyper_g < j : yabai -m window --resize bottom:0:20 done
hyper_g < k : yabai -m window --resize top:0:-20 done
hyper_s < l : yabai -m window --resize left:20:0
hyper_s < h : yabai -m window --resize right:-20:0
hyper_s < j : yabai -m window --resize top:0:20 done
hyper_s < k : yabai -m window --resize bottom:0:-20
# Toggle float
hyper - f : yabai -m window --toggle float
# Switch to the next display
hyper - d : yabai -m display --focus recent