|
|
|
@ -1,98 +1,66 @@
|
|
|
|
|
/* global slate: true */
|
|
|
|
|
/* global screenSizeX: true */
|
|
|
|
|
/* global screenSizeY: true */
|
|
|
|
|
/* global screenOriginX: true */
|
|
|
|
|
/* global screenOriginY: true */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* default configs
|
|
|
|
|
====================================================================== */
|
|
|
|
|
|
|
|
|
|
slate.configAll({
|
|
|
|
|
'checkDefaultsOnLoad': true,
|
|
|
|
|
'defaultToCurrentScreen': true,
|
|
|
|
|
'focusCheckWidthMax': 3000,
|
|
|
|
|
'modalEscapeKey': 'esc',
|
|
|
|
|
'nudgePercentOf': 'screenSize',
|
|
|
|
|
'resizePercentOf': 'screenSize',
|
|
|
|
|
'secondsBetweenRepeat': 0.1,
|
|
|
|
|
'windowHintsDuration': 5,
|
|
|
|
|
'windowHintsFontColor': '0;255;0;1.0',
|
|
|
|
|
'windowHintsFontName': 'Menlo',
|
|
|
|
|
'windowHintsFontSize': 60,
|
|
|
|
|
'windowHintsHeight': 72,
|
|
|
|
|
'windowHintsIgnoreHiddenWindows': false,
|
|
|
|
|
'windowHintsShowIcons': true,
|
|
|
|
|
'windowHintsSpread': true,
|
|
|
|
|
'windowHintsWidth': 72
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* operations
|
|
|
|
|
====================================================================== */
|
|
|
|
|
/* global slate: false */
|
|
|
|
|
|
|
|
|
|
// show the overlay hints for applications
|
|
|
|
|
var hint = slate.operation('hint', {
|
|
|
|
|
'characters': 'jkl;asdfqwertyuiop[]zxcvbnm,'
|
|
|
|
|
characters: 'jkl;asdfqwertyuiop[]zxcvbnm,'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// custom resize grids for all monitors 6x4
|
|
|
|
|
var grid = slate.operation('grid', {
|
|
|
|
|
'padding': 10,
|
|
|
|
|
'grids': {
|
|
|
|
|
'0': {
|
|
|
|
|
'width': 6,
|
|
|
|
|
'height': 2
|
|
|
|
|
padding: 10,
|
|
|
|
|
grids: {
|
|
|
|
|
0: {
|
|
|
|
|
width: 6,
|
|
|
|
|
height: 2
|
|
|
|
|
},
|
|
|
|
|
'1': {
|
|
|
|
|
'width': 6,
|
|
|
|
|
'height': 2
|
|
|
|
|
1: {
|
|
|
|
|
width: 6,
|
|
|
|
|
height: 2
|
|
|
|
|
},
|
|
|
|
|
'2': {
|
|
|
|
|
'width': 6,
|
|
|
|
|
'height': 2
|
|
|
|
|
2: {
|
|
|
|
|
width: 6,
|
|
|
|
|
height: 2
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ultrafast application-switching
|
|
|
|
|
var iterm = slate.operation('focus', { 'app': 'iTerm' });
|
|
|
|
|
var chrome = slate.operation('focus', { 'app': 'Google Chrome' });
|
|
|
|
|
var mail = slate.operation('focus', { 'app': 'Mail' });
|
|
|
|
|
var fork = slate.operation('focus', { 'app': 'ForkLift' });
|
|
|
|
|
var things = slate.operation('focus', { 'app': 'Things' });
|
|
|
|
|
var iterm = slate.operation('focus', { app: 'iTerm' });
|
|
|
|
|
var chrome = slate.operation('focus', { app: 'Google Chrome' });
|
|
|
|
|
var mail = slate.operation('focus', { app: 'Mail' });
|
|
|
|
|
var fork = slate.operation('focus', { app: 'ForkLift' });
|
|
|
|
|
var things = slate.operation('focus', { app: 'Things' });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var fullscreen = slate.operation('move', {
|
|
|
|
|
'x': 'screenOriginX',
|
|
|
|
|
'y': 'screenOriginY',
|
|
|
|
|
'width': 'screenSizeX',
|
|
|
|
|
'height': 'screenSizeY'
|
|
|
|
|
x: 'screenOriginX',
|
|
|
|
|
y: 'screenOriginY',
|
|
|
|
|
width: 'screenSizeX',
|
|
|
|
|
height: 'screenSizeY'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var fullheight = slate.operation('move', {
|
|
|
|
|
'x': 'windowTopLeftX',
|
|
|
|
|
'y': 'windowTopLeftY',
|
|
|
|
|
'width': 'windowSizeX',
|
|
|
|
|
'height': 'screenSizeY'
|
|
|
|
|
x: 'windowTopLeftX',
|
|
|
|
|
y: 'windowTopLeftY',
|
|
|
|
|
width: 'windowSizeX',
|
|
|
|
|
height: 'screenSizeY'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var resizeToBottom = slate.operation('resize', {
|
|
|
|
|
'width': '+0',
|
|
|
|
|
'height': '+10'
|
|
|
|
|
width: '+0',
|
|
|
|
|
height: '+10'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var resizeToRight = slate.operation('resize', {
|
|
|
|
|
'width': '+10',
|
|
|
|
|
'height': '+0'
|
|
|
|
|
width: '+10',
|
|
|
|
|
height: '+0'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var throwNext = function (win) {
|
|
|
|
|
if (!win) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
var winRect = win.rect();
|
|
|
|
|
var screen = win.screen().visibleRect();
|
|
|
|
|
|
|
|
|
@ -101,19 +69,18 @@ var throwNext = function(win) {
|
|
|
|
|
var newWidth = winRect.width / screen.width + '*screenSizeX';
|
|
|
|
|
var newHeight = winRect.height / screen.height + '*screenSizeY';
|
|
|
|
|
var throwNext = slate.operation('throw', {
|
|
|
|
|
'x': newX,
|
|
|
|
|
'y': newY,
|
|
|
|
|
'width': newWidth,
|
|
|
|
|
'height': newHeight,
|
|
|
|
|
'screen': 'next'
|
|
|
|
|
x: newX,
|
|
|
|
|
y: newY,
|
|
|
|
|
width: newWidth,
|
|
|
|
|
height: newHeight,
|
|
|
|
|
screen: 'next'
|
|
|
|
|
});
|
|
|
|
|
win.doOperation(throwNext);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var throwPrev = function (win) {
|
|
|
|
|
if (!win) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
var winRect = win.rect();
|
|
|
|
|
var screen = win.screen().visibleRect();
|
|
|
|
|
|
|
|
|
@ -122,78 +89,106 @@ var throwPrev = function(win) {
|
|
|
|
|
var newWidth = winRect.width / screen.width + '*screenSizeX';
|
|
|
|
|
var newHeight = winRect.height / screen.height + '*screenSizeY';
|
|
|
|
|
var throwPrev = slate.operation('throw', {
|
|
|
|
|
'x': newX,
|
|
|
|
|
'y': newY,
|
|
|
|
|
'width': newWidth,
|
|
|
|
|
'height': newHeight,
|
|
|
|
|
'screen': 'prev'
|
|
|
|
|
x: newX,
|
|
|
|
|
y: newY,
|
|
|
|
|
width: newWidth,
|
|
|
|
|
height: newHeight,
|
|
|
|
|
screen: 'prev'
|
|
|
|
|
});
|
|
|
|
|
win.doOperation(throwPrev);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var lefthalf = slate.operation('move', {
|
|
|
|
|
'x': 'screenOriginX',
|
|
|
|
|
'y': 'screenOriginY',
|
|
|
|
|
'width': 'screenSizeX/2',
|
|
|
|
|
'height': 'screenSizeY'
|
|
|
|
|
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'
|
|
|
|
|
x: 'screenOriginX+screenSizeX/2',
|
|
|
|
|
y: 'screenOriginY',
|
|
|
|
|
width: 'screenSizeX/2',
|
|
|
|
|
height: 'screenSizeY'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var tophalf = slate.operation('move', {
|
|
|
|
|
'x': 'screenOriginX',
|
|
|
|
|
'y': 'screenOriginY',
|
|
|
|
|
'width': 'screenSizeX',
|
|
|
|
|
'height': 'screenSizeY/2'
|
|
|
|
|
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'
|
|
|
|
|
x: 'screenOriginX',
|
|
|
|
|
y: 'screenOriginY+screenSizeY/2',
|
|
|
|
|
width: 'screenSizeX',
|
|
|
|
|
height: 'screenSizeY/2'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var mobile = slate.operation('move', {
|
|
|
|
|
'x': 'screenOriginX',
|
|
|
|
|
'y': 'screenOriginY',
|
|
|
|
|
'width': '480',
|
|
|
|
|
'height': 'screenSizeY'
|
|
|
|
|
x: 'screenOriginX',
|
|
|
|
|
y: 'screenOriginY',
|
|
|
|
|
width: '480',
|
|
|
|
|
height: 'screenSizeY'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var tablet = slate.operation('move', {
|
|
|
|
|
'x': 'screenOriginX',
|
|
|
|
|
'y': 'screenOriginY',
|
|
|
|
|
'width': '1024',
|
|
|
|
|
'height': '768'
|
|
|
|
|
x: 'screenOriginX',
|
|
|
|
|
y: 'screenOriginY',
|
|
|
|
|
width: '1024',
|
|
|
|
|
height: '768'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var desktop = slate.operation('move', {
|
|
|
|
|
'x': 'screenOriginX',
|
|
|
|
|
'y': 'screenOriginY',
|
|
|
|
|
'width': '1280',
|
|
|
|
|
'height': '800'
|
|
|
|
|
x: 'screenOriginX',
|
|
|
|
|
y: 'screenOriginY',
|
|
|
|
|
width: '1280',
|
|
|
|
|
height: '800'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var fullhd = slate.operation('move', {
|
|
|
|
|
'x': 'screenOriginX',
|
|
|
|
|
'y': 'screenOriginY',
|
|
|
|
|
'width': '1920',
|
|
|
|
|
'height': '1080'
|
|
|
|
|
x: 'screenOriginX',
|
|
|
|
|
y: 'screenOriginY',
|
|
|
|
|
width: '1920',
|
|
|
|
|
height: '1080'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Key bindings
|
|
|
|
|
/* Key configurations
|
|
|
|
|
====================================================================== */
|
|
|
|
|
|
|
|
|
|
var hyper = ':shift,ctrl,alt,cmd';
|
|
|
|
|
var hyperModal = hyper + ',s:toggle';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* default configs
|
|
|
|
|
====================================================================== */
|
|
|
|
|
|
|
|
|
|
slate.configAll({
|
|
|
|
|
checkDefaultsOnLoad: true,
|
|
|
|
|
defaultToCurrentScreen: true,
|
|
|
|
|
focusCheckWidthMax: 3000,
|
|
|
|
|
modalEscapeKey: 'esc',
|
|
|
|
|
nudgePercentOf: 'screenSize',
|
|
|
|
|
resizePercentOf: 'screenSize',
|
|
|
|
|
secondsBetweenRepeat: 0.1,
|
|
|
|
|
windowHintsDuration: 5,
|
|
|
|
|
windowHintsFontColor: '0;255;0;1.0',
|
|
|
|
|
windowHintsFontName: 'Menlo',
|
|
|
|
|
windowHintsFontSize: 60,
|
|
|
|
|
windowHintsHeight: 72,
|
|
|
|
|
windowHintsIgnoreHiddenWindows: false,
|
|
|
|
|
windowHintsShowIcons: true,
|
|
|
|
|
windowHintsSpread: true,
|
|
|
|
|
windowHintsWidth: 72
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* more key bindings
|
|
|
|
|
====================================================================== */
|
|
|
|
|
|
|
|
|
|
slate.bind('tab' + hyper, hint, false);
|
|
|
|
|
slate.bind('g' + hyper, grid, false);
|
|
|
|
|
|
|
|
|
@ -220,4 +215,3 @@ slate.bind('right' + hyperModal, resizeToRight, false);
|
|
|
|
|
slate.bind('down' + hyperModal, resizeToBottom, false);
|
|
|
|
|
slate.bind(']' + hyperModal, throwNext, false);
|
|
|
|
|
slate.bind('[' + hyperModal, throwPrev, false);
|
|
|
|
|
|
|
|
|
|