summaryrefslogtreecommitdiffstats
path: root/tty-keys.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-10-26 16:00:51 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-10-26 16:00:51 +0000
commitc92c2bfb10d9c94acf0d453d9b4e71d6d696e8af (patch)
tree456462fc2422d1463e787f916d1bfc5f0061b913 /tty-keys.c
parentbbca6fe5b01388e6256d3a31b80a45ce2b2a0ff2 (diff)
Support the (mostly new) function key+modifier caps (kIC-kIC7). Most of these
will be caught (soon) by the xterm keys code in xterm itself but some other descriptions such as rxvt define them as well.
Diffstat (limited to 'tty-keys.c')
-rw-r--r--tty-keys.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/tty-keys.c b/tty-keys.c
index c56f47a0..26bb2861 100644
--- a/tty-keys.c
+++ b/tty-keys.c
@@ -122,6 +122,68 @@ struct tty_key_ent tty_keys[] = {
{ 0, "\033OM", KEYC_KP_ENTER, TTYKEY_RAW },
{ 0, "\033Op", KEYC_KP_ZERO, TTYKEY_RAW },
{ 0, "\033On", KEYC_KP_PERIOD, TTYKEY_RAW },
+
+ /* Key and modifier capabilities. */
+ { TTYC_KDC2, NULL, KEYC_DC|KEYC_SHIFT, 0 },
+ { TTYC_KDC3, NULL, KEYC_DC|KEYC_ESCAPE, 0 },
+ { TTYC_KDC4, NULL, KEYC_DC|KEYC_SHIFT|KEYC_ESCAPE, 0 },
+ { TTYC_KDC5, NULL, KEYC_DC|KEYC_CTRL, 0 },
+ { TTYC_KDC6, NULL, KEYC_DC|KEYC_SHIFT|KEYC_CTRL, 0 },
+ { TTYC_KDC7, NULL, KEYC_DC|KEYC_ESCAPE|KEYC_CTRL, 0 },
+ { TTYC_KDN2, NULL, KEYC_DOWN|KEYC_SHIFT, 0 },
+ { TTYC_KDN3, NULL, KEYC_DOWN|KEYC_ESCAPE, 0 },
+ { TTYC_KDN4, NULL, KEYC_DOWN|KEYC_SHIFT|KEYC_ESCAPE, 0 },
+ { TTYC_KDN5, NULL, KEYC_DOWN|KEYC_CTRL, 0 },
+ { TTYC_KDN6, NULL, KEYC_DOWN|KEYC_SHIFT|KEYC_CTRL, 0 },
+ { TTYC_KDN7, NULL, KEYC_DOWN|KEYC_ESCAPE|KEYC_CTRL, 0 },
+ { TTYC_KEND2, NULL, KEYC_END|KEYC_SHIFT, 0 },
+ { TTYC_KEND3, NULL, KEYC_END|KEYC_ESCAPE, 0 },
+ { TTYC_KEND4, NULL, KEYC_END|KEYC_SHIFT|KEYC_ESCAPE, 0 },
+ { TTYC_KEND5, NULL, KEYC_END|KEYC_CTRL, 0 },
+ { TTYC_KEND6, NULL, KEYC_END|KEYC_SHIFT|KEYC_CTRL, 0 },
+ { TTYC_KEND7, NULL, KEYC_END|KEYC_ESCAPE|KEYC_CTRL, 0 },
+ { TTYC_KHOM2, NULL, KEYC_HOME|KEYC_SHIFT, 0 },
+ { TTYC_KHOM3, NULL, KEYC_HOME|KEYC_ESCAPE, 0 },
+ { TTYC_KHOM4, NULL, KEYC_HOME|KEYC_SHIFT|KEYC_ESCAPE, 0 },
+ { TTYC_KHOM5, NULL, KEYC_HOME|KEYC_CTRL, 0 },
+ { TTYC_KHOM6, NULL, KEYC_HOME|KEYC_SHIFT|KEYC_CTRL, 0 },
+ { TTYC_KHOM7, NULL, KEYC_HOME|KEYC_ESCAPE|KEYC_CTRL, 0 },
+ { TTYC_KIC2, NULL, KEYC_IC|KEYC_SHIFT, 0 },
+ { TTYC_KIC3, NULL, KEYC_IC|KEYC_ESCAPE, 0 },
+ { TTYC_KIC4, NULL, KEYC_IC|KEYC_SHIFT|KEYC_ESCAPE, 0 },
+ { TTYC_KIC5, NULL, KEYC_IC|KEYC_CTRL, 0 },
+ { TTYC_KIC6, NULL, KEYC_IC|KEYC_SHIFT|KEYC_CTRL, 0 },
+ { TTYC_KIC7, NULL, KEYC_IC|KEYC_ESCAPE|KEYC_CTRL, 0 },
+ { TTYC_KLFT2, NULL, KEYC_LEFT|KEYC_SHIFT, 0 },
+ { TTYC_KLFT3, NULL, KEYC_LEFT|KEYC_ESCAPE, 0 },
+ { TTYC_KLFT4, NULL, KEYC_LEFT|KEYC_SHIFT|KEYC_ESCAPE, 0 },
+ { TTYC_KLFT5, NULL, KEYC_LEFT|KEYC_CTRL, 0 },
+ { TTYC_KLFT6, NULL, KEYC_LEFT|KEYC_SHIFT|KEYC_CTRL, 0 },
+ { TTYC_KLFT7, NULL, KEYC_LEFT|KEYC_ESCAPE|KEYC_CTRL, 0 },
+ { TTYC_KNXT2, NULL, KEYC_NPAGE|KEYC_SHIFT, 0 },
+ { TTYC_KNXT3, NULL, KEYC_NPAGE|KEYC_ESCAPE, 0 },
+ { TTYC_KNXT4, NULL, KEYC_NPAGE|KEYC_SHIFT|KEYC_ESCAPE, 0 },
+ { TTYC_KNXT5, NULL, KEYC_NPAGE|KEYC_CTRL, 0 },
+ { TTYC_KNXT6, NULL, KEYC_NPAGE|KEYC_SHIFT|KEYC_CTRL, 0 },
+ { TTYC_KNXT7, NULL, KEYC_NPAGE|KEYC_ESCAPE|KEYC_CTRL, 0 },
+ { TTYC_KPRV2, NULL, KEYC_PPAGE|KEYC_SHIFT, 0 },
+ { TTYC_KPRV3, NULL, KEYC_PPAGE|KEYC_ESCAPE, 0 },
+ { TTYC_KPRV4, NULL, KEYC_PPAGE|KEYC_SHIFT|KEYC_ESCAPE, 0 },
+ { TTYC_KPRV5, NULL, KEYC_PPAGE|KEYC_CTRL, 0 },
+ { TTYC_KPRV6, NULL, KEYC_PPAGE|KEYC_SHIFT|KEYC_CTRL, 0 },
+ { TTYC_KPRV7, NULL, KEYC_PPAGE|KEYC_ESCAPE|KEYC_CTRL, 0 },
+ { TTYC_KRIT2, NULL, KEYC_RIGHT|KEYC_SHIFT, 0 },
+ { TTYC_KRIT3, NULL, KEYC_RIGHT|KEYC_ESCAPE, 0 },
+ { TTYC_KRIT4, NULL, KEYC_RIGHT|KEYC_SHIFT|KEYC_ESCAPE, 0 },
+ { TTYC_KRIT5, NULL, KEYC_RIGHT|KEYC_CTRL, 0 },
+ { TTYC_KRIT6, NULL, KEYC_RIGHT|KEYC_SHIFT|KEYC_CTRL, 0 },
+ { TTYC_KRIT7, NULL, KEYC_RIGHT|KEYC_ESCAPE|KEYC_CTRL, 0 },
+ { TTYC_KUP2, NULL, KEYC_UP|KEYC_SHIFT, 0 },
+ { TTYC_KUP3, NULL, KEYC_UP|KEYC_ESCAPE, 0 },
+ { TTYC_KUP4, NULL, KEYC_UP|KEYC_SHIFT|KEYC_ESCAPE, 0 },
+ { TTYC_KUP5, NULL, KEYC_UP|KEYC_CTRL, 0 },
+ { TTYC_KUP6, NULL, KEYC_UP|KEYC_SHIFT|KEYC_CTRL, 0 },
+ { TTYC_KUP7, NULL, KEYC_UP|KEYC_ESCAPE|KEYC_CTRL, 0 },
};
RB_GENERATE(tty_keys, tty_key, entry, tty_keys_cmp);