UNPKG

rkeys

Version:

A platform for creating tablet/HTML5 virtual-keyboard apps to send keystrokes to remote X11

55 lines (54 loc) 1.49 kB
// Generated by LiveScript 1.3.0 (function(){ var _, X11, H, Kco, downkeys, i$, ref$, len$, sig; _ = require('lodash'); X11 = require('x11'); H = require('./helper'); Kco = require('./keycode'); module.exports = { down: function(it){ return simulate(H.xtest.KeyPress, it); }, up: function(it){ return simulate(H.xtest.KeyRelease, it); } }; downkeys = []; for (i$ = 0, len$ = (ref$ = ['SIGINT', 'SIGHUP', 'SIGTERM']).length; i$ < len$; ++i$) { sig = ref$[i$]; process.on(sig, process.exit); } process.on('exit', releaseKeys); function fakeInput(type, keycode){ return H.xtest.FakeInput(type, keycode, 0, H.root, 0, 0); } function releaseKeys(){ var i$, ref$, len$, c, results$ = []; for (i$ = 0, len$ = (ref$ = downkeys).length; i$ < len$; ++i$) { c = ref$[i$]; log("release key code=" + c); results$.push(fakeInput(H.xtest.KeyRelease, c)); } return results$; } function simulate(type, key){ var cs, i$, len$, c, results$ = []; if (!(cs = Kco.getKeycodes(key))) { return; } for (i$ = 0, len$ = cs.length; i$ < len$; ++i$) { c = cs[i$]; trackDownkeys(type, c); results$.push(fakeInput(type, c)); } return results$; } function trackDownkeys(type, keycode){ switch (type) { case H.xtest.KeyPress: return downkeys.push(keycode); case H.xtest.KeyRelease: return _.pull(downkeys, keycode); } } }).call(this);