dotfiles/slate.js
2016-12-13 10:12:02 -07:00

286 lines
5.9 KiB
JavaScript

var leftHalf = slate.operation("move", {
x: "screenOriginX",
y: "screenOriginY",
width: "screenSizeX/2",
height: "screenSizeY"
});
var rightHalf = slate.operation("move", {
x: "screenOriginX+screenSizeX/2",
y: "screenOriginY",
width: "screenSizeX/2",
height: "screenSizeY"
});
var topThird = slate.operation("move", {
x: "screenOriginX",
y: "screenOriginY",
width: "screenSizeX",
height: "screenSizeY/3"
});
var middleThird = slate.operation("move", {
x: "screenOriginX",
y: "screenOriginY+screenSizeY/3",
width: "screenSizeX",
height: "screenSizeY/3"
});
var bottomThird = slate.operation("move", {
x: "screenOriginX",
y: "screenOriginY+screenSizeY*0.66666",
width: "screenSizeX",
height: "screenSizeY/3"
});
var topHalf = slate.operation("move", {
x: "screenOriginX",
y: "screenOriginY",
width: "screenSizeX",
height: "screenSizeY/2"
});
var bottomHalf = slate.operation("move", {
x: "screenOriginX",
y: "screenOriginY+screenSizeY/2",
width: "screenSizeX",
height: "screenSizeY/2"
});
var full = slate.operation("move", {
x: "screenOriginX",
y: "screenOriginY",
width: "screenSizeX",
height: "screenSizeY"
});
var moveScreen0 = slate.operation("throw", {
screen: "0"
});
var moveScreen1 = slate.operation("throw", {
screen: "1"
});
var moveScreen2 = slate.operation("throw", {
screen: "2"
});
var moveScreen3 = slate.operation("throw", {
screen: "3"
});
var moveScreen4 = slate.operation("throw", {
screen: "4"
});
var moveScreen5 = slate.operation("throw", {
screen: "5"
});
function googleChromeLayout(windowObject) {
var title = windowObject.title();
slate.log(title);
if (title !== undefined && title.match(/^Grafana.+$/)) {
windowObject.doOperation(moveScreen1);
windowObject.doOperation(full);
}else if (title !== undefined && title.match(/Google Play Music.+$/)) {
windowObject.doOperation(moveScreen0);
windowObject.doOperation(middleThird);
} else if (title !== undefined && title == "Postman") {
//do nothing
} else {
windowObject.doOperation(moveScreen1);
windowObject.doOperation(full);
}
}
slate.bind("down:cmd,alt", function (win) {
if (!win) {
return;
}
win.doOperation(bottomHalf);
});
slate.bind("up:cmd,ctrl", function (win) {
if (!win) {
return;
}
win.doOperation(topThird);
});
slate.bind("down:cmd,ctrl", function (win) {
if (!win) {
return;
}
win.doOperation(bottomThird);
});
slate.bind("m:cmd,ctrl", function (win) {
if (!win) {
return;
}
win.doOperation(middleThird);
});
slate.bind("up:cmd,alt", function (win) {
if (!win) {
return;
}
win.doOperation(topHalf);
});
slate.bind("left:cmd,alt", function (win) {
if (!win) {
return;
}
win.doOperation(leftHalf);
});
slate.bind("right:cmd,alt", function (win) {
if (!win) {
return;
}
win.doOperation(rightHalf);
});
slate.bind("left:ctrl,alt,cmd", function (win) {
if (!win) {
return;
}
var screen = win.screen().id() - 1;
if (screen < 0) {
screen = 5;
}
slate.log(screen);
var op = slate.operation("throw", {
screen: screen.toString()
});
win.doOperation(op);
});
slate.bind("right:ctrl,alt,cmd", function (win) {
if (!win) {
return;
}
var screen = win.screen().id() + 1;
if (screen > 5) {
screen = 0;
}
slate.log(screen);
var op = slate.operation("throw", {
screen: screen.toString()
});
win.doOperation(op);
});
slate.bind("f:cmd,alt", function (win) {
if (!win) {
return;
}
win.doOperation(full);
});
slate.bind("0:cmd,alt", function (win) {
if (!win) {
return;
}
win.doOperation(moveScreen0);
});
slate.config("orderScreensLeftToRight", true);
var screen0Top = slate.operation("move", {
x: "screenOriginX-5",
y: "screenOriginY",
width: "screenSizeX-5",
height: "screenSizeY/2",
screen: "0"
});
var screen0Bottom = slate.operation("move", {
x: "screenOriginX-5",
y: "screenOriginY+screenSizeY/2",
width: "screenSizeX-5",
height: "screenSizeY/2",
screen: "0"
});
var screen3Full = slate.operation("move", {
x: "screenOriginX",
y: "screenOriginY",
width: "screenSizeX",
height: "screenSizeY",
screen: "3"
});
var screen4Full = slate.operation("move", {
x: "screenOriginX",
y: "screenOriginY",
width: "screenSizeX",
height: "screenSizeY",
screen: "4"
});
var threeMonitorLayout= slate.layout("threeMonitor", {
"Slack": {
"operations": [moveScreen0, topThird],
"main-first": true,
"ignore-fail": true,
"repeat": true
},
"Microsoft Outlook": {
"operations": [moveScreen0, bottomThird],
"main-first": true,
"ignore-fail": true,
"repeat": true
},
"VMware Fusion": {
"operations": [moveScreen1, full],
"main-first": true,
"ignore-fail": true,
"repeat": true
},
"Google Chrome": {
"operations": [googleChromeLayout],
"repeat": true,
"ignore-fail": true
},
"PyCharm": {
"operations": [moveScreen2, full],
"main-first": true,
"ignore-fail": true,
"repeat": true
},
"WebStorm": {
"operations": [moveScreen2, full],
"main-first": true,
"ignore-fail": true,
"repeat": true
}
});
slate.bind("a:ctrl,alt,cmd", slate.operation("layout", {
name: threeMonitorLayout
}));
slate.default(3, threeMonitorLayout);
if (slate.screenCount() == 3) {
slate.operation("layout", {
name: threeMonitorLayout
}).run();
}
slate.log("screen count " + slate.screenCount());
slate.eachScreen(function (screenObject) {
slate.log(screenObject.id() + " " + JSON.stringify(screenObject.rect()));
});