Commit 44a2db43 authored by Maciej W. Rozycki's avatar Maciej W. Rozycki Committed by Linus Torvalds

lk201: remove obsolete driver

Remove the old-fashioned lk201 driver under drivers/tc/ that used to be
used by the old dz.c and zs.c drivers, which is now orphan code referred to
from nowhere and does not build anymore.  A modern replacement is available
as drivers/input/keyboard/lkkbd.c.

There are no plans to do anything about this piece of code and it does not
fit anywhere anymore, so it is not just a matter of maintenance or the lack
of.  There are still some bits that might be added to the new lkkbd.c
driver based on the old code, and the embedded hardware documentation which
is otherwise quite hard to get hold of might be useful to keep too.  Both
of these can be done separately though.  RIP.
Signed-off-by: default avatarMaciej W. Rozycki <macro@linux-mips.org>
Acked-by: default avatarRalf Baechle <ralf@linux-mips.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent debe6214
......@@ -121,7 +121,6 @@ kxgettext
lkc_defs.h
lex.c*
lex.*.c
lk201-map.c
logo_*.c
logo_*_clut224.c
logo_*_mono.c
......
......@@ -279,7 +279,6 @@ core-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/
cflags-$(CONFIG_MACH_DECSTATION)+= -Iinclude/asm-mips/mach-dec
libs-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/prom/
load-$(CONFIG_MACH_DECSTATION) += 0xffffffff80040000
CLEAN_FILES += drivers/tc/lk201-map.c
#
# Wind River PPMC Board (4KC + GT64120)
......
......@@ -5,18 +5,3 @@
# Object file lists.
obj-$(CONFIG_TC) += tc.o tc-driver.o
obj-$(CONFIG_VT) += lk201.o lk201-map.o lk201-remap.o
$(obj)/lk201-map.o: $(obj)/lk201-map.c
# Uncomment if you're changing the keymap and have an appropriate
# loadkeys version for the map. By default, we'll use the shipped
# versions.
# GENERATE_KEYMAP := 1
ifdef GENERATE_KEYMAP
$(obj)/lk201-map.c: $(obj)/%.c: $(src)/%.map
loadkeys --mktable $< > $@
endif
/* Do not edit this file! It was automatically generated by */
/* loadkeys --mktable defkeymap.map > defkeymap.c */
#include <linux/types.h>
#include <linux/keyboard.h>
#include <linux/kd.h>
u_short plain_map[NR_KEYS] = {
0xf200, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104, 0xf105, 0xf106,
0xf107, 0xf108, 0xf109, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf11b,
0xf11c, 0xf110, 0xf111, 0xf112, 0xf113, 0xf060, 0xf031, 0xf032,
0xf033, 0xf034, 0xf035, 0xf036, 0xf037, 0xf038, 0xf039, 0xf030,
0xf02d, 0xf03d, 0xf07f, 0xf114, 0xf115, 0xf116, 0xf200, 0xf200,
0xf200, 0xf200, 0xf009, 0xfb71, 0xfb77, 0xfb65, 0xfb72, 0xfb74,
0xfb79, 0xfb75, 0xfb69, 0xfb6f, 0xfb70, 0xf05b, 0xf05d, 0xf201,
0xf117, 0xf118, 0xf119, 0xf307, 0xf308, 0xf309, 0xf30b, 0xf702,
0xf207, 0xfb61, 0xfb73, 0xfb64, 0xfb66, 0xfb67, 0xfb68, 0xfb6a,
0xfb6b, 0xfb6c, 0xf03b, 0xf027, 0xf05c, 0xf603, 0xf304, 0xf305,
0xf306, 0xf200, 0xf700, 0xf03e, 0xfb7a, 0xfb78, 0xfb63, 0xfb76,
0xfb62, 0xfb6e, 0xfb6d, 0xf02c, 0xf02e, 0xf02f, 0xf200, 0xf601,
0xf600, 0xf602, 0xf301, 0xf302, 0xf303, 0xf30e, 0xf200, 0xf703,
0xf020, 0xf200, 0xf200, 0xf300, 0xf310, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
};
static u_short shift_map[NR_KEYS] = {
0xf200, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104, 0xf105, 0xf106,
0xf107, 0xf108, 0xf109, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf203,
0xf11c, 0xf110, 0xf111, 0xf112, 0xf113, 0xf07e, 0xf021, 0xf040,
0xf023, 0xf024, 0xf025, 0xf05e, 0xf026, 0xf02a, 0xf028, 0xf029,
0xf05f, 0xf02b, 0xf07f, 0xf114, 0xf115, 0xf116, 0xf200, 0xf200,
0xf200, 0xf200, 0xf009, 0xfb51, 0xfb57, 0xfb45, 0xfb52, 0xfb54,
0xfb59, 0xfb55, 0xfb49, 0xfb4f, 0xfb50, 0xf07b, 0xf07d, 0xf201,
0xf117, 0xf20b, 0xf20a, 0xf307, 0xf308, 0xf309, 0xf30b, 0xf702,
0xf207, 0xfb41, 0xfb53, 0xfb44, 0xfb46, 0xfb47, 0xfb48, 0xfb4a,
0xfb4b, 0xfb4c, 0xf03a, 0xf022, 0xf07c, 0xf603, 0xf304, 0xf305,
0xf306, 0xf200, 0xf700, 0xf03c, 0xfb5a, 0xfb58, 0xfb43, 0xfb56,
0xfb42, 0xfb4e, 0xfb4d, 0xf03c, 0xf03e, 0xf03f, 0xf200, 0xf601,
0xf600, 0xf602, 0xf301, 0xf302, 0xf303, 0xf30e, 0xf200, 0xf703,
0xf020, 0xf200, 0xf200, 0xf300, 0xf310, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
};
static u_short altgr_map[NR_KEYS] = {
0xf200, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104, 0xf105, 0xf106,
0xf107, 0xf108, 0xf109, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf202,
0xf11c, 0xf110, 0xf111, 0xf112, 0xf113, 0xf200, 0xf200, 0xf040,
0xf200, 0xf024, 0xf200, 0xf200, 0xf07b, 0xf05b, 0xf05d, 0xf07d,
0xf05c, 0xf200, 0xf200, 0xf114, 0xf115, 0xf116, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xfb71, 0xfb77, 0xf918, 0xfb72, 0xfb74,
0xfb79, 0xfb75, 0xfb69, 0xfb6f, 0xfb70, 0xf200, 0xf07e, 0xf201,
0xf117, 0xf118, 0xf119, 0xf911, 0xf912, 0xf913, 0xf30b, 0xf702,
0xf207, 0xf914, 0xfb73, 0xf917, 0xf919, 0xfb67, 0xfb68, 0xfb6a,
0xfb6b, 0xfb6c, 0xf200, 0xf200, 0xf200, 0xf603, 0xf90e, 0xf90f,
0xf910, 0xf200, 0xf700, 0xf200, 0xfb7a, 0xfb78, 0xf916, 0xfb76,
0xf915, 0xfb6e, 0xfb6d, 0xf200, 0xf200, 0xf200, 0xf200, 0xf601,
0xf600, 0xf602, 0xf90b, 0xf90c, 0xf90d, 0xf30e, 0xf200, 0xf703,
0xf200, 0xf200, 0xf200, 0xf90a, 0xf310, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
};
static u_short ctrl_map[NR_KEYS] = {
0xf200, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104, 0xf105, 0xf106,
0xf107, 0xf108, 0xf109, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf204,
0xf11c, 0xf110, 0xf111, 0xf112, 0xf113, 0xf81b, 0xf200, 0xf000,
0xf01b, 0xf01c, 0xf01d, 0xf01e, 0xf01f, 0xf07f, 0xf200, 0xf200,
0xf01f, 0xf200, 0xf008, 0xf114, 0xf115, 0xf116, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf011, 0xf017, 0xf005, 0xf012, 0xf014,
0xf019, 0xf015, 0xf009, 0xf00f, 0xf010, 0xf01b, 0xf01d, 0xf201,
0xf117, 0xf118, 0xf119, 0xf307, 0xf308, 0xf309, 0xf30b, 0xf702,
0xf207, 0xf001, 0xf013, 0xf004, 0xf006, 0xf007, 0xf008, 0xf00a,
0xf00b, 0xf00c, 0xf200, 0xf007, 0xf01c, 0xf603, 0xf304, 0xf305,
0xf306, 0xf200, 0xf700, 0xf200, 0xf01a, 0xf018, 0xf003, 0xf016,
0xf002, 0xf00e, 0xf00d, 0xf200, 0xf20e, 0xf07f, 0xf200, 0xf601,
0xf600, 0xf602, 0xf301, 0xf302, 0xf303, 0xf30e, 0xf200, 0xf703,
0xf000, 0xf200, 0xf200, 0xf300, 0xf310, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
};
static u_short shift_ctrl_map[NR_KEYS] = {
0xf200, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104, 0xf105, 0xf106,
0xf107, 0xf108, 0xf109, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf200,
0xf11c, 0xf110, 0xf111, 0xf112, 0xf113, 0xf200, 0xf200, 0xf000,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
0xf01f, 0xf200, 0xf200, 0xf114, 0xf115, 0xf116, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf011, 0xf017, 0xf005, 0xf012, 0xf014,
0xf019, 0xf015, 0xf009, 0xf00f, 0xf010, 0xf200, 0xf200, 0xf201,
0xf117, 0xf118, 0xf119, 0xf307, 0xf308, 0xf309, 0xf30b, 0xf702,
0xf207, 0xf001, 0xf013, 0xf004, 0xf006, 0xf007, 0xf008, 0xf00a,
0xf00b, 0xf00c, 0xf200, 0xf200, 0xf200, 0xf603, 0xf304, 0xf305,
0xf306, 0xf200, 0xf700, 0xf200, 0xf01a, 0xf018, 0xf003, 0xf016,
0xf002, 0xf00e, 0xf00d, 0xf200, 0xf200, 0xf200, 0xf200, 0xf601,
0xf600, 0xf602, 0xf301, 0xf302, 0xf303, 0xf30e, 0xf200, 0xf703,
0xf200, 0xf200, 0xf200, 0xf300, 0xf310, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
};
static u_short alt_map[NR_KEYS] = {
0xf200, 0xf500, 0xf501, 0xf502, 0xf503, 0xf504, 0xf505, 0xf506,
0xf507, 0xf508, 0xf509, 0xf50a, 0xf50b, 0xf50c, 0xf50d, 0xf200,
0xf11c, 0xf510, 0xf511, 0xf512, 0xf513, 0xf01b, 0xf831, 0xf832,
0xf833, 0xf834, 0xf835, 0xf836, 0xf837, 0xf838, 0xf839, 0xf830,
0xf82d, 0xf83d, 0xf87f, 0xf114, 0xf115, 0xf116, 0xf200, 0xf200,
0xf200, 0xf200, 0xf809, 0xf871, 0xf877, 0xf865, 0xf872, 0xf874,
0xf879, 0xf875, 0xf869, 0xf86f, 0xf870, 0xf85b, 0xf85d, 0xf80d,
0xf117, 0xf118, 0xf119, 0xf907, 0xf908, 0xf909, 0xf30b, 0xf702,
0xf207, 0xf861, 0xf873, 0xf864, 0xf866, 0xf867, 0xf868, 0xf86a,
0xf86b, 0xf86c, 0xf83b, 0xf827, 0xf85c, 0xf603, 0xf904, 0xf905,
0xf906, 0xf200, 0xf700, 0xf200, 0xf87a, 0xf878, 0xf863, 0xf876,
0xf862, 0xf86e, 0xf86d, 0xf82c, 0xf82e, 0xf82f, 0xf200, 0xf210,
0xf600, 0xf211, 0xf901, 0xf902, 0xf903, 0xf30e, 0xf200, 0xf703,
0xf820, 0xf200, 0xf200, 0xf900, 0xf310, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
};
static u_short ctrl_alt_map[NR_KEYS] = {
0xf200, 0xf500, 0xf501, 0xf502, 0xf503, 0xf504, 0xf505, 0xf506,
0xf507, 0xf508, 0xf509, 0xf50a, 0xf50b, 0xf50c, 0xf50d, 0xf200,
0xf11c, 0xf510, 0xf511, 0xf512, 0xf513, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf114, 0xf115, 0xf20c, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf811, 0xf817, 0xf805, 0xf812, 0xf814,
0xf819, 0xf815, 0xf809, 0xf80f, 0xf810, 0xf200, 0xf200, 0xf201,
0xf117, 0xf118, 0xf119, 0xf307, 0xf308, 0xf309, 0xf30b, 0xf702,
0xf207, 0xf801, 0xf813, 0xf804, 0xf806, 0xf807, 0xf808, 0xf80a,
0xf80b, 0xf80c, 0xf200, 0xf200, 0xf200, 0xf603, 0xf304, 0xf305,
0xf306, 0xf200, 0xf700, 0xf200, 0xf81a, 0xf818, 0xf803, 0xf816,
0xf802, 0xf80e, 0xf80d, 0xf200, 0xf200, 0xf200, 0xf200, 0xf601,
0xf600, 0xf602, 0xf301, 0xf302, 0xf303, 0xf30e, 0xf200, 0xf703,
0xf200, 0xf200, 0xf200, 0xf300, 0xf20c, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
};
ushort *key_maps[MAX_NR_KEYMAPS] = {
plain_map, shift_map, altgr_map, 0,
ctrl_map, shift_ctrl_map, 0, 0,
alt_map, 0, 0, 0,
ctrl_alt_map, 0
};
unsigned int keymap_count = 7;
/*
* Philosophy: most people do not define more strings, but they who do
* often want quite a lot of string space. So, we statically allocate
* the default and allocate dynamically in chunks of 512 bytes.
*/
char func_buf[] = {
'\033', '[', '[', 'A', 0,
'\033', '[', '[', 'B', 0,
'\033', '[', '[', 'C', 0,
'\033', '[', '[', 'D', 0,
'\033', '[', '[', 'E', 0,
'\033', '[', '1', '7', '~', 0,
'\033', '[', '1', '8', '~', 0,
'\033', '[', '1', '9', '~', 0,
'\033', '[', '2', '0', '~', 0,
'\033', '[', '2', '1', '~', 0,
'\033', '[', '2', '3', '~', 0,
'\033', '[', '2', '4', '~', 0,
'\033', '[', '2', '5', '~', 0,
'\033', '[', '2', '6', '~', 0,
'\033', '[', '2', '8', '~', 0,
'\033', '[', '2', '9', '~', 0,
'\033', '[', '3', '1', '~', 0,
'\033', '[', '3', '2', '~', 0,
'\033', '[', '3', '3', '~', 0,
'\033', '[', '3', '4', '~', 0,
'\033', '[', '1', '~', 0,
'\033', '[', '2', '~', 0,
'\033', '[', '3', '~', 0,
'\033', '[', '4', '~', 0,
'\033', '[', '5', '~', 0,
'\033', '[', '6', '~', 0,
'\033', '[', 'M', 0,
'\033', '[', 'P', 0,
};
char *funcbufptr = func_buf;
int funcbufsize = sizeof(func_buf);
int funcbufleft = 0; /* space left */
char *func_table[MAX_NR_FUNC] = {
func_buf + 0,
func_buf + 5,
func_buf + 10,
func_buf + 15,
func_buf + 20,
func_buf + 25,
func_buf + 31,
func_buf + 37,
func_buf + 43,
func_buf + 49,
func_buf + 55,
func_buf + 61,
func_buf + 67,
func_buf + 73,
func_buf + 79,
func_buf + 85,
func_buf + 91,
func_buf + 97,
func_buf + 103,
func_buf + 109,
func_buf + 115,
func_buf + 120,
func_buf + 125,
func_buf + 130,
func_buf + 135,
func_buf + 140,
func_buf + 145,
0,
0,
func_buf + 149,
0,
};
struct kbdiacruc accent_table[MAX_DIACR] = {
{'`', 'A', ''}, {'`', 'a', ''},
{'\'', 'A', ''}, {'\'', 'a', ''},
{'^', 'A', ''}, {'^', 'a', ''},
{'~', 'A', ''}, {'~', 'a', ''},
{'"', 'A', ''}, {'"', 'a', ''},
{'O', 'A', ''}, {'o', 'a', ''},
{'0', 'A', ''}, {'0', 'a', ''},
{'A', 'A', ''}, {'a', 'a', ''},
{'A', 'E', ''}, {'a', 'e', ''},
{',', 'C', ''}, {',', 'c', ''},
{'`', 'E', ''}, {'`', 'e', ''},
{'\'', 'E', ''}, {'\'', 'e', ''},
{'^', 'E', ''}, {'^', 'e', ''},
{'"', 'E', ''}, {'"', 'e', ''},
{'`', 'I', ''}, {'`', 'i', ''},
{'\'', 'I', ''}, {'\'', 'i', ''},
{'^', 'I', ''}, {'^', 'i', ''},
{'"', 'I', ''}, {'"', 'i', ''},
{'-', 'D', ''}, {'-', 'd', ''},
{'~', 'N', ''}, {'~', 'n', ''},
{'`', 'O', ''}, {'`', 'o', ''},
{'\'', 'O', ''}, {'\'', 'o', ''},
{'^', 'O', ''}, {'^', 'o', ''},
{'~', 'O', ''}, {'~', 'o', ''},
{'"', 'O', ''}, {'"', 'o', ''},
{'/', 'O', ''}, {'/', 'o', ''},
{'`', 'U', ''}, {'`', 'u', ''},
{'\'', 'U', ''}, {'\'', 'u', ''},
{'^', 'U', ''}, {'^', 'u', ''},
{'"', 'U', ''}, {'"', 'u', ''},
{'\'', 'Y', ''}, {'\'', 'y', ''},
{'T', 'H', ''}, {'t', 'h', ''},
{'s', 's', ''}, {'"', 'y', ''},
{'s', 'z', ''}, {'i', 'j', ''},
};
unsigned int accent_table_size = 68;
# Default kernel keymap. This uses 7 modifier combinations.
keymaps 0-2,4-5,8,12
# Change the above line into
# keymaps 0-2,4-6,8,12
# in case you want the entries
# altgr control keycode 83 = Boot
# altgr control keycode 111 = Boot
# below.
#
# In fact AltGr is used very little, and one more keymap can
# be saved by mapping AltGr to Alt (and adapting a few entries):
# keycode 100 = Alt
#
keycode 0x15 = grave tilde
alt keycode 0x15 = Escape
control keycode 0x15 = Meta_Escape
keycode 0x16 = one exclam
alt keycode 0x16 = Meta_one
keycode 0x17 = two at at
control keycode 0x17 = nul
shift control keycode 0x17 = nul
alt keycode 0x17 = Meta_two
keycode 0x18 = three numbersign
control keycode 0x18 = Escape
alt keycode 0x18 = Meta_three
keycode 0x19 = four dollar dollar
control keycode 0x19 = Control_backslash
alt keycode 0x19 = Meta_four
keycode 0x1a = five percent
control keycode 0x1a = Control_bracketright
alt keycode 0x1a = Meta_five
keycode 0x1b = six asciicircum
control keycode 0x1b = Control_asciicircum
alt keycode 0x1b = Meta_six
keycode 0x1c = seven ampersand braceleft
control keycode 0x1c = Control_underscore
alt keycode 0x1c = Meta_seven
keycode 0x1d = eight asterisk bracketleft
control keycode 0x1d = Delete
alt keycode 0x1d = Meta_eight
keycode 0x1e = nine parenleft bracketright
alt keycode 0x1e = Meta_nine
keycode 0x1f = zero parenright braceright
alt keycode 0x1f = Meta_zero
keycode 0x20 = minus underscore backslash
control keycode 0x20 = Control_underscore
shift control keycode 0x20 = Control_underscore
alt keycode 0x20 = Meta_minus
keycode 0x21 = equal plus
alt keycode 0x21 = Meta_equal
keycode 0x22 = Delete Delete
control keycode 0x22 = BackSpace
alt keycode 0x22 = Meta_Delete
keycode 0x2a = Tab Tab
alt keycode 0x2a = Meta_Tab
keycode 0x2b = q
keycode 0x2c = w
keycode 0x2d = e
altgr keycode 0x2d = Hex_E
keycode 0x2e = r
keycode 0x2f = t
keycode 0x30 = y
keycode 0x31 = u
keycode 0x32 = i
keycode 0x33 = o
keycode 0x34 = p
keycode 0x35 = bracketleft braceleft
control keycode 0x35 = Escape
alt keycode 0x35 = Meta_bracketleft
keycode 0x36 = bracketright braceright asciitilde
control keycode 0x36 = Control_bracketright
alt keycode 0x36 = Meta_bracketright
keycode 0x37 = Return
alt keycode 0x37 = Meta_Control_m
keycode 0x3f = Control
keycode 0x41 = a
altgr keycode 0x41 = Hex_A
keycode 0x42 = s
keycode 0x43 = d
altgr keycode 0x43 = Hex_D
keycode 0x44 = f
altgr keycode 0x44 = Hex_F
keycode 0x45 = g
keycode 0x46 = h
keycode 0x47 = j
keycode 0x48 = k
keycode 0x49 = l
keycode 0x4a = semicolon colon
alt keycode 0x4a = Meta_semicolon
keycode 0x4b = apostrophe quotedbl
control keycode 0x4b = Control_g
alt keycode 0x4b = Meta_apostrophe
# keycode 41 = grave asciitilde
# control keycode 41 = nul
# alt keycode 41 = Meta_grave
keycode 0x52 = Shift
keycode 0x4c = backslash bar
control keycode 0x4c = Control_backslash
alt keycode 0x4c = Meta_backslash
keycode 0x53 = greater less
keycode 0x54 = z
keycode 0x55 = x
keycode 0x56 = c
altgr keycode 0x56 = Hex_C
keycode 0x57 = v
keycode 0x58 = b
altgr keycode 0x58 = Hex_B
keycode 0x59 = n
keycode 0x5a = m
keycode 0x5b = comma less
alt keycode 0x5b = Meta_comma
keycode 0x5c = period greater
control keycode 0x5c = Compose
alt keycode 0x5c = Meta_period
keycode 0x5d = slash question
control keycode 0x5d = Delete
alt keycode 0x5d = Meta_slash
keycode 0x67 = Alt
keycode 0x68 = space space
control keycode 0x68 = nul
alt keycode 0x68 = Meta_space
keycode 0x40 = Caps_Lock
keycode 0x01 = F1
control keycode 0x01 = F1
alt keycode 0x01 = Console_1
control alt keycode 0x01 = Console_1
keycode 0x02 = F2
control keycode 0x02 = F2
alt keycode 0x02 = Console_2
control alt keycode 0x02 = Console_2
keycode 0x03 = F3
control keycode 0x03 = F3
alt keycode 0x03 = Console_3
control alt keycode 0x03 = Console_3
keycode 0x04 = F4
control keycode 0x04 = F4
alt keycode 0x04 = Console_4
control alt keycode 0x04 = Console_4
keycode 0x05 = F5
control keycode 0x05 = F5
alt keycode 0x05 = Console_5
control alt keycode 0x05 = Console_5
keycode 0x06 = F6
control keycode 0x06 = F6
alt keycode 0x06 = Console_6
control alt keycode 0x06 = Console_6
keycode 0x07 = F7
control keycode 0x07 = F7
alt keycode 0x07 = Console_7
control alt keycode 0x07 = Console_7
keycode 0x08 = F8
control keycode 0x08 = F8
alt keycode 0x08 = Console_8
control alt keycode 0x08 = Console_8
keycode 0x09 = F9
control keycode 0x09 = F9
alt keycode 0x09 = Console_9
control alt keycode 0x09 = Console_9
keycode 0x0a = F10
control keycode 0x0a = F10
alt keycode 0x0a = Console_10
control alt keycode 0x0a = Console_10
keycode 0x0b = F11
control keycode 0x0b = F11
alt keycode 0x0b = Console_11
control alt keycode 0x0b = Console_11
keycode 0x0c = F12
control keycode 0x0c = F12
alt keycode 0x0c = Console_12
control alt keycode 0x0c = Console_12
keycode 0x0d = F13
control keycode 0x0d = F13
alt keycode 0x0d = Console_13
control alt keycode 0x0d = Console_13
keycode 0x0e = F14
control keycode 0x0e = F14
alt keycode 0x0e = Console_14
control alt keycode 0x0e = Console_14
keycode 0x11 = F17
control keycode 0x11 = F17
alt keycode 0x11 = Console_17
control alt keycode 0x11 = Console_17
keycode 0x12 = F18
control keycode 0x12 = F18
alt keycode 0x12 = Console_18
control alt keycode 0x12 = Console_18
keycode 0x13 = F19
control keycode 0x13 = F19
alt keycode 0x13 = Console_19
control alt keycode 0x13 = Console_19
keycode 0x14 = F20
control keycode 0x14 = F20
alt keycode 0x14 = Console_20
control alt keycode 0x14 = Console_20
keycode 0x3b = KP_7
alt keycode 0x3b = Ascii_7
altgr keycode 0x3b = Hex_7
keycode 0x3c = KP_8
alt keycode 0x3c = Ascii_8
altgr keycode 0x3c = Hex_8
keycode 0x3d = KP_9
alt keycode 0x3d = Ascii_9
altgr keycode 0x3d = Hex_9
keycode 0x3e = KP_Subtract
keycode 0x4e = KP_4
alt keycode 0x4e = Ascii_4
altgr keycode 0x4e = Hex_4
keycode 0x4f = KP_5
alt keycode 0x4f = Ascii_5
altgr keycode 0x4f = Hex_5
keycode 0x50 = KP_6
alt keycode 0x50 = Ascii_6
altgr keycode 0x50 = Hex_6
keycode 0x62 = KP_1
alt keycode 0x62 = Ascii_1
altgr keycode 0x62 = Hex_1
keycode 0x63 = KP_2
alt keycode 0x63 = Ascii_2
altgr keycode 0x63 = Hex_2
keycode 0x64 = KP_3
alt keycode 0x64 = Ascii_3
altgr keycode 0x64 = Hex_3
keycode 0x6b = KP_0
alt keycode 0x6b = Ascii_0
altgr keycode 0x6b = Hex_0
keycode 0x6c = KP_Period
# altgr control keycode 0x6c = Boot
control alt keycode 0x6c = Boot
keycode 0x65 = KP_Enter
keycode 0x3f = Control
# keycode 100 = AltGr
keycode 0x23 = Find
keycode 0x4d = Up
keycode 0x39 = Prior
shift keycode 0x39 = Scroll_Backward
keycode 0x5f = Left
alt keycode 0x5f = Decr_Console
keycode 0x61 = Right
alt keycode 0x61 = Incr_Console
keycode 0x38 = Select
keycode 0x60 = Down
keycode 0x3a = Next
shift keycode 0x3a = Scroll_Forward
keycode 0x24 = Insert
keycode 0x25 = Remove
# altgr control keycode 0x25 = Boot
control alt keycode 0x25 = Boot
keycode 0x0f = Help Show_Memory Show_Registers
control keycode 0x0f = Show_State
keycode 0x10 = Do
string F1 = "\033[[A"
string F2 = "\033[[B"
string F3 = "\033[[C"
string F4 = "\033[[D"
string F5 = "\033[[E"
string F6 = "\033[17~"
string F7 = "\033[18~"
string F8 = "\033[19~"
string F9 = "\033[20~"
string F10 = "\033[21~"
string F11 = "\033[23~"
string F12 = "\033[24~"
string F13 = "\033[25~"
string F14 = "\033[26~"
string F15 = "\033[28~"
string F16 = "\033[29~"
string F17 = "\033[31~"
string F18 = "\033[32~"
string F19 = "\033[33~"
string F20 = "\033[34~"
string Find = "\033[1~"
string Insert = "\033[2~"
string Remove = "\033[3~"
string Select = "\033[4~"
string Prior = "\033[5~"
string Next = "\033[6~"
string Macro = "\033[M"
string Pause = "\033[P"
compose '`' 'A' to ''
compose '`' 'a' to ''
compose '\'' 'A' to ''
compose '\'' 'a' to ''
compose '^' 'A' to ''
compose '^' 'a' to ''
compose '~' 'A' to ''
compose '~' 'a' to ''
compose '"' 'A' to ''
compose '"' 'a' to ''
compose 'O' 'A' to ''
compose 'o' 'a' to ''
compose '0' 'A' to ''
compose '0' 'a' to ''
compose 'A' 'A' to ''
compose 'a' 'a' to ''
compose 'A' 'E' to ''
compose 'a' 'e' to ''
compose ',' 'C' to ''
compose ',' 'c' to ''
compose '`' 'E' to ''
compose '`' 'e' to ''
compose '\'' 'E' to ''
compose '\'' 'e' to ''
compose '^' 'E' to ''
compose '^' 'e' to ''
compose '"' 'E' to ''
compose '"' 'e' to ''
compose '`' 'I' to ''
compose '`' 'i' to ''
compose '\'' 'I' to ''
compose '\'' 'i' to ''
compose '^' 'I' to ''
compose '^' 'i' to ''
compose '"' 'I' to ''
compose '"' 'i' to ''
compose '-' 'D' to ''
compose '-' 'd' to ''
compose '~' 'N' to ''
compose '~' 'n' to ''
compose '`' 'O' to ''
compose '`' 'o' to ''
compose '\'' 'O' to ''
compose '\'' 'o' to ''
compose '^' 'O' to ''
compose '^' 'o' to ''
compose '~' 'O' to ''
compose '~' 'o' to ''
compose '"' 'O' to ''
compose '"' 'o' to ''
compose '/' 'O' to ''
compose '/' 'o' to ''
compose '`' 'U' to ''
compose '`' 'u' to ''
compose '\'' 'U' to ''