Mercurial > hg > rlgwebd
view termemu-keys.js @ 160:ed837da65e5f
RLGWebD: Clean up code related to session timestamps.
TermSessions now store the timestamp of the latest data. This removes
the need to use fstat() to calculate idle times.
The reaper() function is removed. It may be useful to find another way
to remove old login keys.
author | John "Elwin" Edwards |
---|---|
date | Sat, 03 Jan 2015 17:39:15 -0500 |
parents | 6cfaf6d202be |
children |
line wrap: on
line source
/* termemu-keys.js: some key-handling code common to both drivers. */ /* ASCII values of keys 0-9. */ var numShifts = [41, 33, 64, 35, 36, 37, 94, 38, 42, 40]; var keyHexCodes = { init: function () { this[13] = ["0d", "0d"]; // return this[32] = ["20", "20"]; // space this[9] = ["09", "09"]; // tab this[192] = ["60", "7e"]; // backtick, tilde this[219] = ["5b", "7b"]; // open bracket, open brace this[221] = ["5d", "7d"]; // close bracket, close brace this[220] = ["5c", "7c"]; // backslash, pipe this[59] = ["3b", "3a"]; // semicolon, colon this[186] = ["3b", "3a"]; // semicolon, colon (Chrome) this[222] = ["27", "22"]; // single quote, double quote this[188] = ["2c", "3c"]; // comma, less than this[190] = ["2e", "3e"]; // period, right angle this[191] = ["2f", "3f"]; // slash, question mark this[61] = ["3d", "2b"]; // equal, plus this[187] = ["3d", "2b"]; // equal, plus (Chrome) this[109] = ["2d", "5f"]; // subtract, underscore (maybe on numpad) this[173] = ["2d", "5f"]; // subtract, underscore (maybe not on numpad) this[189] = ["2d", "5f"]; // subtract, underscore (Chrome) this[8] = ["08", "08"]; // backspace this[46] = ["1b5b337e", "1b5b337e"]; // delete this[27] = ["1b", "1b"]; // escape this[33] = ["1b5b357e", "1b5b357e"]; // page up this[34] = ["1b5b367e", "1b5b367e"]; // page down this[12] = ["1b5b45", "1b5b45"]; // Clear key = numpad 5 (Firefox) this.appCursor(false); this.appKeypad(false); }, /* Multi-char control sequences! Neat! */ appCursor: function (on) { /* Aren't special keys vile? */ if (on) { this[37] = ["1b4f44", "1b4f44"]; // left arror this[39] = ["1b4f43", "1b4f43"]; // right arrow this[38] = ["1b4f41", "1b4f41"]; // up arrow this[40] = ["1b4f42", "1b4f42"]; // down arrow this[35] = ["1b4f46", "1b4f46"]; // end this[36] = ["1b4f48", "1b4f48"]; // home } else { this[37] = ["1b5b44", "1b5b44"]; // left arror this[39] = ["1b5b43", "1b5b43"]; // right arrow this[38] = ["1b5b41", "1b5b41"]; // up arrow this[40] = ["1b5b42", "1b5b42"]; // down arrow this[35] = ["1b5b46", "1b5b46"]; // end this[36] = ["1b5b48", "1b5b48"]; // home } }, appKeypad: function (on) { /* In theory, these should produce either numerals or the k[a-c][1-3] * sequences. Since we can't count on the terminfo description actually * containing those sequences, pretend they're just arrow keys etc. */ this[97] = ["1b4f46", "1b4f46"]; this[98] = ["1b4f42", "1b4f42"]; this[99] = ["1b5b367e", "1b5b367e"]; this[100] = ["1b4f44", "1b4f44"]; this[101] = ["1b5b45", "1b5b45"]; this[102] = ["1b4f43", "1b4f43"]; this[103] = ["1b4f48", "1b4f48"]; this[104] = ["1b4f41", "1b4f41"]; this[105] = ["1b5b357e", "1b5b357e"]; return; } };