-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathslate
207 lines (166 loc) · 14 KB
/
slate
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
# -
# Slate - Vim Mode
##################
config defaultToCurrentScreen true
config nudgePercentOf screenSize
config resizePercentOf screenSize
config windowHintsShowIcons true
config windowHintsSpread true
config windowHintsIgnoreHiddenWindows false
# bind e:shift;cmd hint ASDFGHJKLQWERTYUIOPCVBN # use whatever keys you want
# Aliases
alias full move screenOriginX;screenOriginY screenSizeX;screenSizeY
alias fullHeight move windowTopLeftX;screenOriginY windowSizeX;screenSizeY
alias fullWidth move screenOriginX;windowTopLeftY screenSizeX;windowSizeY
alias topHalfHeight move windowTopLeftX;screenOriginY windowSizeX;screenSizeY/2
alias topTwoThirdHeight move windowTopLeftX;screenOriginY windowSizeX;screenSizeY*2/3
alias bottomHalfHeight move windowTopLeftX;screenSizeY/2 windowSizeX;screenSizeY/2
alias bottomTwoThirdHeight move windowTopLeftX;screenSizeY/3 windowSizeX;screenSizeY*2/3
alias centerHalfHeight move screenOriginX+((screenSizeX-windowSizeX)/2);screenOriginY+(screenSizeY-(screenSizeY/2))/2 windowSizeX;screenSizeY/2
alias centerHalfWidth move screenOriginX+(screenSizeX-(screenSizeX/2))/2;windowTopLeftY screenSizeX/2;windowSizeY
alias centerTwoThirdHeight move screenOriginX+((screenSizeX-windowSizeX)/2);screenOriginY+(screenSizeY-(windowSizeY*2/3))/2 windowSizeX;windowSizeY*2/3
alias centerTwoThirdWidth move screenOriginX+(screenSizeX-(windowSizeX*2/3))/2;windowTopLeftY windowSizeX*2/3;windowSizeY
alias leftThreeQuarter move screenOriginX;screenOriginY screenSizeX*3/4;screenSizeY
alias leftTwoThird move screenOriginX;screenOriginY screenSizeX*2/3;screenSizeY
alias leftThreeFifth move screenOriginX;screenOriginY screenSizeX*3/5;screenSizeY
alias leftHalf move screenOriginX;screenOriginY screenSizeX/2;screenSizeY
alias leftTwoFifth move screenOriginX;screenOriginY screenSizeX*2/5;screenSizeY
alias leftOneThird move screenOriginX;screenOriginY screenSizeX/3;screenSizeY
alias leftThreeTenth move screenOriginX;screenOriginY screenSizeX*3/10;screenSizeY
alias leftSevenTenth move screenOriginX;screenOriginY screenSizeX*7/10;screenSizeY
alias leftOneQuarter move screenOriginX;screenOriginY screenSizeX*1/4;screenSizeY
alias leftOneFifth move screenOriginX;screenOriginY screenSizeX*1/5;screenSizeY
alias leftOneSixth move screenOriginX;screenOriginY screenSizeX*1/6;screenSizeY
alias leftOneEighth move screenOriginX;screenOriginY screenSizeX*1/8;screenSizeY
alias rightThreeQuarter move screenOriginX+screenSizeX*1/4;screenOriginY screenSizeX*3/4;screenSizeY
alias rightTwoThird move screenOriginX+screenSizeX/3;screenOriginY screenSizeX*2/3;screenSizeY
alias rightThreeFifth move screenOriginX+screenSizeX*2/5;screenOriginY screenSizeX*3/5;screenSizeY
alias rightHalf move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY
alias rightTwoFifth move screenOriginX+screenSizeX*3/5;screenOriginY screenSizeX*2/5;screenSizeY
alias rightOneThird move screenOriginX+screenSizeX*2/3;screenOriginY screenSizeX*1/3;screenSizeY
alias rightThreeTenth move screenOriginX+screenSizeX*7/10;screenOriginY screenSizeX*3/10;screenSizeY
alias rightSevenTenth move screenOriginX+screenSizeX*3/10;screenOriginY screenSizeX*7/10;screenSizeY
alias rightOneQuarter move screenOriginX+screenSizeX*3/4;screenOriginY screenSizeX*1/4;screenSizeY
alias rightOneFifth move screenOriginX+screenSizeX*4/5;screenOriginY screenSizeX*1/5;screenSizeY
alias rightOneSixth move screenOriginX+screenSizeX*5/6;screenOriginY screenSizeX*1/6;screenSizeY
alias rightOneEighth move screenOriginX+screenSizeX*7/8;screenOriginY screenSizeX*1/8;screenSizeY
alias middleThird move screenOriginX+screenSizeX/3;screenOriginY screenSizeX/3;screenSizeY
alias topHalf move screenOriginX;screenOriginY screenSizeX;screenSizeY/2
alias bottomHalf move screenOriginX;screenOriginY+screenSizeY/2 screenSizeX;screenSizeY/2
alias center move screenOriginX+((screenSizeX-windowSizeX)/2);screenOriginY+((screenSizeY-windowSizeY)/2) windowSizeX;windowSizeY
alias centerHalf move screenOriginX+(screenSizeX/4);screenOriginY screenSizeX/2;screenSizeY
alias centerOneThird move screenOriginX+((screenSizeX*2/3)/2);screenOriginY screenSizeX*1/3;screenSizeY
alias centerOneFourth move screenOriginX+((screenSizeX*3/4)/2);screenOriginY screenSizeX*1/4;screenSizeY
alias centerFourTenth move screenOriginX+((screenSizeX*6/10)/2);screenOriginY screenSizeX*4/10;screenSizeY
alias centerTwoFifth move screenOriginX+((screenSizeX*3/5)/2);screenOriginY screenSizeX*2/5;screenSizeY
alias centerThreeFifth move screenOriginX+((screenSizeX*2/5)/2);screenOriginY screenSizeX*3/5;screenSizeY
alias centerTwoThird move screenOriginX+((screenSizeX*1/3)/2);screenOriginY screenSizeX*2/3;screenSizeY
alias centerThreeFourth move screenOriginX+((screenSizeX*1/4)/2);screenOriginY screenSizeX*3/4;screenSizeY
alias centerFourFifth move screenOriginX+((screenSizeX*1/5)/2);screenOriginY screenSizeX*4/5;screenSizeY
alias centerSevenEighth move screenOriginX+((screenSizeX*1/8)/2);screenOriginY screenSizeX*7/8;screenSizeY
alias offRightExtraLarge move screenOriginX+((screenSizeX*3/5));screenOriginY screenSizeX*2/5;screenSizeY
alias offRightLarge move screenOriginX+((screenSizeX*3/5));screenOriginY screenSizeX*1/3;screenSizeY
alias offRightMedium move screenOriginX+((screenSizeX*3/5));screenOriginY screenSizeX*1/3*0.85;screenSizeY
alias offRightSmall move screenOriginX+((screenSizeX*3/5));screenOriginY screenSizeX*1/3*0.7;screenSizeY
alias offRightExtraSmall move screenOriginX+((screenSizeX*3/5));screenOriginY screenSizeX*1/3*0.5;screenSizeY
alias offLeftSmall move screenOriginX+(screenSizeX*3/5)-50-(screenSizeX*2/5);screenOriginY screenSizeX*2/5;screenSizeY
alias offLeftMedium move screenOriginX+(screenSizeX*3/5)-50-(screenSizeX*2/5*1.15);screenOriginY screenSizeX*2/5*1.15;screenSizeY
alias offLeftLarge move screenOriginX+(screenSizeX*3/5)-50-(screenSizeX*2/5*1.3);screenOriginY screenSizeX*2/5*1.3;screenSizeY
alias offLeftExtraLarge move screenOriginX+(screenSizeX*3/5)-50-((screenSizeX*3/5)-50);screenOriginY (screenSizeX*3/5)-50;screenSizeY
alias centerHover move screenOriginX+((screenSizeX-(screenSizeX*0.6))/2);screenOriginY+((screenSizeY-(screenSizeY*0.9))/2) screenSizeX*0.6;screenSizeY*0.9
alias centerContract move screenOriginX+((screenSizeX-(windowSizeX*0.7))/2);screenOriginY+((screenSizeY-(windowSizeY*0.9))/2) windowSizeX*0.7;windowSizeY*0.9
alias centerExpand move screenOriginX+((screenSizeX-(windowSizeX*1.25))/2);screenOriginY+((screenSizeY-(windowSizeY*1.1))/2) windowSizeX*1.25;windowSizeY*1.1
alias contract move windowTopLeftX;windowTopLeftY windowSizeX*0.7;windowSizeY*0.9
alias expand move windowTopLeftX;windowTopLeftY windowSizeX*1.3;windowSizeY*1.2
alias halfWidth move windowTopLeftX;windowTopLeftY windowSizeX/2;windowSizeY
alias doubleWidth move windowTopLeftX;windowTopLeftY windowSizeX*2;windowSizeY
alias leftWindow move windowTopLeftX-windowSizeX;windowTopLeftY windowSizeX;windowSizeY
alias rightWindow move windowTopLeftX+windowSizeX;windowTopLeftY windowSizeX;windowSizeY
alias topWindow move windowTopLeftX;windowTopLeftY+windowSizeY windowSizeX;windowSizeY
alias bottomWindow move windowTopLeftX;windowTopLeftY-windowSizeY windowSizeX;windowSizeY
alias topLeftNoResize move screenOriginX;screenOriginY windowSizeX;windowSizeY
alias topRightNoResize move screenSizeX-windowSizeX;screenOriginY windowSizeX;windowSizeY
alias bottomLeftNoResize move screenOriginX;screenSizeY-windowSizeY windowSizeX;windowSizeY
alias bottomRightNoResize move screenSizeX-windowSizeX;screenSizeY-windowSizeY windowSizeX;windowSizeY
alias topLeft corner top-left resize:screenSizeX/2;screenSizeY/2
alias topRight corner top-right resize:screenSizeX/2;screenSizeY/2
alias bottomLeft corner bottom-left resize:screenSizeX/2;screenSizeY/2
alias bottomRight corner bottom-right resize:screenSizeX/2;screenSizeY/2
# Fixed size bindings
bind h:ctrl;cmd chain ${leftHalf} | ${leftTwoFifth} | ${leftOneThird} | ${leftThreeTenth} | ${leftOneQuarter} | ${leftOneFifth} | ${leftOneSixth} | ${leftOneEighth} | ${leftThreeFifth} | ${leftTwoThird} | ${leftThreeQuarter}
bind l:ctrl;cmd chain ${rightHalf} | ${rightTwoFifth} | ${rightOneThird} | ${rightThreeTenth} | ${rightOneQuarter} | ${rightOneFifth} | ${rightOneSixth} | ${rightOneEighth} | ${rightThreeFifth} | ${rightTwoThird} | ${rightThreeQuarter}
bind k:ctrl;cmd chain ${topTwoThirdHeight} | ${topHalfHeight} | ${fullHeight}
bind j:ctrl;cmd chain ${bottomTwoThirdHeight} | ${bottomHalfHeight} | ${fullHeight}
bind c:ctrl;cmd chain ${center} | ${centerHover} | ${centerHalf} | ${centerFourTenth} | ${centerOneThird} | ${centerOneFourth} | ${centerThreeFifth} | ${centerTwoFifth} | ${centerThreeFourth} | ${centerFourFifth} | ${centerSevenEighth} | ${full}
bind e:ctrl;cmd chain ${full} | ${centerThreeFifth} | ${centerTwoThird} | ${centerHalf} | ${centerFourTenth} | ${centerOneThird}
bind g:ctrl;cmd chain ${full} | ${centerHover}
# Reduce size to center - Not so useful, duplicate of the above
# bind k:ctrl;alt chain ${centerTwoThirdHeight} | ${centerHalfHeight} | ${fullHeight}
# bind j:ctrl;alt chain ${centerTwoThirdWidth} | ${centerTwoThirdWidth} | ${centerTwoThirdWidth} | ${fullWidth}
# bind v:ctrl;cmd chain ${halfWidth} | ${doubleWidth}
# bind h:ctrl;alt chain ${leftThreeFifth} | ${leftThreeQuarter} | ${leftSevenTenth} | ${leftTwoThird} | ${leftOneEighth} | ${leftOneSixth} | ${leftOneFifth} | ${leftOneQuarter} | ${leftThreeTenth} | ${leftOneThird} | ${leftTwoFifth} | ${leftHalf}
# bind l:ctrl;alt chain ${rightThreeFifth} | ${rightThreeQuarter} | ${rightSevenTenth} | ${rightTwoThird} | ${rightOneEighth} | ${rightOneSixth} | ${rightOneFifth} | ${rightOneQuarter} | ${rightThreeTenth} | ${rightOneThird} | ${rightTwoFifth} | ${rightHalf}
# bind c:ctrl;alt chain ${centerTwoThird} | ${centerSevenEighth} | ${centerFourFifth} | ${centerThreeFourth} | ${centerThreeFifth} | ${centerHalf} | ${centerOneThird}
bind c:ctrl;shift chain ${center}
# Reduce window size from another direction
# bind p:ctrl;cmd chain ${offRightLarge} | ${offRightExtraLarge} | ${offRightMedium} | ${offRightSmall} | ${offRightExtraSmall}
# bind q:ctrl;cmd chain ${offLeftSmall} | ${offLeftMedium} | ${offLeftLarge} | ${offLeftExtraLarge}
# Contract and Expand Bindings
bind l:shift;alt chain sequence resize +10% +0
bind h:shift;alt chain sequence resize -10% +0
bind j:shift;alt chain sequence resize +0 -7%
bind k:shift;alt chain sequence resize +0 +7%
# bind l:shift;alt chain sequence resize +10% +0 > ${center}
# bind h:shift;alt chain sequence resize -10% +0 > ${center}
# bind j:shift;alt chain sequence resize +0 -7% > ${center}
# bind k:shift;alt chain sequence resize +0 +7% > ${center}
bind d:shift;alt ${centerHover}
bind c:shift;alt ${centerContract}
bind e:shift;alt ${centerExpand}
# bind l:ctrl;alt;cmd resize -10% +0 bottom-right
# bind h:ctrl;alt;cmd resize +10% +0 bottom-right
# bind k:ctrl;alt;cmd resize +0 +10% bottom-right
# bind j:ctrl;alt;cmd resize +0 -10% bottom-right
# Shift Window Bindings
# bind 1:ctrl;shift ${topLeftNoResize}
# bind 2:ctrl;shift ${topRightNoResize}
# bind 3:ctrl;shift ${bottomLeftNoResize}
# bind 4:ctrl;shift ${bottomRightNoResize}
bind 1:ctrl;alt ${topLeft}
bind 2:ctrl;alt ${topRight}
bind 3:ctrl;alt ${bottomLeft}
bind 4:ctrl;alt ${bottomRight}
bind o:ctrl;cmd nudge +2% +0
bind y:ctrl;cmd nudge -2% +0
bind i:ctrl;cmd nudge +0 -2%
bind u:ctrl;cmd nudge +0 +2%
# ctrl;shift;alt shortcuts not working
# bind l:ctrl;shift;alt nudge +2% +0
# bind h:ctrl;shift;alt nudge -2% +0
# bind k:ctrl;shift;alt nudge +0 -2%
# bind j:ctrl;shift;alt nudge +0 +2%
# ctrl;shift;alt shortcuts not working
# bind l:ctrl;shift;alt nudge +5% +0
# bind h:ctrl;shift;alt nudge -5% +0
# bind k:ctrl;shift;alt nudge +0 -5%
# bind j:ctrl;shift;alt nudge +0 +5%
# bind l:ctrl;shift;alt ${rightWindow}
# bind h:ctrl;shift;alt ${leftWindow}
# bind k:ctrl;shift;alt ${topWindow}
# bind j:ctrl;shift;alt ${bottomWindow}
# Throw Bindings
bind l:ctrl;alt;cmd chain sequence throw right > ${center}
bind h:ctrl;alt;cmd chain sequence throw left > ${center}
bind k:ctrl;alt;cmd throw up
bind j:ctrl;alt;cmd throw down
bind n:ctrl;alt;cmd throw right resize
bind p:ctrl;alt;cmd throw left resize
# Focus Bindings
bind l:alt focus right
bind h:alt focus left
bind n:alt focus behind
# Shortcut used by vim move
# bind k:alt focus up
# bind j:alt focus down
# Window Hints
# bind esc:cmd hint