-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path.skhdrc
executable file
·120 lines (89 loc) · 6.74 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
#SKHD STUFF
# if you're having troubles finding key codes for a key just type skhd --observe in a terminal and type a key. Pretty cool! Or just check the wiki.
## 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 - x : yabai -m window $(yabai -m query --windows --window | jq -re ".id") --close
#### Layouts
hyper - s : yabai -m space --layout stack
hyper - b : yabai -m space --layout bsp
hyper - l : yabai -m space --layout float
## increase window size
hyper - q : { yabai -m window --resize right:-20:0 || yabai -m window --resize left:-20:0; } 2>/dev/null
hyper - w : { yabai -m window --resize bottom:0:20 || yabai -m window --resize top:0:20; } 2>/dev/null
hyper - e : { yabai -m window --resize bottom:0:-20 || yabai -m window --resize top:0:-20; } 2>/dev/null
hyper - r : { yabai -m window --resize right:20:0 || yabai -m window --resize left:20:0; } 2>/dev/null
## rotate tree 90
hyper - c : yabai -m space --rotate 90
## toggle window fullscreen zoom
hyper - f : yabai -m window --toggle zoom-fullscreen
## Switch through windows
hyper - d : { type=$(yabai -m query --spaces --space | jq -re '.type'); if test "$type" == stack; then yabai -m window --focus stack.prev || yabai -m window --focus stack.last; else yabai -m window --focus prev || yabai -m window --focus last; fi; } 2>/dev/null
hyper - a : { type=$(yabai -m query --spaces --space | jq -re '.type'); if test "$type" == stack; then yabai -m window --focus stack.next || yabai -m window --focus stack.first; else yabai -m window --focus next || yabai -m window --focus first; fi; } 2>/dev/null;
## Swap window
hyper - y : yabai -m window --warp west
hyper - j : yabai -m window --warp south
hyper - k : yabai -m window --warp north
# hyper - 0x21 : yabai -m window --warp east # "[" key
# go to each window WITHOUT going into a stack
# ctrl + alt + cmd + lshift - 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 {}
#ctrl + alt + cmd + lshift - 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 {}
#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 {}
# 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 {}
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(.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
#shift + cmd - n : 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
#shift + alt - n : 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
## 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
## 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