Adds Slate as a window mgr
This commit is contained in:
parent
3fca7bedbc
commit
27e80a070e
1 changed files with 69 additions and 0 deletions
69
configs/.slate.js
Normal file
69
configs/.slate.js
Normal file
|
@ -0,0 +1,69 @@
|
|||
/* globals S,slate,_ */
|
||||
// Bindings for slate.
|
||||
// Forked from rschmukler/dotfiles
|
||||
// Hotkeys for quickly opening apps & changing window size
|
||||
|
||||
|
||||
var modal_key = ":s,ctrl";
|
||||
|
||||
// Configs
|
||||
S.cfga({
|
||||
"defaultToCurrentScreen" : true,
|
||||
"secondsBetweenRepeat" : 0.1,
|
||||
"checkDefaultsOnLoad" : true,
|
||||
"focusCheckWidthMax" : 3000
|
||||
});
|
||||
|
||||
// Window size /position shortcuts
|
||||
// ctrl+shift+h = use left half of screen.
|
||||
// ctrl+shift+l = right half, hjkl
|
||||
// ctrl+shift+m = use full window
|
||||
|
||||
S.bnda({
|
||||
// Push Bindings
|
||||
"l:ctrl;shift" : S.op("move", { "x": "screenSizeX/2 + screenOriginX+20", "y": "screenOriginY+20", "width": "screenSizeX*0.5 - 40", "height": "screenSizeY-100" }),
|
||||
"h:ctrl;shift" : S.op("move", { "x": "screenOriginX+20", "y": "screenOriginY+20", "width": "screenSizeX*0.5 - 40", "height": "screenSizeY-100" }),
|
||||
"k:ctrl;shift" : S.op("move", { "x": "screenOriginX+20", "y": "screenOriginY+20", "width": "screenSizeX - 40", "height": "screenSizeY/2 - 20" }),
|
||||
"j:ctrl;shift" : S.op("move", { "x": "screenOriginX+20", "y": "screenSizeY/2 + screenOriginY+20", "width": "screenSizeX - 40", "height": "screenSizeY/2 - 40" }),
|
||||
"m:ctrl;shift" : S.op("move", { "x": "screenOriginX+20", "y": "screenOriginY+20", "width": "screenSizeX - 40", "height": "screenSizeY - 100" }),
|
||||
"n:ctrl;shift" : S.op("move", { "x": "screenOriginX+screenSizeX/6", "y": "screenOriginY+20", "width": "2*screenSizeX/3", "height": "screenSizeY - 100" }),
|
||||
"b:ctrl;shift" : S.op("move", { "x": "screenOriginX+screenSizeX/4", "y": "screenOriginY+20", "width": "screenSizeX/2", "height": "screenSizeY - 100" }),
|
||||
});
|
||||
|
||||
|
||||
// Split dev layout
|
||||
|
||||
function appIsOpen(name) {
|
||||
var isOpen = false;
|
||||
slate.eachApp(function(app) {
|
||||
if (app.name == name) isOpen = true;
|
||||
});
|
||||
return isOpen;
|
||||
}
|
||||
|
||||
|
||||
// Binds modal key + {char} to focus different open apps
|
||||
// ctrl-s + h = focus hipchat
|
||||
// ctrl-s + f = focus iterm
|
||||
// etc, see below
|
||||
|
||||
var focus_apps = {
|
||||
f: 'iTerm2',
|
||||
m: 'Messages',
|
||||
x: 'Xcode',
|
||||
i: 'iOS Simulator',
|
||||
j: 'Jira',
|
||||
p: 'Spotify',
|
||||
c: 'Google Chrome',
|
||||
g: 'Google Chrome',
|
||||
s: 'Safari',
|
||||
l: 'LimeChat',
|
||||
k: 'Slack',
|
||||
w: 'Workflowy',
|
||||
t: 'iTunes'
|
||||
};
|
||||
|
||||
|
||||
_(focus_apps).forEach(function(app, key) {
|
||||
S.bind(key + modal_key, S.op("focus", {app: app}));
|
||||
});
|
Loading…
Reference in a new issue