-
Notifications
You must be signed in to change notification settings - Fork 0
/
skhdrc
executable file
·158 lines (125 loc) · 8.84 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
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
#SKHD
## HYPER == SHIFT + CMD + ALT + OPTION
## Quickly restart the yabai launch agent
ctrl + alt + cmd - r : launchctl kickstart -k "gui/${UID}/homebrew.mxcl.yabai"
## Close active application
#hyper - backspace : $(yabai -m window $(yabai -m query --windows --window | jq -re ".id") --close)
# test a command
# lshift - x : terminal-notifier -message "lshift - x"
#lshift - x : terminal-notifier -message "$(yabai -m query --windows --window | jq -re ".id")"
## open terminal
hyper - t : /System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
## swap window
hyper - y : yabai -m window --swap west
# shift + alt - j : yabai -m window --swap south
# shift + alt - k : yabai -m window --swap north
hyper - 0x21 : yabai -m window --swap east
## focus display
#ctrl + cmd - 1 : yabai -m window --display 1 yabai -m display --focus 1
#ctrl + cmd - 2 : yabai -m window --display 2 yabai -m display --focus 2
#ctrl + cmd - 3 : yabai -m window --display 3 yabai -m display --focus 3
## send window to monitor and follow focus
hyper - u : /Users/bielcarpi/CustomScripts/YabaiScripts/moveWindowLeftAndFollowFocus.sh
hyper - p : /Users/bielcarpi/CustomScripts/YabaiScripts/moveWindowRightAndFollowFocus.sh
## increase window size
hyper + rshift - h : yabai -m window --resize left:-50:0
hyper + rshift - j : yabai -m window --resize bottom:0:50
hyper + rshift - k : yabai -m window --resize top:0:-50
hyper + rshift - l : yabai -m window --resize right:50:0
## decrease window size
#shift + alt - a : yabai -m window --resize left:20:0
#shift + alt - s : yabai -m window --resize bottom:0:-20
#shift + alt - w : yabai -m window --resize top:0:20
#shift + alt - d : yabai -m window --resize right:-20:0
## rotate tree 90
hyper - r : yabai -m space --rotate 90
## flip the tree vertically
#hyper - 6 : yabai -m space --mirror y-axis
# mirror tree y-axis
#alt - y : yabai -m space --mirror y-axis
## mirror tree x-axis
#alt - x : yabai -m space --mirror x-axis
#Move active window to next space on current display
#Seems to be not working correctly with SIP enabled
#hyper + rshift - s : yabai -m query --spaces --space | jq -re ".index" | xargs -I {} bash -c "if [[ '{}' = '3' ]]; then yabai -m window --space 4; elif [[ '{}' = '4' ]]; then yabai -m window --space 3; fi"
#hyper + rshift - s : yabai -m query --spaces --space | jq -re ".index" | xargs -I {} bash -c "yabai -m window --space 1;"
#hyper + rshift - d : yabai -m query --spaces --space | jq -re ".index" | xargs -I {} bash -c "yabai -m window --space 2;"
#hyper + rshift - f : yabai -m query --spaces --space | jq -re ".index" | xargs -I {} bash -c "yabai -m window --space 3;"
#hyper + rshift - n : yabai -m query --spaces --space | jq -re ".index" | xargs -I {} bash -c "yabai -m window --space 4;"
#hyper + rshift - m : yabai -m query --spaces --space | jq -re ".index" | xargs -I {} bash -c "yabai -m window --space 5;"
## toggle window fullscreen zoom
hyper - g : yabai -m window --toggle zoom-fullscreen
# cycle through windows
# cycle backwards
#hyper - i : yabai -m query --spaces | jq -re ".[] | select(.visible == 1).index" | xargs -I{} yabai -m query --windows --space {} | jq -sre "add | sort_by(.display, .frame.x, .frame.y, .id) | nth(index(map(select(.focused == 1))) - 1).id" | xargs -I{} yabai -m window --focus {}
#hyper - i : yabai -m query --spaces | jq -re ".[] | select(.visible == 1).index" | xargs -I{} yabai -m query --windows --space {} | jq -sre "add | sort_by(.display, .frame.x, .frame.y, .id) | nth(index(map(select(.focused == 1))) - 1).id" | xargs -I{} yabai -m window --focus {}
#alt - p : yabai -m window --focus stack.prev || yabai -m window --focus prev || yabai -m window --focus last
#
# go to each window WITHOUT going into a stack
# hyper - i : yabai -m query --spaces | jq -re ".[] | select(.visible == 1).index" | xargs -I{} yabai -m query --windows --space {} | jq -re "[.[] | select((.\"stack-index\" <= 1) and (.app != \"Hammerspoon\"))]" | jq -sre "add | sort_by(.display, .frame.x, .frame.y, .id) | nth(index(map(select(.focused == 1))) - 1).id" | xargs -I{} yabai -m window --focus {}
hyper - i : yabai -m query --spaces | jq -re ".[] | select(.visible == 1).index" | xargs -I{} yabai -m query --windows --space {} | jq -re "[.[] | select(.app != \"Hammerspoon\")]" | jq -sre "add | sort_by(.display, .frame.x, .frame.y, .id) | nth(index(map(select(.focused == 1))) - 1).id" | xargs -I{} yabai -m window --focus {}
# ctrl + alt + cmd + rshift - i : yabai -m window --focus stack.prev || yabai -m window --focus stack.last
#hyper - 0x29 : yabai -m query --spaces \
#hyper - o : yabai -m query --spaces | jq -re ".[] | select(.visible == 1).index" | xargs -I{} yabai -m query --windows --space {} | jq -sre "add | sort_by(.display, .frame.x, .frame.y, .id) | reverse | nth(index(map(select(.focused == 1))) - 1).id" | xargs -I{} yabai -m window --focus {}
#alt - n : yabai -m window --focus stack.next || yabai -m window --focus next || yabai -m window --focus first
# go to each window WITHOUT going into a stack
# ctrl + alt + cmd + lshift - o : yabai -m query --spaces | jq -re ".[] | select(.visible == 1).index" | xargs -I{} yabai -m query --windows --space {} | jq -re "[.[] | select((.\"stack-index\" <= 1) and (.app != \"Hammerspoon\"))]" | jq -sre "add | sort_by(.display, .frame.x, .frame.y, .id) | reverse | nth(index(map(select(.focused == 1))) - 1).id" | xargs -I{} yabai -m window --focus {}
hyper - o : yabai -m query --spaces | jq -re ".[] | select(.visible == 1).index" | xargs -I{} yabai -m query --windows --space {} | jq -re "[.[] | select(.app != \"Hammerspoon\")]" | jq -sre "add | sort_by(.display, .frame.x, .frame.y, .id) | reverse | nth(index(map(select(.focused == 1))) - 1).id" | xargs -I{} yabai -m window --focus {}
# Toggle foucus on a stack
#ctrl + alt + cmd + lshift - return : yabai -m window --focus stack.next || yabai -m window --focus stack.first
#create a stack
# ctrl + alt + cmd + rshift - 1 : yabai -m query --windows --window | jq -re "." | xargs -I{} yabai -m window 1 --stack {}
# stack next window onto current window
#ctrl + alt + cmd + lshift - 0x43 : window=$(yabai -m query --windows --window | jq -r '.id') && yabai -m window east --stack $window || (yabai -m window $window --toggle float && yabai -m window $window --toggle float)
################################################################
############################# UNUSED ###########################
################################################################
## float / unfloat window and center on screen
#alt - t : yabai -m window --toggle float;\
#yabai -m window --grid 4:4:1:1:2:2 ## toggle sticky alt - s : yabai -m window --toggle sticky ## toggle sticky, float and resize to picture-in-picture size alt - p : yabai -m window --toggle sticky;\ yabai -m window --grid 5:5:4:0:1:1 ## change layout of desktop ctrl + alt - a : yabai -m space --layout bsp ctrl + alt - d : yabai -m space --layout float
## toggle window split type
#alt - e : yabai -m window --toggle split
## toggle window border
#shift + alt - b : yabai -m window --toggle border
## create desktop, move window and follow focus
#hyper - d : 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
#hyper - 0x2B : 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
#hyper - 0x2F : yabai -m space --destroy
## fast focus desktop
#cmd + alt - x : yabai -m space --focus last
#cmd + alt - z : yabai -m space --focus prev
#cmd + alt - c : yabai -m space --focus next
#cmd + alt - 1 : yabai -m space --focus 1
#cmd + alt - 2 : yabai -m space --focus 2
#cmd + alt - 3 : yabai -m space --focus 3
#cmd + alt - 4 : yabai -m space --focus 4
#cmd + alt - 5 : yabai -m space --focus 5
#cmd + alt - 6 : yabai -m space --focus 6
#cmd + alt - 7 : yabai -m space --focus 7
#cmd + alt - 8 : yabai -m space --focus 8
#cmd + alt - 9 : yabai -m space --focus 9
#cmd + alt - 0 : yabai -m space --focus 10
## move window
#shift + ctrl - a : yabai -m window --move rel:-20:0
#shift + ctrl - s : yabai -m window --move rel:0:20
#shift + ctrl - w : yabai -m window --move rel:0:-20
#shift + ctrl - d : yabai -m window --move rel:20:0
## Swap window
# hyper - y : yabai -m window --warp west
# shift + cmd - j : yabai -m window --warp south
# shift + cmd - k : yabai -m window --warp north
# hyper - 0x21 : yabai -m window --warp east # "[" key
## focus monitor
#ctrl + alt - x : yabai -m display --focus last
#ctrl + alt - z : yabai -m display --focus prev || yabai -m display --focus last
#ctrl + alt - c : yabai -m display --focus next || yabai -m display --focus first
#ctrl + alt - 1 : yabai -m display --focus 1
#ctrl + alt - 2 : yabai -m display --focus 2
#ctrl + alt - 3 : yabai -m display --focus 3