-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathslate
179 lines (163 loc) · 12 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
# Slate configuration file
# Be sure to customize! See https://github.com/jigish/slate#configuring-slate
# Configs
config checkDefaultsOnLoad true
config defaultToCurrentScreen true
config nudgePercentOf screenSize
config resizePercentOf screenSize
config secondsBetweenRepeat 0.1
config focusCheckWidthMax 3000
config windowHintsShowIcons true
config windowHintsIgnoreHiddenWindows false
config windowHintsSpread true
# # Monitor Aliases
alias mon-laptop 0
alias mon-asus 1
# Abstract positions
alias full move screenOriginX;screenOriginY screenSizeX;screenSizeY
alias notifications move screenOriginX;screenOriginY screenSizeX*0.825;screenSizeY
alias lefthalf move screenOriginX;screenOriginY screenSizeX/2;screenSizeY
alias righthalf move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY
alias rightmost move screenOriginX+screenSizeX*0.4;screenOriginY screenSizeX*0.6;screenSizeY
alias rightless move screenOriginX+screenSizeX*0.6;screenOriginY screenSizeX*0.4;screenSizeY
alias leftmost move screenOriginX;screenOriginY screenSizeX*0.6+5;screenSizeY
alias leftless move screenOriginX;screenOriginY screenSizeX*0.4;screenSizeY
# Concrete positions
alias 1-full move screenOriginX;screenOriginY screenSizeX;screenSizeY ${mon-laptop}
alias 1-left move screenOriginX;screenOriginY screenSizeX/2+3;screenSizeY ${mon-laptop}
alias 1-notif-scaled move screenOriginX;screenOriginY screenSizeX*0.825;screenSizeY ${mon-laptop}
alias 1-notif move screenOriginX;screenOriginY screenSizeX*0.791;screenSizeY ${mon-laptop}
alias 1-right move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY ${mon-laptop}
alias 2-full move screenOriginX;screenOriginY screenSizeX;screenSizeY ${mon-asus}
alias 2-left move screenOriginX;screenOriginY screenSizeX/2+3;screenSizeY ${mon-asus}
alias 2-lefttop move screenOriginX;screenOriginY screenSizeX/2;screenSizeY/2 ${mon-asus}
alias 2-leftbottom move screenOriginX;screenOriginY+screenSizeY/2 screenSizeX/2;screenSizeY/2 ${mon-asus}
alias 2-right move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY ${mon-asus}
alias 2-righttop move screenOriginX+screenSizeX/2;screenOriginY screenSizeX/2;screenSizeY/2 ${mon-asus}
alias 2-rightbottom move screenOriginX+screenSizeX/2;screenOriginY+screenSizeY/2 screenSizeX/2;screenSizeY/2 ${mon-asus}
# 2 Monitor layout
layout 2monitors 'Alacritty':MAIN_FIRST,IGNORE_FAIL ${1-left} | ${2-left}
layout 2monitors 'Google Chrome':IGNORE_FAIL,TITLE_ORDER_REGEX=^Developer\sTools\s-\s.+$ ${1-right} | ${2-right}
# layout 2monitors 'Google Chrome Canary':REPEAT ${2-right}
layout 2monitors 'Preview':REPEAT ${2-full}
layout 2monitors 'Dash':REPEAT ${2-left}
layout 2monitors 'Finder':REPEAT ${2-leftbottom}
layout 2monitors 'OneNote':REPEAT ${1-right}
layout 2monitors 'Google Play Music Desktop Player':REPEAT ${1-full}
# 1 Monitor layout
layout 1monitor 'Alacritty':MAIN_FIRST ${1-full}
layout 1monitor 'Google Chrome':REPEAT ${1-full}
layout 1monitor 'Dash':REPEAT ${1-full}
layout 1monitor 'Marked 2':REPEAT ${1-full}
layout 1monitor 'Preview':REPEAT ${1-full}
layout 1monitor 'mpv':REPEAT ${1-full}
layout 1monitor 'Finder':REPEAT ${1-full}
layout 1monitor 'Evernote':REPEAT ${1-full}
layout 1monitor 'Microsoft Excel':REPEAT ${1-full}
layout 1monitor 'Discord':REPEAT ${1-full}
layout 1monitor 'Alfred Preferences':REPEAT ${1-full}
# 1 Monitor notif
layout 1notifications 'Alacritty':MAIN_FIRST ${1-notif-scaled}
layout 1notifications 'Google Chrome':REPEAT ${1-notif-scaled}
layout 1notifications 'Brave Beta':REPEAT ${1-notif-scaled}
layout 1notifications 'Dash':REPEAT ${1-notif-scaled}
layout 1notifications 'Marked 2':REPEAT ${1-notif-scaled}
layout 1notifications 'Preview':REPEAT ${1-notif-scaled}
layout 1notifications 'Anki':REPEAT ${1-notif-scaled}
layout 1notifications 'mpv':REPEAT ${1-notif-scaled}
layout 1notifications 'Finder':REPEAT ${1-notif-scaled}
layout 1notifications 'Evernote':REPEAT ${1-notif-scaled}
layout 1notifications 'Microsoft Excel':REPEAT ${1-notif-scaled}
layout 1notifications 'Discord':REPEAT ${1-notif-scaled}
layout 1notifications 'Alfred Preferences':REPEAT ${1-notif-scaled}
layout 1notifications 'mpv':REPEAT ${1-notif-scaled}
# 2 Monitor notif
layout 2notifications 'Dash':REPEAT ${1-notif}
layout 2notifications 'Discord':REPEAT ${1-notif}
layout 2notifications 'Alacritty':MAIN_FIRST ${2-full}
layout 2notifications 'Evernote':REPEAT ${2-full}
layout 2notifications 'Google Chrome':REPEAT ${2-full}
layout 2notifications 'Brave Beta':REPEAT ${2-full}
layout 2notifications 'Microsoft Excel':REPEAT ${2-full}
layout 2notifications 'Marked 2':REPEAT ${2-full}
layout 2notifications 'Preview':REPEAT ${2-full}
layout 2notifications 'Anki':REPEAT ${2-full}
layout 2notifications 'Skitch':REPEAT ${2-full}
layout 2notifications 'Finder':REPEAT ${2-left}
layout 2notifications 'Alfred Preferences':REPEAT ${2-right}
layout 2notifications 'mpv':REPEAT ${2-right}
layout 2notifications 'Stickies':REPEAT ${2-right}
# 1 Monitor 3/4 term - browser (1dev)
layout 1dev 'Alacritty':MAIN_FIRST ${leftmost}
layout 1dev 'Google Chrome':REPEAT ${rightless}
layout 1dev 'Google Chrome Canary':REPEAT ${leftmost}
layout 1dev 'Evernote':REPEAT ${rightless}
layout 1dev 'Dash':REPEAT ${rightless}
layout 1dev 'Marked 2':REPEAT ${rightless}
layout 1dev 'mpv':REPEAT ${rightless}
layout 1dev 'WhatsApp':REPEAT ${rightless}
layout 1dev 'Preview':REPEAT ${rightless}
# 1 Monitor 3/4 pdf - term (1pdf)
layout 1pdf 'Preview':REPEAT ${leftmost}
layout 1pdf 'Google Chrome':REPEAT ${leftmost}
layout 1pdf 'Google Chrome Canary':REPEAT ${rightless}
layout 1pdf 'mpv':REPEAT ${leftmost}
layout 1pdf 'Alacritty':REPEAT ${rightless}
layout 1pdf 'Dash':REPEAT ${rightless}
layout 1pdf 'Marked 2':REPEAT ${rightless}
layout 1pdf 'WhatsApp':REPEAT ${rightless}
layout 1pdf 'Evernote':REPEAT ${rightless}
# 1 Monitor 3/4 mpv - onenote (1mpv)
layout 1mpv 'mpv':MAIN_FIRST ${leftmost}
layout 1mpv 'Preview':REPEAT ${leftmost}
layout 1mpv 'Google Chrome':REPEAT ${rightless}
layout 1mpv 'Google Chrome Canary':REPEAT ${rightless}
layout 1mpv 'Evernote':REPEAT ${rightless}
layout 1mpv 'Dash':REPEAT ${rightless}
layout 1mpv 'Marked 2':REPEAT ${rightless}
layout 1mpv 'WhatsApp':REPEAT ${rightless}
layout 1mpv 'Alacritty':REPEAT ${rightless}
# # Default Layouts
default 2monitors resolutions:${mon-laptop};${mon-asus};
default 1monitor resolutions:${mon-laptop}
default 1dev resolutions:${mon-laptop}
default 1pdf resolutions:${mon-laptop}
default 1mpv resolutions:${mon-laptop}
### Aliases
# ## Key aliases
alias hyper ctrl;shift;alt;cmd
bind ':${hyper} grid
bind 1:${hyper} ${notifications}
bind 2:${hyper} sequence layout 1notifications
bind 3:${hyper} sequence layout 1monitor
bind 4:${hyper} sequence layout 2notifications
bind space:${hyper} hide 'current'
## Application aliases
alias browser 'Google Chrome'
alias editor 'Code'
## Location bindings
# These are laid out to be used with the right hand
# and to complement the focus bindings
bind o:${hyper} throw next
bind u:${hyper} undo
bind i:${hyper} ${full}
bind [:${hyper} ${lefthalf}
bind ]:${hyper} ${righthalf}
## App bindings
bind t:${hyper} focus 'Alacritty'
# HACK: coupled to karabiner remap hyper+w b/c triggers WiFiDiagnostic
# bind `:${hyper} focus 'WhatsApp'
# bind q:${hyper} focus 'Dash'
bind q:${hyper} focus 'Brave'
bind g:${hyper} focus 'Finder'
bind p:${hyper} focus 'Preview'
# bind m:${hyper} focus 'Marked 2'
# bind r:${hyper} focus 'Reeder'
bind r:${hyper} focus 'Microsoft Excel'
bind e:${hyper} focus 'Evernote'
bind d:${hyper} focus 'Discord'
# bind z:${hyper} focus 'Books'
bind v:${hyper} focus 'mpv'
# bind n:${hyper} focus 'Stickies'
bind x:${hyper} focus 'Anki'
bind b:${hyper} focus ${browser}