-
Notifications
You must be signed in to change notification settings - Fork 0
/
slate.js
146 lines (121 loc) · 3.72 KB
/
slate.js
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
slate.configAll({
"defaultToCurrentScreen": true,
"nudgePercentOf": "screenSize",
"resizePercentOf": "screenSize",
"checkDefaultsOnLoad": true
});
//Window.prototype.isLeftBound = function() {
//return (this.topLeft().x == 0);
//};
var fullscreen = slate.operation("move", {
"x" : "screenOriginX",
"y" : "screenOriginY",
"width" : "screenSizeX",
"height" : "screenSizeY"
});
["right", "left"].forEach(function(direction) {
slate.bind(direction+":ctrl;cmd", slate.operation("push", {
"direction": direction,
"style": "bar-resize:screenSizeX/2"
}));
slate.bind(direction+":ctrl,shift;cmd", function(win) {
var leftBound = (win.topLeft().x == 0);
var anchor = (leftBound) ? "top-left" : "top-right";
var sign = ((leftBound && direction == "right") || (!leftBound && direction == "left")) ? "+" : "-";
slate.log(anchor);
slate.log(sign);
win.doOperation("resize", {
"width": sign+"10%",
"height": "-0%",
"anchor": "top-left"
});
});
});
slate.bind("0:ctrl;cmd", fullscreen);
slate.bind("up:ctrl;cmd", fullscreen);
/*
# Layouts
layout laptopLayout 'Preview':REPEAT ${full}
layout laptopLayout 'Terminal':REPEAT ${full}
default laptopLayout count:1
bind 8:ctrl layout laptopLayout
*/
var laptopLayout = slate.layout("laptopLayout", {
"iTerm": {
"operations": [fullscreen],
"repeat": true
}
});
slate.bind("8:ctrl", slate.operation("layout", { "name" : laptopLayout }));
slate.default(["2880x1800"], laptopLayout);
/*
slate.on("appOpened", function(event, app) {
if (app.name() === "Terminal") {
slate.log("OPENED");
slate.operation("layout", { "name" : "laptopLayout" });
}
});
*/
slate.on("windowOpened", function(event, win) {
if (win.app().name() === "Terminal") {
win.doOperation(fullscreen);
//slate.operation("layout", { "name" : "laptopLayout" });
}
if (win.title() === "Open") {
win.doOperation(fullscreen);
}
if (win.title().match(/.*documents.* total pages\)/)) {
win.doOperation(fullscreen);
slate.shell("~/.bin/bin/simulate-keypress--preview-zoom-all-to-fit");
}
if (win.app().name() === "iTerm") {
win.doOperation(fullscreen);
}
if (win.app().name() === "VLC") {
win.doOperation(fullscreen);
}
if (win.app().name() === "Soundnode") {
win.doOperation(fullscreen);
}
if (win.app().name() === "Kiwi for Gmail" || win.title() === "Kiwi for Gmail") {
win.doOperation(fullscreen);
}
});
/*
# Resize Bindings
bind right:alt resize +10% +0
bind left:alt resize -10% +0
bind up:alt resize +0 -10%
bind down:alt resize +0 +10%
bind right:ctrl;alt resize -10% +0 bottom-right
bind left:ctrl;alt resize +10% +0 bottom-right
bind up:ctrl;alt resize +0 +10% bottom-right
bind down:ctrl;alt resize +0 -10% bottom-right
# Push Bindings
bind right:ctrl;cmd push right bar-resize:screenSizeX/3
bind left:ctrl;cmd push left bar-resize:screenSizeX/3
bind up:ctrl;cmd push up bar-resize:screenSizeY/2
bind down:ctrl;cmd push down bar-resize:screenSizeY/2
# Nudge Bindings
bind right:shift;alt nudge +10% +0
bind left:shift;alt nudge -10% +0
bind up:shift;alt nudge +0 -10%
bind down:shift;alt nudge +0 +10%
# Throw Bindings
bind 1:ctrl;alt throw 0 resize
bind 2:ctrl;alt throw 1 resize
bind 3:ctrl;alt throw 2 resize
bind right:ctrl;alt;cmd throw right resize
bind left:ctrl;alt;cmd throw left resize
bind up:ctrl;alt;cmd throw up resize
bind down:ctrl;alt;cmd throw down resize
# Focus Bindings
bind right:cmd focus right
bind left:cmd focus left
bind up:cmd focus up
bind down:cmd focus down
bind up:cmd;alt focus behind
bind down:cmd;alt focus behind
# Window Hints
bind esc:cmd hint
*/