Skip to content

Instantly share code, notes, and snippets.

@srolel
Created August 28, 2018 18:15
Show Gist options
  • Save srolel/0833afde8fcf7488beaa59b68b1cea8f to your computer and use it in GitHub Desktop.
Save srolel/0833afde8fcf7488beaa59b68b1cea8f to your computer and use it in GitHub Desktop.
const robot = require('robot-js');
const { Keyboard, Mouse } = robot;
const keymap = {
I: [0, -1],
J: [-1, 0],
L: [1, 0],
K: [0, 1],
E: [0, -1],
S: [-1, 0],
F: [1, 0],
D: [0, 1],
};
const speed = 1;
const delay = 0;
const isMouseModeOn = state =>
state[robot.KEY_RSHIFT] && state[robot.KEY_LSHIFT];
const m = Mouse();
(async function main() {
while (true) {
const kstate = Keyboard.getState();
if (isMouseModeOn(kstate)) {
const delta = [0, 0];
for (let k in keymap) {
if (kstate[robot[`KEY_${k}`]]) {
delta[0] += keymap[k][0];
delta[1] += keymap[k][1];
}
}
const mstate = Mouse.getPos();
mstate.x += delta[0] * speed;
mstate.y += delta[1] * speed;
Mouse.setPos(mstate);
if (kstate[robot.KEY_SPACE]) {
m.click(robot.BUTTON_LEFT);
}
}
await new Promise(r => setTimeout(r, delay));
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment