a99939657b
Accidentally commited the version of this configuration that has this variable set to false. Since most of the time, this variable should be true, commiting the true version will clean up my git status output.
123 lines
3 KiB
JavaScript
123 lines
3 KiB
JavaScript
// Support flag to branch KBDs depending on presence of Ergodox keyboard.
|
|
|
|
// Since the Ergodox has complicated modifier keys like "hyper" and "meh" key,
|
|
// we should prefer to use these when that keyboard is attached because it
|
|
// reduces the potential for collisions for Emacs KBDs. This becomes
|
|
// problematic, however, when the Ergodox is not attached because these keys are
|
|
// unavailable. Slate KBDs. Under these circumstances, potential collisions
|
|
// with Emacs KBDs is acceptable.
|
|
|
|
var ergodox_attached = true;
|
|
|
|
var HYPER = ":alt;shift;cmd;ctrl";
|
|
var MEH = ":alt;shift;ctrl";
|
|
|
|
var modal_key = ergodox_attached ? HYPER : ":ctrl;shift";
|
|
var resize_key = ergodox_attached ? MEH : ":alt;shift";
|
|
|
|
// Configs
|
|
S.cfga({
|
|
defaultToCurrentScreen: true,
|
|
secondsBetweenRepeat: 0.1,
|
|
checkDefaultsOnLoad: true,
|
|
focusCheckWidthMax: 3000
|
|
});
|
|
|
|
// window resizing bindings
|
|
var window_resizing_bindings = {
|
|
";": {
|
|
x: "screenSizeX/3*2 + screenOriginX+20",
|
|
y: "screenOriginY+20",
|
|
width: "screenSizeX/3 - 40",
|
|
height: "screenSizeY-100"
|
|
},
|
|
g: {
|
|
x: "screenOriginX+20",
|
|
y: "screenOriginY+20",
|
|
width: "screenSizeX/3*2 - 40",
|
|
height: "screenSizeY-100"
|
|
},
|
|
o: {
|
|
x: "screenSizeX / 2 + screenOriginX + 20",
|
|
y: "screenOriginY + 20",
|
|
width: "screenSizeX / 2 - 40",
|
|
height: "(screenSizeY - 120) / 2"
|
|
},
|
|
",": {
|
|
x: "screenSizeX / 2 + screenOriginX + 20",
|
|
y: "(screenSizeY - 120) / 2 + 20 + 20",
|
|
width: "screenSizeX / 2 - 40",
|
|
height: "(screenSizeY - 120) / 2"
|
|
},
|
|
h: {
|
|
x: "screenOriginX+20",
|
|
y: "screenOriginY+20",
|
|
width: "screenSizeX*0.5 - 40",
|
|
height: "screenSizeY-100"
|
|
},
|
|
j: {
|
|
x: "screenOriginX+screenSizeX/6",
|
|
y: "screenOriginY+20",
|
|
width: "2*screenSizeX/3",
|
|
height: "screenSizeY - 100"
|
|
},
|
|
k: {
|
|
x: "screenOriginX+20",
|
|
y: "screenOriginY+20",
|
|
width: "screenSizeX - 40",
|
|
height: "screenSizeY - 100"
|
|
},
|
|
l: {
|
|
x: "screenSizeX/2 + screenOriginX+20",
|
|
y: "screenOriginY+20",
|
|
width: "screenSizeX*0.5 - 40",
|
|
height: "screenSizeY-100"
|
|
}
|
|
};
|
|
|
|
var window_resizing_bindings = Object.keys(window_resizing_bindings).reduce(
|
|
function(acc, kbd) {
|
|
acc[kbd + resize_key] = S.op("move", window_resizing_bindings[kbd]);
|
|
return acc;
|
|
},
|
|
{}
|
|
);
|
|
|
|
S.bnda(window_resizing_bindings);
|
|
|
|
// Moves applications across multiple screens
|
|
var throwLeft = slate.operation("throw", {
|
|
screen: "0",
|
|
width: "screenSizeX",
|
|
height: "screenSizeY"
|
|
});
|
|
var throwRight = slate.operation("throw", {
|
|
screen: "1",
|
|
width: "screenSizeX",
|
|
height: "screenSizeY"
|
|
});
|
|
|
|
slate.bind("1:ctrl", throwLeft);
|
|
slate.bind("2:ctrl", throwRight);
|
|
|
|
var focus_apps = {
|
|
1: "1Password",
|
|
i: "iTunes",
|
|
a: "Atom",
|
|
h: "Dash",
|
|
e: "Emacs",
|
|
t: "iTerm2",
|
|
m: "Messages",
|
|
s: "Spotify",
|
|
c: "Google Chrome",
|
|
l: "LimeChat",
|
|
k: "Slack",
|
|
w: "Wireshark",
|
|
p: "Tomato One",
|
|
d: "Discord"
|
|
};
|
|
|
|
Object.keys(focus_apps).forEach(function(key) {
|
|
app = focus_apps[key];
|
|
S.bind(key + modal_key, S.op("focus", { app: app }));
|
|
});
|