annotate termemu-keys.js @ 85:4303d94d87a2

rlgwebd.js: Unlink control socket at startup. Unlinking at shutdown doesn't work because at that time, the process is chroot'ed and unprivileged.
author John "Elwin" Edwards <elwin@sdf.org>
date Sun, 08 Jul 2012 17:49:43 -0700
parents d7eb63cd7a16
children 6cfaf6d202be
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
1 /* termemu-keys.js: some key-handling code common to both drivers. */
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
2
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
3 /* ASCII values of keys 0-9. */
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
4 var numShifts = [41, 33, 64, 35, 36, 37, 94, 38, 42, 40];
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
5
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
6 var keyHexCodes = {
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
7 init: function () {
70
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
8 this[13] = ["0d", "0d"]; // return
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
9 this[32] = ["20", "20"]; // space
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
10 this[9] = ["09", "09"]; // tab
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
11 this[192] = ["60", "7e"]; // backtick, tilde
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
12 this[219] = ["5b", "7b"]; // open bracket, open brace
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
13 this[221] = ["5d", "7d"]; // close bracket, close brace
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
14 this[220] = ["5c", "7c"]; // backslash, pipe
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
15 this[59] = ["3b", "3a"]; // semicolon, colon
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
16 this[186] = ["3b", "3a"]; // semicolon, colon (Chrome)
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
17 this[222] = ["27", "22"]; // single quote, double quote
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
18 this[188] = ["2c", "3c"]; // comma, less than
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
19 this[190] = ["2e", "3e"]; // period, right angle
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
20 this[191] = ["2f", "3f"]; // slash, question mark
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
21 this[61] = ["3d", "2b"]; // equal, plus
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
22 this[187] = ["3d", "2b"]; // equal, plus (Chrome)
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
23 this[109] = ["2d", "5f"]; // subtract, underscore (maybe on numpad)
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
24 this[173] = ["2d", "5f"]; // subtract, underscore (maybe not on numpad)
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
25 this[189] = ["2d", "5f"]; // subtract, underscore (Chrome)
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
26 this[8] = ["08", "08"]; // backspace
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
27 this[46] = ["1b5b337e", "1b5b337e"]; // delete
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
28 this[27] = ["1b", "1b"]; // escape
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
29 this[33] = ["1b5b357e", "1b5b357e"]; // page up
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
30 this[34] = ["1b5b367e", "1b5b367e"]; // page down
6
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
31 this.appCursor(false);
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
32 this.appKeypad(false);
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
33 },
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
34 /* Multi-char control sequences! Neat! */
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
35 appCursor: function (on) {
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
36 /* Aren't special keys vile? */
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
37 if (on) {
70
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
38 this[37] = ["1b4f44", "1b4f44"]; // left arror
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
39 this[39] = ["1b4f43", "1b4f43"]; // right arrow
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
40 this[38] = ["1b4f41", "1b4f41"]; // up arrow
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
41 this[40] = ["1b4f42", "1b4f42"]; // down arrow
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
42 this[35] = ["1b4f46", "1b4f46"]; // end
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
43 this[36] = ["1b4f48", "1b4f48"]; // home
6
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
44 }
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
45 else {
70
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
46 this[37] = ["1b5b44", "1b5b44"]; // left arror
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
47 this[39] = ["1b5b43", "1b5b43"]; // right arrow
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
48 this[38] = ["1b5b41", "1b5b41"]; // up arrow
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
49 this[40] = ["1b5b42", "1b5b42"]; // down arrow
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
50 this[35] = ["1b5b46", "1b5b46"]; // end
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
51 this[36] = ["1b5b48", "1b5b48"]; // home
6
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
52 }
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
53 },
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
54 appKeypad: function (on) {
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
55 /* In theory, these should produce either numerals or the k[a-c][1-3]
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
56 * sequences. Since we can't count on the terminfo description actually
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
57 * containing those sequences, pretend they're just arrow keys etc.
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
58 */
70
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
59 this[97] = ["1b4f46", "1b4f46"];
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
60 this[98] = ["1b4f42", "1b4f42"];
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
61 this[99] = ["1b5b367e", "1b5b367e"];
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
62 this[100] = ["1b4f44", "1b4f44"];
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
63 this[101] = ["1b5b45", "1b5b45"];
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
64 this[102] = ["1b4f43", "1b4f43"];
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
65 this[103] = ["1b4f48", "1b4f48"];
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
66 this[104] = ["1b4f41", "1b4f41"];
d7eb63cd7a16 Try to get some compatibility for keys.
John "Elwin" Edwards <elwin@sdf.org>
parents: 6
diff changeset
67 this[105] = ["1b5b357e", "1b5b357e"];
6
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
68 return;
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
69 }
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
70 };
21738794755e Put common key tables into a common file.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff changeset
71