summaryrefslogtreecommitdiffstats
path: root/linux/console
diff options
context:
space:
mode:
authorpascal <pascal@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2008-08-21 10:46:46 +0000
committerpascal <pascal@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2008-08-21 10:46:46 +0000
commit4debde5c70a7953cae029f6c4305a6739e1cf7da (patch)
treecb96643dc20d691da36cd1e909518294feaa5ebe /linux/console
parent15d8f7e5a300641af93a2afcf28f1d10df2a454d (diff)
Skripte, um die keymap für die Console automatisch erstellen zu lassen
git-svn-id: https://svn.neo-layout.org@785 b9310e46-f624-0410-8ea1-cfbb3a30dc96
Diffstat (limited to 'linux/console')
-rw-r--r--linux/console/bin/README13
-rw-r--r--linux/console/bin/console.ersetze116
-rw-r--r--linux/console/bin/console.ersetze.vorprogramm31
-rw-r--r--linux/console/bin/console.keysyms1062
-rw-r--r--linux/console/bin/console.sondertasten175
-rw-r--r--linux/console/bin/console.string_compose193
-rwxr-xr-xlinux/console/bin/mach_console97
-rwxr-xr-xlinux/console/bin/mach_kurzreferenz9
-rwxr-xr-xlinux/console/bin/mach_kurzreferenz.vorprogramm37
9 files changed, 1733 insertions, 0 deletions
diff --git a/linux/console/bin/README b/linux/console/bin/README
new file mode 100644
index 0000000..611bb4f
--- /dev/null
+++ b/linux/console/bin/README
@@ -0,0 +1,13 @@
+In console.ersetze.vorprogramm finden sich die absolut notwendigen Ersetzungen.
+Unter der console (!!!!) werden mit »dumpkeys --long-info > dump« werden die dem System bekannten keysyms der console (die sind anders als unter x!!!!) bestimmt.
+Mit »mach_kurzreferenz.vorpgrogramm« werden weitere notwendige Ersetzungen bestimmt.
+
+Zusammengefasst:
+cat console.ersetze.vorprogramm > console.ersetze
+dumpkeys --long-info > dump
+mach_kurzreferenz.vorpgrogramm >> console.ersetze
+
+Nun kann mit »mach_kurzreferenz > kurzreferenz« eine Kurzreferenz aus der xmodmap erstellt werden.
+
+Aus dieser Kurzreferenz kann mit »mach_console > neo.map« die Datei erstellt werden, die mit »loadkeys neo.map« (als root!!!) gelden werden kann.
+
diff --git a/linux/console/bin/console.ersetze b/linux/console/bin/console.ersetze
new file mode 100644
index 0000000..356015a
--- /dev/null
+++ b/linux/console/bin/console.ersetze
@@ -0,0 +1,116 @@
+s/ 1 / one /g
+s/ 2 / two /g
+s/ 3 / three /g
+s/ 4 / four /g
+s/ 5 / five /g
+s/ 6 / six /g
+s/ 7 / seven /g
+s/ 8 / eight /g
+s/ 9 / nine /g
+s/ 0 / zero /g
+s/ 1 / one /g
+s/ 2 / two /g
+s/ 3 / three /g
+s/ 4 / four /g
+s/ 5 / five /g
+s/ 6 / six /g
+s/ 7 / seven /g
+s/ 8 / eight /g
+s/ 9 / nine /g
+s/ 0 / zero /g
+s/NoSymbol/VoidSymbol/g
+s/U1/U+1/g
+s/U2/U+2/g
+s/U3/U+3/g
+s/U4/U+4/g
+s/U5/U+5/g
+s/U6/U+6/g
+s/U7/U+7/g
+s/U8/U+8/g
+s/U9/U+9/g
+s/U0/U+0/g
+s/dead_stroke/VoidSymbol/g
+s/dead_belowdot/VoidSymbol/g
+s/dead_belowdot/VoidSymbol/g
+s/enfilledcircbullet/U+2022/g
+s/numerosign/U+2116/g
+s/logicalor/U+2228/g
+s/logicaland/U+2227/g
+s/femalesymbol/U+2640/g
+s/EuroSign/U+20ac/g
+s/malesymbol/U+2642/g
+s/Greek_kappa/U+03ba/g
+s/notelementof/VoidSymbol/g
+s/doublelowquotemark/U+201e/g
+s/singlelowquotemark/U+201a/g
+s/leftdoublequotemark/U+201c/g
+s/leftsinglequotemark/U+2018/g
+s/rightdoublequotemark/U+201d/g
+s/rightsinglequotemark/U+2019/g
+s/emptyset/VoidSymbol/g
+s/endash/U+2013/g
+s/emdash/U+2014/g
+s/dead_abovedot/U+0307/g
+s/dead_abovering/U+030a/g
+s/ellipsis/U+2026/g
+s/Greek_xi/U+03be/g
+s/Greek_lambda/U+03bb/g
+s/Greek_chi/U+03c7/g
+s/Greek_omega/U+03c9/g
+s/radical/U+221a/g
+s/Greek_psi/U+03c8/g
+s/Greek_gamma/U+03b3/g
+s/Greek_phi/U+03c6/g
+s/Greek_finalsmallsigma/U+03c2/g
+s/dead_macron/U+0304/g
+s/Greek_iota/U+03b9/g
+s/integral/U+222b/g
+s/Greek_alpha/U+03b1/g
+s/Greek_epsilon/U+03b5/g
+s/Greek_omicron/U+03bf/g
+s/elementof/VoidSymbol/g
+s/Greek_sigma/U+03c3/g
+s/Greek_nu/U+03bd/g
+s/Greek_tau/U+03c4/g
+s/partialderivative/U+2202/g
+s/Greek_delta/U+03b4/g
+s/Greek_upsilon/U+03c5/g
+s/nabla/U+2207/g
+s/variation/U+221d/g
+s/Greek_eta/U+03b7/g
+s/Greek_pi/U+03c0/g
+s/Greek_zeta/U+03b6/g
+s/Undo/VoidSymbol/g
+s/Redo/VoidSymbol/g
+s/Greek_beta/U+03b2/g
+s/Greek_mu/U+03bc/g
+s/ifonlyif/U+21d4/g
+s/Greek_rho/U+03c1/g
+s/Greek_theta/U+03b8/g
+s/identical/U+2261/g
+s/notequal/U+2260/g
+s/Pointer_EnableKeys/VoidSymbol/g
+s/KP_Home/VoidSymbol/g
+s/dagger/U+2020/g
+s/KP_Up/VoidSymbol/g
+s/uparrow/U+2191/g
+s/intersection/U+2229/g
+s/KP_Prior/VoidSymbol/g
+s/containsas/VoidSymbol/g
+s/KP_Left/VoidSymbol/g
+s/leftarrow/U+2190/g
+s/includedin/U+2282/g
+s/KP_Begin/VoidSymbol/g
+s/infinity/U+221e/g
+s/EuroSign/U+20ac/g
+s/KP_Right/VoidSymbol/g
+s/rightarrow/U+2192/g
+s/includes/U+2283/g
+s/KP_End/VoidSymbol/g
+s/KP_Down/VoidSymbol/g
+s/downarrow/U+2193/g
+s/union/U+222a/g
+s/KP_Next/VoidSymbol/g
+s/KP_Insert/VoidSymbol/g
+s/KP_Delete/VoidSymbol/g
+s/KP_Separator/U+002c/g
diff --git a/linux/console/bin/console.ersetze.vorprogramm b/linux/console/bin/console.ersetze.vorprogramm
new file mode 100644
index 0000000..e9f999e
--- /dev/null
+++ b/linux/console/bin/console.ersetze.vorprogramm
@@ -0,0 +1,31 @@
+s/ 1 / one /g
+s/ 2 / two /g
+s/ 3 / three /g
+s/ 4 / four /g
+s/ 5 / five /g
+s/ 6 / six /g
+s/ 7 / seven /g
+s/ 8 / eight /g
+s/ 9 / nine /g
+s/ 0 / zero /g
+s/ 1 / one /g
+s/ 2 / two /g
+s/ 3 / three /g
+s/ 4 / four /g
+s/ 5 / five /g
+s/ 6 / six /g
+s/ 7 / seven /g
+s/ 8 / eight /g
+s/ 9 / nine /g
+s/ 0 / zero /g
+s/NoSymbol/VoidSymbol/g
+s/U1/U+1/g
+s/U2/U+2/g
+s/U3/U+3/g
+s/U4/U+4/g
+s/U5/U+5/g
+s/U6/U+6/g
+s/U7/U+7/g
+s/U8/U+8/g
+s/U9/U+9/g
+s/U0/U+0/g
diff --git a/linux/console/bin/console.keysyms b/linux/console/bin/console.keysyms
new file mode 100644
index 0000000..6e587bd
--- /dev/null
+++ b/linux/console/bin/console.keysyms
@@ -0,0 +1,1062 @@
+# This list can be used to convert X11 Keysyms to Unicode 2.1 character.
+# The list is not checked for correctness by Unicode officials. Use it
+# at your own risk and the creator is not responsable for any damage that
+# occured due to using this list.
+#
+# The list is created by looking at the Keysym names and the Unicode data
+# file. Other mapping tables were used as a reference where needed.
+# Due to a lack of knowledge of the Hebrew, Thai and Hangul symbols,
+# expect errors in these sections. The mapping of the keypad keys
+# might also require some adjustments.
+#
+# The following fields are used:
+# 1 The X11 keysym numbers from the include file keysymdef.h
+# 2 The Unicode (2.1) position (U0000 means unknown Unicode position)
+# #
+# 3 the name of the X11 keysym (without XK_)
+#
+# Authors: Richard Verhoeven, TUE, <river@win.tue.nl>
+# Markus Kuhn, University of Cambridge, <mkuhn@acm.org>
+#
+# You are free to use and modify this table. If you introduce errors
+# in the table, please remove the copyright line. If you remove errors,
+# please let me know, so I can update my version.
+#
+# $XFree86: xc/programs/xterm/unicode/keysym.map,v 1.1 1999/06/12 15:37:24 dawes Exp $
+#
+0x0020 U0020 # space
+0x0021 U0021 # exclam
+0x0022 U0022 # quotedbl
+0x0023 U0023 # numbersign
+0x0024 U0024 # dollar
+0x0025 U0025 # percent
+0x0026 U0026 # ampersand
+0x0027 U0027 # apostrophe
+0x0027 U0027 # quoteright /* deprecated */
+0x0028 U0028 # parenleft
+0x0029 U0029 # parenright
+0x002a U002a # asterisk
+0x002b U002b # plus
+0x002c U002c # comma
+0x002d U002d # minus
+0x002e U002e # period
+0x002f U002f # slash
+0x0030 U0030 # 0
+0x0031 U0031 # 1
+0x0032 U0032 # 2
+0x0033 U0033 # 3
+0x0034 U0034 # 4
+0x0035 U0035 # 5
+0x0036 U0036 # 6
+0x0037 U0037 # 7
+0x0038 U0038 # 8
+0x0039 U0039 # 9
+0x003a U003a # colon
+0x003b U003b # semicolon
+0x003c U003c # less
+0x003d U003d # equal
+0x003e U003e # greater
+0x003f U003f # question
+0x0040 U0040 # at
+0x0041 U0041 # A
+0x0042 U0042 # B
+0x0043 U0043 # C
+0x0044 U0044 # D
+0x0045 U0045 # E
+0x0046 U0046 # F
+0x0047 U0047 # G
+0x0048 U0048 # H
+0x0049 U0049 # I
+0x004a U004a # J
+0x004b U004b # K
+0x004c U004c # L
+0x004d U004d # M
+0x004e U004e # N
+0x004f U004f # O
+0x0050 U0050 # P
+0x0051 U0051 # Q
+0x0052 U0052 # R
+0x0053 U0053 # S
+0x0054 U0054 # T
+0x0055 U0055 # U
+0x0056 U0056 # V
+0x0057 U0057 # W
+0x0058 U0058 # X
+0x0059 U0059 # Y
+0x005a U005a # Z
+0x005b U005b # bracketleft
+0x005c U005c # backslash
+0x005d U005d # bracketright
+0x005e U005e # asciicircum
+0x005f U005f # underscore
+0x0060 U0060 # grave
+0x0060 U0060 # quoteleft /* deprecated */
+0x0061 U0061 # a
+0x0062 U0062 # b
+0x0063 U0063 # c
+0x0064 U0064 # d
+0x0065 U0065 # e
+0x0066 U0066 # f
+0x0067 U0067 # g
+0x0068 U0068 # h
+0x0069 U0069 # i
+0x006a U006a # j
+0x006b U006b # k
+0x006c U006c # l
+0x006d U006d # m
+0x006e U006e # n
+0x006f U006f # o
+0x0070 U0070 # p
+0x0071 U0071 # q
+0x0072 U0072 # r
+0x0073 U0073 # s
+0x0074 U0074 # t
+0x0075 U0075 # u
+0x0076 U0076 # v
+0x0077 U0077 # w
+0x0078 U0078 # x
+0x0079 U0079 # y
+0x007a U007a # z
+0x007b U007b # braceleft
+0x007c U007c # bar
+0x007d U007d # braceright
+0x007e U007e # asciitilde
+0x00a0 U00a0 # nobreakspace
+0x00a1 U00a1 # exclamdown
+0x00a2 U00a2 # cent
+0x00a3 U00a3 # sterling
+0x00a4 U00a4 # currency
+0x00a5 U00a5 # yen
+0x00a6 U00a6 # brokenbar
+0x00a7 U00a7 # section
+0x00a8 U00a8 # diaeresis
+0x00a9 U00a9 # copyright
+0x00aa U00aa # ordfeminine
+0x00ab U00ab # guillemotleft /* left angle quotation mark */
+0x00ac U00ac # notsign
+0x00ad U00ad # hyphen
+0x00ae U00ae # registered
+0x00af U00af # macron
+0x00b0 U00b0 # degree
+0x00b1 U00b1 # plusminus
+0x00b2 U00b2 # twosuperior
+0x00b3 U00b3 # threesuperior
+0x00b4 U00b4 # acute
+0x00b5 U00b5 # mu
+0x00b6 U00b6 # paragraph
+0x00b7 U00b7 # periodcentered
+0x00b8 U00b8 # cedilla
+0x00b9 U00b9 # onesuperior
+0x00ba U00ba # masculine
+0x00bb U00bb # guillemotright /* right angle quotation mark */
+0x00bc U00bc # onequarter
+0x00bd U00bd # onehalf
+0x00be U00be # threequarters
+0x00bf U00bf # questiondown
+0x00c0 U00c0 # Agrave
+0x00c1 U00c1 # Aacute
+0x00c2 U00c2 # Acircumflex
+0x00c3 U00c3 # Atilde
+0x00c4 U00c4 # Adiaeresis
+0x00c5 U00c5 # Aring
+0x00c6 U00c6 # AE
+0x00c7 U00c7 # Ccedilla
+0x00c8 U00c8 # Egrave
+0x00c9 U00c9 # Eacute
+0x00ca U00ca # Ecircumflex
+0x00cb U00cb # Ediaeresis
+0x00cc U00cc # Igrave
+0x00cd U00cd # Iacute
+0x00ce U00ce # Icircumflex
+0x00cf U00cf # Idiaeresis
+0x00d0 U00d0 # ETH
+0x00d0 U00d0 # Eth /* deprecated */
+0x00d1 U00d1 # Ntilde
+0x00d2 U00d2 # Ograve
+0x00d3 U00d3 # Oacute
+0x00d4 U00d4 # Ocircumflex
+0x00d5 U00d5 # Otilde
+0x00d6 U00d6 # Odiaeresis
+0x00d7 U00d7 # multiply
+0x00d8 U00d8 # Ooblique
+0x00d9 U00d9 # Ugrave
+0x00da U00da # Uacute
+0x00db U00db # Ucircumflex
+0x00dc U00dc # Udiaeresis
+0x00dd U00dd # Yacute
+0x00de U00de # THORN
+0x00de U00de # Thorn /* deprecated */
+0x00df U00df # ssharp
+0x00e0 U00e0 # agrave
+0x00e1 U00e1 # aacute
+0x00e2 U00e2 # acircumflex
+0x00e3 U00e3 # atilde
+0x00e4 U00e4 # adiaeresis
+0x00e5 U00e5 # aring
+0x00e6 U00e6 # ae
+0x00e7 U00e7 # ccedilla
+0x00e8 U00e8 # egrave
+0x00e9 U00e9 # eacute
+0x00ea U00ea # ecircumflex
+0x00eb U00eb # ediaeresis
+0x00ec U00ec # igrave
+0x00ed U00ed # iacute
+0x00ee U00ee # icircumflex
+0x00ef U00ef # idiaeresis
+0x00f0 U00f0 # eth
+0x00f1 U00f1 # ntilde
+0x00f2 U00f2 # ograve
+0x00f3 U00f3 # oacute
+0x00f4 U00f4 # ocircumflex
+0x00f5 U00f5 # otilde
+0x00f6 U00f6 # odiaeresis
+0x00f7 U00f7 # division
+0x00f8 U00f8 # oslash
+0x00f9 U00f9 # ugrave
+0x00fa U00fa # uacute
+0x00fb U00fb # ucircumflex
+0x00fc U00fc # udiaeresis
+0x00fd U00fd # yacute
+0x00fe U00fe # thorn
+0x00ff U00ff # ydiaeresis
+0x01a1 U0104 # Aogonek
+0x01a2 U02d8 # breve
+0x01a3 U0141 # Lstroke
+0x01a5 U013d # Lcaron
+0x01a6 U015a # Sacute
+0x01a9 U0160 # Scaron
+0x01aa U015e # Scedilla
+0x01ab U0164 # Tcaron
+0x01ac U0179 # Zacute
+0x01ae U017d # Zcaron
+0x01af U017b # Zabovedot
+0x01b1 U0105 # aogonek
+0x01b2 U02db # ogonek
+0x01b3 U0142 # lstroke
+0x01b5 U013e # lcaron
+0x01b6 U015b # sacute
+0x01b7 U02c7 # caron
+0x01b9 U0161 # scaron
+0x01ba U015f # scedilla
+0x01bb U0165 # tcaron
+0x01bc U017a # zacute
+0x01bd U02dd # doubleacute
+0x01be U017e # zcaron
+0x01bf U017c # zabovedot
+0x01c0 U0154 # Racute
+0x01c3 U0102 # Abreve
+0x01c5 U0139 # Lacute
+0x01c6 U0106 # Cacute
+0x01c8 U010c # Ccaron
+0x01ca U0118 # Eogonek
+0x01cc U011a # Ecaron
+0x01cf U010e # Dcaron
+0x01d0 U0110 # Dstroke
+0x01d1 U0143 # Nacute
+0x01d2 U0147 # Ncaron
+0x01d5 U0150 # Odoubleacute
+0x01d8 U0158 # Rcaron
+0x01d9 U016e # Uring
+0x01db U0170 # Udoubleacute
+0x01de U0162 # Tcedilla
+0x01e0 U0155 # racute
+0x01e3 U0103 # abreve
+0x01e5 U013a # lacute
+0x01e6 U0107 # cacute
+0x01e8 U010d # ccaron
+0x01ea U0119 # eogonek
+0x01ec U011b # ecaron
+0x01ef U010f # dcaron
+0x01f0 U0111 # dstroke
+0x01f1 U0144 # nacute
+0x01f2 U0148 # ncaron
+0x01f5 U0151 # odoubleacute
+0x01f8 U0159 # rcaron
+0x01f9 U016f # uring
+0x01fb U0171 # udoubleacute
+0x01fe U0163 # tcedilla
+0x01ff U02d9 # abovedot
+0x02a1 U0126 # Hstroke
+0x02a6 U0124 # Hcircumflex
+0x02a9 U0130 # Iabovedot
+0x02ab U011e # Gbreve
+0x02ac U0134 # Jcircumflex
+0x02b1 U0127 # hstroke
+0x02b6 U0125 # hcircumflex
+0x02b9 U0131 # idotless
+0x02bb U011f # gbreve
+0x02bc U0135 # jcircumflex
+0x02c5 U010a # Cabovedot
+0x02c6 U0108 # Ccircumflex
+0x02d5 U0120 # Gabovedot
+0x02d8 U011c # Gcircumflex
+0x02dd U016c # Ubreve
+0x02de U015c # Scircumflex
+0x02e5 U010b # cabovedot
+0x02e6 U0109 # ccircumflex
+0x02f5 U0121 # gabovedot
+0x02f8 U011d # gcircumflex
+0x02fd U016d # ubreve
+0x02fe U015d # scircumflex
+0x03a2 U0138 # kra
+0x03a3 U0156 # Rcedilla
+0x03a5 U0128 # Itilde
+0x03a6 U013b # Lcedilla
+0x03aa U0112 # Emacron
+0x03ab U0122 # Gcedilla
+0x03ac U0166 # Tslash
+0x03b3 U0157 # rcedilla
+0x03b5 U0129 # itilde
+0x03b6 U013c # lcedilla
+0x03ba U0113 # emacron
+0x03bb U0123 # gcedilla
+0x03bc U0167 # tslash
+0x03bd U014a # ENG
+0x03bf U014b # eng
+0x03c0 U0100 # Amacron
+0x03c7 U012e # Iogonek
+0x03cc U0116 # Eabovedot
+0x03cf U012a # Imacron
+0x03d1 U0145 # Ncedilla
+0x03d2 U014c # Omacron
+0x03d3 U0136 # Kcedilla
+0x03d9 U0172 # Uogonek
+0x03dd U0168 # Utilde
+0x03de U016a # Umacron
+0x03e0 U0101 # amacron
+0x03e7 U012f # iogonek
+0x03ec U0117 # eabovedot
+0x03ef U012b # imacron
+0x03f1 U0146 # ncedilla
+0x03f2 U014d # omacron
+0x03f3 U0137 # kcedilla
+0x03f9 U0173 # uogonek
+0x03fd U0169 # utilde
+0x03fe U016b # umacron
+0x13bc U0152 # OE
+0x13bd U0153 # oe
+0x13be U0178 # Ydiaeresis
+0x047e U203e # overline
+0x04a1 U3002 # kana_fullstop
+0x04a2 U300c # kana_openingbracket
+0x04a3 U300d # kana_closingbracket
+0x04a4 U3001 # kana_comma
+0x04a5 U30fb # kana_conjunctive
+0x04a6 U30f2 # kana_WO
+0x04a7 U30a1 # kana_a
+0x04a8 U30a3 # kana_i
+0x04a9 U30a5 # kana_u
+0x04aa U30a7 # kana_e
+0x04ab U30a9 # kana_o
+0x04ac U30e3 # kana_ya
+0x04ad U30e5 # kana_yu
+0x04ae U30e7 # kana_yo
+0x04af U30c3 # kana_tsu
+0x04b0 U30fc # prolongedsound
+0x04b1 U30a2 # kana_A
+0x04b2 U30a4 # kana_I
+0x04b3 U30a6 # kana_U
+0x04b4 U30a8 # kana_E
+0x04b5 U30aa # kana_O
+0x04b6 U30ab # kana_KA
+0x04b7 U30ad # kana_KI
+0x04b8 U30af # kana_KU
+0x04b9 U30b1 # kana_KE
+0x04ba U30b3 # kana_KO
+0x04bb U30b5 # kana_SA
+0x04bc U30b7 # kana_SHI
+0x04bd U30b9 # kana_SU
+0x04be U30bb # kana_SE
+0x04bf U30bd # kana_SO
+0x04c0 U30bf # kana_TA
+0x04c1 U30c1 # kana_CHI
+0x04c2 U30c4 # kana_TSU
+0x04c3 U30c6 # kana_TE
+0x04c4 U30c8 # kana_TO
+0x04c5 U30ca # kana_NA
+0x04c6 U30cb # kana_NI
+0x04c7 U30cc # kana_NU
+0x04c8 U30cd # kana_NE
+0x04c9 U30ce # kana_NO
+0x04ca U30cf # kana_HA
+0x04cb U30d2 # kana_HI
+0x04cc U30d5 # kana_FU
+0x04cd U30d8 # kana_HE
+0x04ce U30db # kana_HO
+0x04cf U30de # kana_MA
+0x04d0 U30df # kana_MI
+0x04d1 U30e0 # kana_MU
+0x04d2 U30e1 # kana_ME
+0x04d3 U30e2 # kana_MO
+0x04d4 U30e4 # kana_YA
+0x04d5 U30e6 # kana_YU
+0x04d6 U30e8 # kana_YO
+0x04d7 U30e9 # kana_RA
+0x04d8 U30ea # kana_RI
+0x04d9 U30eb # kana_RU
+0x04da U30ec # kana_RE
+0x04db U30ed # kana_RO
+0x04dc U30ef # kana_WA
+0x04dd U30f3 # kana_N
+0x04de U309b # voicedsound
+0x04df U309c # semivoicedsound
+0x05ac U060c # Arabic_comma
+0x05bb U061b # Arabic_semicolon
+0x05bf U061f # Arabic_question_mark
+0x05c1 U0621 # Arabic_hamza
+0x05c2 U0622 # Arabic_maddaonalef
+0x05c3 U0623 # Arabic_hamzaonalef
+0x05c4 U0624 # Arabic_hamzaonwaw
+0x05c5 U0625 # Arabic_hamzaunderalef
+0x05c6 U0626 # Arabic_hamzaonyeh
+0x05c7 U0627 # Arabic_alef
+0x05c8 U0628 # Arabic_beh
+0x05c9 U0629 # Arabic_tehmarbuta
+0x05ca U062a # Arabic_teh
+0x05cb U062b # Arabic_theh
+0x05cc U062c # Arabic_jeem
+0x05cd U062d # Arabic_hah
+0x05ce U062e # Arabic_khah
+0x05cf U062f # Arabic_dal
+0x05d0 U0630 # Arabic_thal
+0x05d1 U0631 # Arabic_ra
+0x05d2 U0632 # Arabic_zain
+0x05d3 U0633 # Arabic_seen
+0x05d4 U0634 # Arabic_sheen
+0x05d5 U0635 # Arabic_sad
+0x05d6 U0636 # Arabic_dad
+0x05d7 U0637 # Arabic_tah
+0x05d8 U0638 # Arabic_zah
+0x05d9 U0639 # Arabic_ain
+0x05da U063a # Arabic_ghain
+0x05e0 U0640 # Arabic_tatweel
+0x05e1 U0641 # Arabic_feh
+0x05e2 U0642 # Arabic_qaf
+0x05e3 U0643 # Arabic_kaf
+0x05e4 U0644 # Arabic_lam
+0x05e5 U0645 # Arabic_meem
+0x05e6 U0646 # Arabic_noon
+0x05e7 U0647 # Arabic_ha
+0x05e8 U0648 # Arabic_waw
+0x05e9 U0649 # Arabic_alefmaksura
+0x05ea U064a # Arabic_yeh
+0x05eb U064b # Arabic_fathatan
+0x05ec U064c # Arabic_dammatan
+0x05ed U064d # Arabic_kasratan
+0x05ee U064e # Arabic_fatha
+0x05ef U064f # Arabic_damma
+0x05f0 U0650 # Arabic_kasra
+0x05f1 U0651 # Arabic_shadda
+0x05f2 U0652 # Arabic_sukun
+0x06a1 U0452 # Serbian_dje
+0x06a2 U0453 # Macedonia_gje
+0x06a3 U0451 # Cyrillic_io
+0x06a4 U0454 # Ukrainian_ie
+0x06a5 U0455 # Macedonia_dse
+0x06a6 U0456 # Ukrainian_i
+0x06a7 U0457 # Ukrainian_yi
+0x06a8 U0458 # Cyrillic_je
+0x06a9 U0459 # Cyrillic_lje
+0x06aa U045a # Cyrillic_nje
+0x06ab U045b # Serbian_tshe
+0x06ac U045c # Macedonia_kje
+0x06ae U045e # Byelorussian_shortu
+0x06af U045f # Cyrillic_dzhe
+0x06b0 U2116 # numerosign
+0x06b1 U0402 # Serbian_DJE
+0x06b2 U0403 # Macedonia_GJE
+0x06b3 U0401 # Cyrillic_IO
+0x06b4 U0404 # Ukrainian_IE
+0x06b5 U0405 # Macedonia_DSE
+0x06b6 U0406 # Ukrainian_I
+0x06b7 U0407 # Ukrainian_YI
+0x06b8 U0408 # Cyrillic_JE
+0x06b9 U0409 # Cyrillic_LJE
+0x06ba U040a # Cyrillic_NJE
+0x06bb U040b # Serbian_TSHE
+0x06bc U040c # Macedonia_KJE
+0x06be U040e # Byelorussian_SHORTU
+0x06bf U040f # Cyrillic_DZHE
+0x06c0 U044e # Cyrillic_yu
+0x06c1 U0430 # Cyrillic_a
+0x06c2 U0431 # Cyrillic_be
+0x06c3 U0446 # Cyrillic_tse
+0x06c4 U0434 # Cyrillic_de
+0x06c5 U0435 # Cyrillic_ie
+0x06c6 U0444 # Cyrillic_ef
+0x06c7 U0433 # Cyrillic_ghe
+0x06c8 U0445 # Cyrillic_ha
+0x06c9 U0438 # Cyrillic_i
+0x06ca U0439 # Cyrillic_shorti
+0x06cb U043a # Cyrillic_ka
+0x06cc U043b # Cyrillic_el
+0x06cd U043c # Cyrillic_em
+0x06ce U043d # Cyrillic_en
+0x06cf U043e # Cyrillic_o
+0x06d0 U043f # Cyrillic_pe
+0x06d1 U044f # Cyrillic_ya
+0x06d2 U0440 # Cyrillic_er
+0x06d3 U0441 # Cyrillic_es
+0x06d4 U0442 # Cyrillic_te
+0x06d5 U0443 # Cyrillic_u
+0x06d6 U0436 # Cyrillic_zhe
+0x06d7 U0432 # Cyrillic_ve
+0x06d8 U044c # Cyrillic_softsign
+0x06d9 U044b # Cyrillic_yeru
+0x06da U0437 # Cyrillic_ze
+0x06db U0448 # Cyrillic_sha
+0x06dc U044d # Cyrillic_e
+0x06dd U0449 # Cyrillic_shcha
+0x06de U0447 # Cyrillic_che
+0x06df U044a # Cyrillic_hardsign
+0x06e0 U042e # Cyrillic_YU
+0x06e1 U0410 # Cyrillic_A
+0x06e2 U0411 # Cyrillic_BE
+0x06e3 U0426 # Cyrillic_TSE
+0x06e4 U0414 # Cyrillic_DE
+0x06e5 U0415 # Cyrillic_IE
+0x06e6 U0424 # Cyrillic_EF
+0x06e7 U0413 # Cyrillic_GHE
+0x06e8 U0425 # Cyrillic_HA
+0x06e9 U0418 # Cyrillic_I
+0x06ea U0419 # Cyrillic_SHORTI
+0x06eb U041a # Cyrillic_KA
+0x06ec U041b # Cyrillic_EL
+0x06ed U041c # Cyrillic_EM
+0x06ee U041d # Cyrillic_EN
+0x06ef U041e # Cyrillic_O
+0x06f0 U041f # Cyrillic_PE
+0x06f1 U042f # Cyrillic_YA
+0x06f2 U0420 # Cyrillic_ER
+0x06f3 U0421 # Cyrillic_ES
+0x06f4 U0422 # Cyrillic_TE
+0x06f5 U0423 # Cyrillic_U
+0x06f6 U0416 # Cyrillic_ZHE
+0x06f7 U0412 # Cyrillic_VE
+0x06f8 U042c # Cyrillic_SOFTSIGN
+0x06f9 U042b # Cyrillic_YERU
+0x06fa U0417 # Cyrillic_ZE
+0x06fb U0428 # Cyrillic_SHA
+0x06fc U042d # Cyrillic_E
+0x06fd U0429 # Cyrillic_SHCHA
+0x06fe U0427 # Cyrillic_CHE
+0x06ff U042a # Cyrillic_HARDSIGN
+0x07a1 U0386 # Greek_ALPHAaccent
+0x07a2 U0388 # Greek_EPSILONaccent
+0x07a3 U0389 # Greek_ETAaccent
+0x07a4 U038a # Greek_IOTAaccent
+0x07a5 U03aa # Greek_IOTAdiaeresis
+0x07a7 U038c # Greek_OMICRONaccent
+0x07a8 U038e # Greek_UPSILONaccent
+0x07a9 U03ab # Greek_UPSILONdieresis
+0x07ab U038f # Greek_OMEGAaccent
+0x07ae U0385 # Greek_accentdieresis
+0x07af U2015 # Greek_horizbar
+0x07b1 U03ac # Greek_alphaaccent
+0x07b2 U03ad # Greek_epsilonaccent
+0x07b3 U03ae # Greek_etaaccent
+0x07b4 U03af # Greek_iotaaccent
+0x07b5 U03ca # Greek_iotadieresis
+0x07b6 U0390 # Greek_iotaaccentdieresis
+0x07b7 U03cc # Greek_omicronaccent
+0x07b8 U03cd # Greek_upsilonaccent
+0x07b9 U03cb # Greek_upsilondieresis
+0x07ba U03b0 # Greek_upsilonaccentdieresis
+0x07bb U03ce # Greek_omegaaccent
+0x07c1 U0391 # Greek_ALPHA
+0x07c2 U0392 # Greek_BETA
+0x07c3 U0393 # Greek_GAMMA
+0x07c4 U0394 # Greek_DELTA
+0x07c5 U0395 # Greek_EPSILON
+0x07c6 U0396 # Greek_ZETA
+0x07c7 U0397 # Greek_ETA
+0x07c8 U0398 # Greek_THETA
+0x07c9 U0399 # Greek_IOTA
+0x07ca U039a # Greek_KAPPA
+0x07cb U039b # Greek_LAMBDA
+0x07cb U039b # Greek_LAMDA
+0x07cc U039c # Greek_MU
+0x07cd U039d # Greek_NU
+0x07ce U039e # Greek_XI
+0x07cf U039f # Greek_OMICRON
+0x07d0 U03a0 # Greek_PI
+0x07d1 U03a1 # Greek_RHO
+0x07d2 U03a3 # Greek_SIGMA
+0x07d4 U03a4 # Greek_TAU
+0x07d5 U03a5 # Greek_UPSILON
+0x07d6 U03a6 # Greek_PHI
+0x07d7 U03a7 # Greek_CHI
+0x07d8 U03a8 # Greek_PSI
+0x07d9 U03a9 # Greek_OMEGA
+0x07e1 U03b1 # Greek_alpha
+0x07e2 U03b2 # Greek_beta
+0x07e3 U03b3 # Greek_gamma
+0x07e4 U03b4 # Greek_delta
+0x07e5 U03b5 # Greek_epsilon
+0x07e6 U03b6 # Greek_zeta
+0x07e7 U03b7 # Greek_eta
+0x07e8 U03b8 # Greek_theta
+0x07e9 U03b9 # Greek_iota
+0x07ea U03ba # Greek_kappa
+0x07eb U03bb # Greek_lambda
+0x07ec U03bc # Greek_mu
+0x07ed U03bd # Greek_nu
+0x07ee U03be # Greek_xi
+0x07ef U03bf # Greek_omicron
+0x07f0 U03c0 # Greek_pi
+0x07f1 U03c1 # Greek_rho
+0x07f2 U03c3 # Greek_sigma
+0x07f3 U03c2 # Greek_finalsmallsigma
+0x07f4 U03c4 # Greek_tau
+0x07f5 U03c5 # Greek_upsilon
+0x07f6 U03c6 # Greek_phi
+0x07f7 U03c7 # Greek_chi
+0x07f8 U03c8 # Greek_psi
+0x07f9 U03c9 # Greek_omega
+0x08a1 U0000 # leftradical
+0x08a2 U0000 # topleftradical
+0x08a3 U0000 # horizconnector
+0x08a4 U2320 # topintegral
+0x08a5 U2321 # botintegral
+0x08a6 U2502 # vertconnector
+0x08a7 U0000 # topleftsqbracket
+0x08a8 U0000 # botleftsqbracket
+0x08a9 U0000 # toprightsqbracket
+0x08aa U0000 # botrightsqbracket
+0x08ab U0000 # topleftparens
+0x08ac U0000 # botleftparens
+0x08ad U0000 # toprightparens
+0x08ae U0000 # botrightparens
+0x08af U0000 # leftmiddlecurlybrace
+0x08b0 U0000 # rightmiddlecurlybrace
+0x08b1 U0000 # topleftsummation
+0x08b2 U0000 # botleftsummation
+0x08b3 U0000 # topvertsummationconnector
+0x08b4 U0000 # botvertsummationconnector
+0x08b5 U0000 # toprightsummation
+0x08b6 U0000 # botrightsummation
+0x08b7 U0000 # rightmiddlesummation
+0x08bc U2264 # lessthanequal
+0x08bd U2260 # notequal
+0x08be U2265 # greaterthanequal
+0x08bf U222b # integral
+0x08c0 U2234 # therefore
+0x08c1 U221d # variation
+0x08c2 U221e # infinity
+0x08c5 U2207 # nabla
+0x08c8 U2245 # approximate
+0x08c9 U0000 # similarequal
+0x08cd U21d4 # ifonlyif
+0x08ce U21d2 # implies
+0x08cf U2261 # identical
+0x08d6 U221a # radical
+0x08da U2282 # includedin
+0x08db U2283 # includes
+0x08dc U2229 # intersection
+0x08dd U222a # union
+0x08de U2227 # logicaland
+0x08df U2228 # logicalor
+0x08ef U2202 # partialderivative
+0x08f6 U0192 # function
+0x08fb U2190 # leftarrow
+0x08fc U2191 # uparrow
+0x08fd U2192 # rightarrow
+0x08fe U2193 # downarrow
+0x09df U2422 # blank
+0x09e0 U25c6 # soliddiamond
+0x09e1 U2592 # checkerboard
+0x09e2 U2409 # ht
+0x09e3 U240c # ff
+0x09e4 U240d # cr
+0x09e5 U240a # lf
+0x09e8 U2424 # nl
+0x09e9 U240b # vt
+0x09ea U2518 # lowrightcorner
+0x09eb U2510 # uprightcorner
+0x09ec U250c # upleftcorner
+0x09ed U2514 # lowleftcorner
+0x09ee U253c # crossinglines
+0x09ef U0000 # horizlinescan1
+0x09f0 U0000 # horizlinescan3
+0x09f1 U2500 # horizlinescan5
+0x09f2 U0000 # horizlinescan7
+0x09f3 U0000 # horizlinescan9
+0x09f4 U251c # leftt
+0x09f5 U2524 # rightt
+0x09f6 U2534 # bott
+0x09f7 U252c # topt
+0x09f8 U2502 # vertbar
+0xfe50 U0300 # dead_grave
+0xfe51 U0301 # dead_acute
+0xfe52 U0302 # dead_circumflex
+0xfe53 U0303 # dead_tilde
+0xfe54 U0304 # dead_macron
+0xfe55 U0306 # dead_breve
+0xfe56 U0307 # dead_abovedot
+0xfe57 U0308 # dead_diaeresis
+0xfe58 U030a # dead_abovering
+0xfe59 U030b # dead_doubleacute
+0xfe5a U030c # dead_caron
+0xfe5b U0327 # dead_cedilla
+0xfe5c U0328 # dead_ogonek
+0xfe5d U0345 # dead_iota
+0xfe5e U3099 # dead_voiced_sound
+0xfe5f U309a # dead_semivoiced_sound
+0xff08 U0008 # BackSpace /* back space, back char */
+0xff09 U0009 # Tab
+0xff0a U000a # Linefeed /* Linefeed, LF */
+0xff0b U000b # Clear
+0xff0d U000d # Return /* Return, enter */
+0xff13 U0013 # Pause /* Pause, hold */
+0xff14 U0014 # Scroll_Lock
+0xff15 U0015 # Sys_Req
+0xff1b U001b # Escape
+0xff80 U0032 # KP_Space /* space */
+0xff89 U0009 # KP_Tab
+0xff8d U000d # KP_Enter /* enter */
+0xffaa U002a # KP_Multiply
+0xffab U002b # KP_Add
+0xffac U002c # KP_Separator /* separator, often comma */
+0xffad U002d # KP_Subtract
+0xffae U002e # KP_Decimal
+0xffaf U002f # KP_Divide
+0xffb0 U0030 # KP_0
+0xffb1 U0031 # KP_1
+0xffb2 U0032 # KP_2
+0xffb3 U0033 # KP_3
+0xffb4 U0034 # KP_4
+0xffb5 U0035 # KP_5
+0xffb6 U0036 # KP_6
+0xffb7 U0037 # KP_7
+0xffb8 U0038 # KP_8
+0xffb9 U0039 # KP_9
+0xffbd U003d # KP_Equal /* equals */
+0x0aa1 U2003 # emspace
+0x0aa2 U2002 # enspace
+0x0aa3 U2004 # em3space
+0x0aa4 U2005 # em4space
+0x0aa5 U2007 # digitspace
+0x0aa6 U2008 # punctspace
+0x0aa7 U2009 # thinspace
+0x0aa8 U200a # hairspace
+0x0aa9 U2014 # emdash
+0x0aaa U2013 # endash
+0x0aac U0000 # signifblank
+0x0aae U2026 # ellipsis
+0x0aaf U0000 # doubbaselinedot
+0x0ab0 U2153 # onethird
+0x0ab1 U2154 # twothirds
+0x0ab2 U2155 # onefifth
+0x0ab3 U2156 # twofifths
+0x0ab4 U2157 # threefifths
+0x0ab5 U2158 # fourfifths
+0x0ab6 U2159 # onesixth
+0x0ab7 U215a # fivesixths
+0x0ab8 U2105 # careof
+0x0abb U2012 # figdash
+0x0abc U2329 # leftanglebracket
+0x0abd U002e # decimalpoint
+0x0abe U232a # rightanglebracket
+0x0abf U0000 # marker
+0x0ac3 U215b # oneeighth
+0x0ac4 U215c # threeeighths
+0x0ac5 U215d # fiveeighths
+0x0ac6 U215e # seveneighths
+0x0ac9 U2122 # trademark
+0x0aca U2613 # signaturemark
+0x0acb U0000 # trademarkincircle
+0x0acc U25c1 # leftopentriangle
+0x0acd U25b7 # rightopentriangle
+0x0ace U25cb # emopencircle
+0x0acf U25a1 # emopenrectangle
+0x0ad0 U2018 # leftsinglequotemark
+0x0ad1 U2019 # rightsinglequotemark
+0x0ad2 U201c # leftdoublequotemark
+0x0ad3 U201d # rightdoublequotemark
+0x0ad4 U211e # prescription
+0x0ad6 U2032 # minutes
+0x0ad7 U2033 # seconds
+0x0ad9 U271d # latincross
+0x0ada U0000 # hexagram
+0x0adb U25ac # filledrectbullet
+0x0adc U25c0 # filledlefttribullet
+0x0add U25b6 # filledrighttribullet
+0x0ade U25cf # emfilledcircle
+0x0adf U25a0 # emfilledrect
+0x0ae0 U25e6 # enopencircbullet
+0x0ae1 U25ab # enopensquarebullet
+0x0ae2 U25ad # openrectbullet
+0x0ae3 U25b3 # opentribulletup
+0x0ae4 U25bd # opentribulletdown
+0x0ae5 U2606 # openstar
+0x0ae6 U2022 # enfilledcircbullet
+0x0ae7 U25aa # enfilledsqbullet
+0x0ae8 U25b2 # filledtribulletup
+0x0ae9 U25bc # filledtribulletdown
+0x0aea U261c # leftpointer
+0x0aeb U261e # rightpointer
+0x0aec U2663 # club
+0x0aed U2666 # diamond
+0x0aee U2665 # heart
+0x0af0 U2720 # maltesecross
+0x0af1 U2020 # dagger
+0x0af2 U2021 # doubledagger
+0x0af3 U2713 # checkmark
+0x0af4 U2717 # ballotcross
+0x0af5 U266f # musicalsharp
+0x0af6 U266d # musicalflat
+0x0af7 U2642 # malesymbol
+0x0af8 U2640 # femalesymbol
+0x0af9 U260e # telephone
+0x0afa U2315 # telephonerecorder
+0x0afb U2117 # phonographcopyright
+0x0afc U2038 # caret
+0x0afd U201a # singlelowquotemark
+0x0afe U201e # doublelowquotemark
+0x0aff U0000 # cursor
+0x0ba3 U003c # leftcaret
+0x0ba6 U003e # rightcaret
+0x0ba8 U2228 # downcaret
+0x0ba9 U2227 # upcaret
+0x0bc0 U00af # overbar
+0x0bc2 U22a4 # downtack
+0x0bc3 U2229 # upshoe
+0x0bc4 U230a # downstile
+0x0bc6 U005f # underbar
+0x0bca U2218 # jot
+0x0bcc U2395 # quad
+0x0bce U22a5 # uptack
+0x0bcf U25cb # circle
+0x0bd3 U2308 # upstile
+0x0bd6 U222a # downshoe
+0x0bd8 U2283 # rightshoe
+0x0bda U2282 # leftshoe
+0x0bdc U22a3 # lefttack
+0x0bfc U22a2 # righttack
+0x0cdf U2017 # hebrew_doublelowline
+0x0ce0 U05d0 # hebrew_aleph
+0x0ce1 U05d1 # hebrew_bet
+0x0ce1 U05d1 # hebrew_beth /* deprecated */
+0x0ce2 U05d2 # hebrew_gimel
+0x0ce2 U05d2 # hebrew_gimmel /* deprecated */
+0x0ce3 U05d3 # hebrew_dalet
+0x0ce3 U05d3 # hebrew_daleth /* deprecated */
+0x0ce4 U05d4 # hebrew_he
+0x0ce5 U05d5 # hebrew_waw
+0x0ce6 U05d6 # hebrew_zain
+0x0ce6 U05d6 # hebrew_zayin /* deprecated */
+0x0ce7 U05d7 # hebrew_chet
+0x0ce7 U05d7 # hebrew_het /* deprecated */
+0x0ce8 U05d8 # hebrew_tet
+0x0ce8 U05d8 # hebrew_teth /* deprecated */
+0x0ce9 U05d9 # hebrew_yod
+0x0cea U05da # hebrew_finalkaph
+0x0ceb U05db # hebrew_kaph
+0x0cec U05dc # hebrew_lamed
+0x0ced U05dd # hebrew_finalmem
+0x0cee U05de # hebrew_mem
+0x0cef U05df # hebrew_finalnun
+0x0cf0 U05e0 # hebrew_nun
+0x0cf1 U05e1 # hebrew_samech
+0x0cf1 U05e1 # hebrew_samekh /* deprecated */
+0x0cf2 U05e2 # hebrew_ayin
+0x0cf3 U05e3 # hebrew_finalpe
+0x0cf4 U05e4 # hebrew_pe
+0x0cf5 U05e5 # hebrew_finalzade
+0x0cf5 U05e5 # hebrew_finalzadi /* deprecated */
+0x0cf6 U05e6 # hebrew_zade
+0x0cf6 U05e6 # hebrew_zadi /* deprecated */
+0x0cf7 U05e7 # hebrew_kuf /* deprecated */
+0x0cf7 U05e7 # hebrew_qoph
+0x0cf8 U05e8 # hebrew_resh
+0x0cf9 U05e9 # hebrew_shin
+0x0cfa U05ea # hebrew_taf /* deprecated */
+0x0cfa U05ea # hebrew_taw
+0x0da1 U0e01 # Thai_kokai
+0x0da2 U0e02 # Thai_khokhai
+0x0da3 U0e03 # Thai_khokhuat
+0x0da4 U0e04 # Thai_khokhwai
+0x0da5 U0e05 # Thai_khokhon
+0x0da6 U0e06 # Thai_khorakhang
+0x0da7 U0e07 # Thai_ngongu
+0x0da8 U0e08 # Thai_chochan
+0x0da9 U0e09 # Thai_choching
+0x0daa U0e0a # Thai_chochang
+0x0dab U0e0b # Thai_soso
+0x0dac U0e0c # Thai_chochoe
+0x0dad U0e0d # Thai_yoying
+0x0dae U0e0e # Thai_dochada
+0x0daf U0e0f # Thai_topatak
+0x0db0 U0e10 # Thai_thothan
+0x0db1 U0e11 # Thai_thonangmontho
+0x0db2 U0e12 # Thai_thophuthao
+0x0db3 U0e13 # Thai_nonen
+0x0db4 U0e14 # Thai_dodek
+0x0db5 U0e15 # Thai_totao
+0x0db6 U0e16 # Thai_thothung
+0x0db7 U0e17 # Thai_thothahan
+0x0db8 U0e18 # Thai_thothong
+0x0db9 U0e19 # Thai_nonu
+0x0dba U0e1a # Thai_bobaimai
+0x0dbb U0e1b # Thai_popla
+0x0dbc U0e1c # Thai_phophung
+0x0dbd U0e1d # Thai_fofa
+0x0dbe U0e1e # Thai_phophan
+0x0dbf U0e1f # Thai_fofan
+0x0dc0 U0e20 # Thai_phosamphao
+0x0dc1 U0e21 # Thai_moma
+0x0dc2 U0e22 # Thai_yoyak
+0x0dc3 U0e23 # Thai_rorua
+0x0dc4 U0e24 # Thai_ru
+0x0dc5 U0e25 # Thai_loling
+0x0dc6 U0e26 # Thai_lu
+0x0dc7 U0e27 # Thai_wowaen
+0x0dc8 U0e28 # Thai_sosala
+0x0dc9 U0e29 # Thai_sorusi
+0x0dca U0e2a # Thai_sosua
+0x0dcb U0e2b # Thai_hohip
+0x0dcc U0e2c # Thai_lochula
+0x0dcd U0e2d # Thai_oang
+0x0dce U0e2e # Thai_honokhuk
+0x0dcf U0e2f # Thai_paiyannoi
+0x0dd0 U0e30 # Thai_saraa
+0x0dd1 U0e31 # Thai_maihanakat
+0x0dd2 U0e32 # Thai_saraaa
+0x0dd3 U0e33 # Thai_saraam
+0x0dd4 U0e34 # Thai_sarai
+0x0dd5 U0e35 # Thai_saraii
+0x0dd6 U0e36 # Thai_saraue
+0x0dd7 U0e37 # Thai_sarauee
+0x0dd8 U0e38 # Thai_sarau
+0x0dd9 U0e39 # Thai_sarauu
+0x0dda U0e3a # Thai_phinthu
+0x0dde U0e3e # Thai_maihanakat_maitho
+0x0ddf U0e3f # Thai_baht
+0x0de0 U0e40 # Thai_sarae
+0x0de1 U0e41 # Thai_saraae
+0x0de2 U0e42 # Thai_sarao
+0x0de3 U0e43 # Thai_saraaimaimuan
+0x0de4 U0e44 # Thai_saraaimaimalai
+0x0de5 U0e45 # Thai_lakkhangyao
+0x0de6 U0e46 # Thai_maiyamok
+0x0de7 U0e47 # Thai_maitaikhu
+0x0de8 U0e48 # Thai_maiek
+0x0de9 U0e49 # Thai_maitho
+0x0dea U0e4a # Thai_maitri
+0x0deb U0e4b # Thai_maichattawa
+0x0dec U0e4c # Thai_thanthakhat
+0x0ded U0e4d # Thai_nikhahit
+0x0df0 U0e50 # Thai_leksun
+0x0df1 U0e51 # Thai_leknung
+0x0df2 U0e52 # Thai_leksong
+0x0df3 U0e53 # Thai_leksam
+0x0df4 U0e54 # Thai_leksi
+0x0df5 U0e55 # Thai_lekha
+0x0df6 U0e56 # Thai_lekhok
+0x0df7 U0e57 # Thai_lekchet
+0x0df8 U0e58 # Thai_lekpaet
+0x0df9 U0e59 # Thai_lekkao
+0x0ea1 U3131 # Hangul_Kiyeog
+0x0ea2 U3132 # Hangul_SsangKiyeog
+0x0ea3 U3133 # Hangul_KiyeogSios
+0x0ea4 U3134 # Hangul_Nieun
+0x0ea5 U3135 # Hangul_NieunJieuj
+0x0ea6 U3136 # Hangul_NieunHieuh
+0x0ea7 U3137 # Hangul_Dikeud
+0x0ea8 U3138 # Hangul_SsangDikeud
+0x0ea9 U3139 # Hangul_Rieul
+0x0eaa U313a # Hangul_RieulKiyeog
+0x0eab U313b # Hangul_RieulMieum
+0x0eac U313c # Hangul_RieulPieub
+0x0ead U313d # Hangul_RieulSios
+0x0eae U313e # Hangul_RieulTieut
+0x0eaf U313f # Hangul_RieulPhieuf
+0x0eb0 U3140 # Hangul_RieulHieuh
+0x0eb1 U3141 # Hangul_Mieum
+0x0eb2 U3142 # Hangul_Pieub
+0x0eb3 U3143 # Hangul_SsangPieub
+0x0eb4 U3144 # Hangul_PieubSios
+0x0eb5 U3145 # Hangul_Sios
+0x0eb6 U3146 # Hangul_SsangSios
+0x0eb7 U3147 # Hangul_Ieung
+0x0eb8 U3148 # Hangul_Jieuj
+0x0eb9 U3149 # Hangul_SsangJieuj
+0x0eba U314a # Hangul_Cieuc
+0x0ebb U314b # Hangul_Khieuq
+0x0ebc U314c # Hangul_Tieut
+0x0ebd U314d # Hangul_Phieuf
+0x0ebe U314e # Hangul_Hieuh
+0x0ebf U314f # Hangul_A
+0x0ec0 U3150 # Hangul_AE
+0x0ec1 U3151 # Hangul_YA
+0x0ec2 U3152 # Hangul_YAE
+0x0ec3 U3153 # Hangul_EO
+0x0ec4 U3154 # Hangul_E
+0x0ec5 U3155 # Hangul_YEO
+0x0ec6 U3156 # Hangul_YE
+0x0ec7 U3157 # Hangul_O
+0x0ec8 U3158 # Hangul_WA
+0x0ec9 U3159 # Hangul_WAE
+0x0eca U315a # Hangul_OE
+0x0ecb U315b # Hangul_YO
+0x0ecc U315c # Hangul_U
+0x0ecd U315d # Hangul_WEO
+0x0ece U315e # Hangul_WE
+0x0ecf U315f # Hangul_WI
+0x0ed0 U3160 # Hangul_YU
+0x0ed1 U3161 # Hangul_EU
+0x0ed2 U3162 # Hangul_YI
+0x0ed3 U3163 # Hangul_I
+0x0ed4 U11a8 # Hangul_J_Kiyeog
+0x0ed5 U11a9 # Hangul_J_SsangKiyeog
+0x0ed6 U11aa # Hangul_J_KiyeogSios
+0x0ed7 U11ab # Hangul_J_Nieun
+0x0ed8 U11ac # Hangul_J_NieunJieuj
+0x0ed9 U11ad # Hangul_J_NieunHieuh
+0x0eda U11ae # Hangul_J_Dikeud
+0x0edb U11af # Hangul_J_Rieul
+0x0edc U11b0 # Hangul_J_RieulKiyeog
+0x0edd U11b1 # Hangul_J_RieulMieum
+0x0ede U11b2 # Hangul_J_RieulPieub
+0x0edf U11b3 # Hangul_J_RieulSios
+0x0ee0 U11b4 # Hangul_J_RieulTieut
+0x0ee1 U11b5 # Hangul_J_RieulPhieuf
+0x0ee2 U11b6 # Hangul_J_RieulHieuh
+0x0ee3 U11b7 # Hangul_J_Mieum
+0x0ee4 U11b8 # Hangul_J_Pieub
+0x0ee5 U11b9 # Hangul_J_PieubSios
+0x0ee6 U11ba # Hangul_J_Sios
+0x0ee7 U11bb # Hangul_J_SsangSios
+0x0ee8 U11bc # Hangul_J_Ieung
+0x0ee9 U11bd # Hangul_J_Jieuj
+0x0eea U11be # Hangul_J_Cieuc
+0x0eeb U11bf # Hangul_J_Khieuq
+0x0eec U11c0 # Hangul_J_Tieut
+0x0eed U11c1 # Hangul_J_Phieuf
+0x0eee U11c2 # Hangul_J_Hieuh
+0x0eef U316d # Hangul_RieulYeorinHieuh
+0x0ef0 U3171 # Hangul_SunkyeongeumMieum
+0x0ef1 U3178 # Hangul_SunkyeongeumPieub
+0x0ef2 U317f # Hangul_PanSios
+0x0ef3 U0000 # Hangul_KkogjiDalrinIeung
+0x0ef4 U3184 # Hangul_SunkyeongeumPhieuf
+0x0ef5 U3186 # Hangul_YeorinHieuh
+0x0ef6 U318d # Hangul_AraeA
+0x0ef7 U318e # Hangul_AraeAE
+0x0ef8 U11eb # Hangul_J_PanSios
+0x0ef9 U0000 # Hangul_J_KkogjiDalrinIeung
+0x0efa U11f9 # Hangul_J_YeorinHieuh
+0x0eff U20a9 # Korean_Won
+0x20a0 U20a0 # EcuSign
+0x20a1 U20a1 # ColonSign
+0x20a2 U20a2 # CruzeiroSign
+0x20a3 U20a3 # FFrancSign
+0x20a4 U20a4 # LiraSign
+0x20a5 U20a5 # MillSign
+0x20a6 U20a6 # NairaSign
+0x20a7 U20a7 # PesetaSign
+0x20a8 U20a8 # RupeeSign
+0x20a9 U20a9 # WonSign
+0x20aa U20aa # NewSheqelSign
+0x20ab U20ab # DongSign
+0x20ac U20ac # EuroSign
diff --git a/linux/console/bin/console.sondertasten b/linux/console/bin/console.sondertasten
new file mode 100644
index 0000000..82b2dc7
--- /dev/null
+++ b/linux/console/bin/console.sondertasten
@@ -0,0 +1,175 @@
+! neo.map - german NEO keyboard layout
+!
+! Diese Datei ist experimentell!
+! Sollten Fehler auftreten oder sich verschiedene Linux-Distributionen
+! anders verhalten als erwartet, sollte dies auf der Mailingliste
+! der NEO-Tastaturbelegung gemeldet werden.
+!
+! Diese Keymap wird �ber einige Skripte automatisch aus der neo_de.xmodmap
+! erzeugt.
+!
+
+keymaps 0-3,4-6,8-10,12,16-18
+charset "ISO-8859-1"
+include "linux-with-two-alt-keys.inc"
+strings as usual
+compose as usual for "iso-8859-1"
+! --------------------------------------------------------------------------
+! Modifier definitions
+! --------------------------------------------------------------------------
+ keycode 42 = Shift
+ keycode 54 = Shift
+ keycode 58 = AltGr
+ keycode 43 = AltGr
+ keycode 86 = ShiftL
+ keycode 100 = ShiftL
+
+ keycode 1 = Escape Escape
+ alt keycode 1 = Meta_Escape
+ shift altgr keycode 1 = Meta_Escape
+
+! --------------------------------------------------------------------------
+! Keys with control function (has to be edited manally!!!!)
+! --------------------------------------------------------------------------
+ control keycode 33 = Control_e
+ shift control keycode 33 = Control_e
+ altgr control keycode 33 = Control_e
+ alt keycode 33 = Meta_e
+ shift alt keycode 33 = Meta_E
+ altgr alt keycode 33 = Meta_e
+ control alt keycode 33 = Meta_Control_e
+ control keycode 19 = Control_c
+ shift control keycode 19 = Control_c
+ altgr control keycode 19 = Control_c
+ alt keycode 19 = Meta_c
+ shift alt keycode 19 = Meta_C
+ altgr alt keycode 19 = Meta_c
+ control alt keycode 19 = Meta_Control_c
+ control keycode 50 = Control_m
+ shift control keycode 50 = Control_m
+ altgr control keycode 50 = Control_m
+ alt keycode 50 = Meta_m
+ shift alt keycode 50 = Meta_M
+ altgr alt keycode 50 = Meta_m
+ control alt keycode 50 = Meta_Control_m
+
+! --------------------------------------------------------------------------
+! function keys
+! --------------------------------------------------------------------------
+! ----Backspace-------------------------------------------------------------
+ keycode 42 = Delete Delete
+ alt keycode 14 = Meta_Delete
+ shift alt keycode 14 = Meta_Delete
+! ----Return Enter----------------------------------------------------------
+ keycode 28 = Return
+ alt keycode 28 = Meta_Control_m
+ keycode 96 = KP_Enter
+ altgr keycode 96 = Hex_F
+! ----Tab-------------------------------------------------------------------
+ keycode 15 = Tab Meta_Tab
+ alt keycode 15 = Meta_Tab
+ altgr keycode 15 = Compose
+! ----Control Alt-----------------------------------------------------------
+ keycode 29 = Control
+ keycode 97 = Control
+ keycode 56 = Alt
+! ----Prt SclLk Pause-------------------------------------------------------
+ keycode 99 =
+ control keycode 99 = Control_backslash
+ alt keycode 99 = Control_backslash
+ control alt keycode 99 = Meta_Control_backslash
+ keycode 70 = Scroll_Lock Show_Memory Show_Registers Show_State
+ alt keycode 70 = Scroll_Lock
+ keycode 119 = Pause
+! ----Home block------------------------------------------------------------
+ keycode 102 = Find
+ keycode 104 = Prior
+ shift keycode 104 = Scroll_Backward
+ keycode 107 = Select
+ keycode 109 = Next
+ shift keycode 109 = Scroll_Forward
+ keycode 111 = Remove
+ altgr control keycode 111 = Boot
+ control alt keycode 111 = Boot
+ keycode 110 = Insert
+! ----Navigation block------------------------------------------------------
+ keycode 103 = Up
+ alt keycode 103 = KeyboardSignal
+ keycode 105 = Left
+ alt keycode 105 = Decr_Console
+ keycode 106 = Right
+ alt keycode 106 = Incr_Console
+ keycode 108 = Down
+! ----Win keys--------------------------------------------------------------
+ keycode 125 =
+ keycode 126 = Compose
+! ----menue key-------------------------------------------------------------
+ keycode 127 = F100
+! ----F-keys----------------------------------------------------------------
+ keycode 59 = F1 F13 Console_13 F25
+ alt keycode 59 = Console_1
+ control alt keycode 59 = Console_1
+ keycode 60 = F2 F14 Console_14 F26
+ alt keycode 60 = Console_2
+ control alt keycode 60 = Console_2
+ keycode 61 = F3 F15 Console_15 F27
+ alt keycode 61 = Console_3
+ control alt keycode 61 = Console_3
+ keycode 62 = F4 F16 Console_16 F28
+ alt keycode 62 = Console_4
+ control alt keycode 62 = Console_4
+ keycode 63 = F5 F17 Console_17 F29
+ alt keycode 63 = Console_5
+ control alt keycode 63 = Console_5
+ keycode 64 = F6 F18 Console_18 F30
+ alt keycode 64 = Console_6
+ control alt keycode 64 = Console_6
+ keycode 65 = F7 F19 Console_19 F31
+ alt keycode 65 = Console_7
+ control alt keycode 65 = Console_7
+ keycode 66 = F8 F20 Console_20 F32
+ alt keycode 66 = Console_8
+ control alt keycode 66 = Console_8
+ keycode 67 = F9 F21 Console_21 F33
+ alt keycode 67 = Console_9
+ control alt keycode 67 = Console_9
+ keycode 68 = F10 F22 Console_22 F34
+ alt keycode 68 = Console_10
+ control alt keycode 68 = Console_10
+ keycode 87 = F11 F23 Console_23 F35
+ alt keycode 87 = Console_11
+ control alt keycode 87 = Console_11
+ keycode 88 = F12 F24 Console_24 F36
+ alt keycode 88 = Console_12
+ control alt keycode 88 = Console_12
+! ----unknown keys from defkeymap.map---------------------------------------
+ keycode 101 = Break
+ keycode 84 = Last_Console
+ keycode 112 = Macro
+ altgr control keycode 112 = VoidSymbol
+ shift alt keycode 112 = VoidSymbol
+ altgr alt keycode 112 = VoidSymbol
+ keycode 113 = F13
+ altgr control keycode 113 = VoidSymbol
+ shift alt keycode 113 = VoidSymbol
+ altgr alt keycode 113 = VoidSymbol
+ keycode 114 = F14
+ altgr control keycode 114 = VoidSymbol
+ shift alt keycode 114 = VoidSymbol
+ altgr alt keycode 114 = VoidSymbol
+ keycode 115 = Help
+ altgr control keycode 115 = VoidSymbol
+ shift alt keycode 115 = VoidSymbol
+ altgr alt keycode 115 = VoidSymbol
+ keycode 116 = Do
+ altgr control keycode 116 = VoidSymbol
+ shift alt keycode 116 = VoidSymbol
+ altgr alt keycode 116 = VoidSymbol
+ keycode 117 = F17
+ altgr control keycode 117 = VoidSymbol
+ shift alt keycode 117 = VoidSymbol
+ altgr alt keycode 117 = VoidSymbol
+ keycode 118 = KP_MinPlus
+ altgr control keycode 118 = VoidSymbol
+ shift alt keycode 118 = VoidSymbol
+ altgr alt keycode 118 = VoidSymbol
diff --git a/linux/console/bin/console.string_compose b/linux/console/bin/console.string_compose
new file mode 100644
index 0000000..663453c
--- /dev/null
+++ b/linux/console/bin/console.string_compose
@@ -0,0 +1,193 @@
+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 '-' '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' to '�'
+compose '�' 'a' to '�'
+compose 'A' 'E' to '�'
+compose 'a' 'e' to '�'
+compose ',' 'C' to '�'
+compose ',' 'c' 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 '^' 'D' to '�'
+compose '^' 'd' to '�'
+compose '~' 'N' to '�'
+compose '~' 'n' 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 '-' 'o' to '�'
+compose '-' 'O' to '�'
+compose '`' 'U' to '�'
+compose '`' 'u' to '�'
+compose '\'' 'U' to '�'
+compose '\'' 'u' to '�'
+compose '^' 'U' to '�'
+compose '^' 'u' to '�'
+compose '"' 'U' to '�'
+compose '"' 'u' to '�'
+compose '\'' 'Y' to '�'
+compose '\'' 'y' to '�'
+compose 'T' 'H' to '�'
+compose 't' 'h' to '�'
+compose 's' 's' to '�'
+compose '"' 'y' to '�'
+compose 's' 'z' to '�'
+compose 'n' 'n' to '�'
+compose 'n' 'h' to '�'
+compose 'N' 'Y' to '�'
+compose 'N' 'N' to '�'
+compose 'N' 'H' to '�'
+compose 'N' 'y' to '�'
+compose 'N' 'n' to '�'
+compose 'N' 'h' to '�'
+compose '-' 'L' to '�'
+compose '<' '<' to '�'
+compose '>' '>' to '�'
+compose '?' '?' to '�'
+compose '^' '?' to '�'
+compose '!' '!' to '�'
+compose '^' '!' to '�'
+compose '^' '1' to '�'
+compose '^' '2' to '�'
+compose '^' '3' to '�'
+compose '+' '-' to '�'
+compose 'c' '=' to '�'
+compose 'c' '/' to '�'
+compose '/' 'c' to '�'
+compose '-' 'c' to '�'
+compose '-' 'C' to '�'
+compose '|' 'c' to '�'
+compose '|' 'C' to '�'
+compose 'L' '=' to '�'
+compose '-' 'L' to '�'
+compose '-' 'l' to '�'
+compose '^' '*' to '�'
+compose '^' 'x' to '�'
+compose 'x' 'x' to '�'
+compose '^' '.' to '�'
+compose '.' '.' to '�'
+compose '^' '/' to '�'
+compose '^' ':' to '�'
+compose '-' ':' to '�'
+compose ':' '-' to '�'
+compose 'Y' '=' to '�'
+compose '=' 'Y' to '�'
+compose '-' 'Y' to '�'
+compose '-' 'l' to '�'
+compose '(' 'c' to '�'
+compose '"' 'c' to '�'
+compose 'O' 'C' to '�'
+compose '(' 'C' to '�'
+compose 'C' ')' to '�'
+compose '-' 'a' to '�'
+compose '-' 'A' to '�'
+compose '-' 'o' to '�'
+compose '-' 'O' to '�'
+compose '(' 'r' to '�'
+compose '"' 'r' to '�'
+compose 'O' 'R' to '�'
+compose '(' 'R' to '�'
+compose 'R' ')' to '�'
+compose 'm' 'u' to '�'
+compose 'P' 'P' to '�'
+compose '1' '4' to '�'
+compose '1' '2' to '�'
+compose '3' '4' to '�'
+compose 'e' '=' to '�'
+compose '-' 'e' to '�'
+compose '-' 'E' to '�'
+compose '=' 'E' to '�'
+compose 'v' 'S' to '�'
+compose '^' 'S' to '�'
+compose 'v' 's' to '�'
+compose '^' 's' to '�'
+compose 'v' 'Z' to '�'
+compose '^' 'Z' to '�'
+compose 'v' 'z' to '�'
+compose '^' 'z' to '�'
+compose 'O' 'E' to '�'
+compose 'O' 'e' to '�'
+compose 'o' 'e' to '�'
+compose '"' 'Y' to '�'
+compose 'i' 'j' to '�'
+compose 'I' 'J' to '�'
+compose '|' 's' to '$'
+compose '|' 'S' to '$'
+compose 'S' 'S' to '�'
+compose '=' 'C' to '�'
+compose 'C' '=' to '�'
+compose 'o' 'x' to '�'
+compose 'x' 'o' to '�'
diff --git a/linux/console/bin/mach_console b/linux/console/bin/mach_console
new file mode 100755
index 0000000..8a14eb4
--- /dev/null
+++ b/linux/console/bin/mach_console
@@ -0,0 +1,97 @@
+#!/bin/sh
+
+
+schreiben () {
+ printf " keycode %3s = %-22s%-22s%-22s%-22s\n" $1 $2 $3 $4 $5
+ printf " shiftl keycode %3s = %-22s\n" $1 $6
+ printf " shift shiftl keycode %3s = %-22s\n" $1 $7
+ printf " altgr shiftl keycode %3s = %-22s\n" $1 $8
+}
+
+lesen() {
+# Aufruf: lesen <Anzahl> <Zeilennummer in der Kurzreferenz> <Keycode der ersten Taste>
+ typeset -i zeile keycode
+ zeile=$2
+ keycode=$3
+ for i in $(seq 1 $1)
+ do
+ a=`head -$zeile kurzreferenz | tail -1`
+ schreiben $keycode $a
+ zeile=zeile+1
+ keycode=keycode+1
+ done
+}
+
+cat console.sondertasten
+echo "! ----unknown keys----------------------------------------------------------"
+lesen 1 64 57
+
+echo
+echo
+echo "! --------------------------------------------------------------------------"
+echo "! Row 1 (number row)"
+echo "! --------------------------------------------------------------------------"
+lesen 1 1 41
+lesen 12 2 2
+
+echo
+echo "! --------------------------------------------------------------------------"
+echo "! Row 2 (upper row)"
+echo "! --------------------------------------------------------------------------"
+lesen 12 14 16
+
+
+echo
+echo "! --------------------------------------------------------------------------"
+echo "! Row 3 (home row, middle row)"
+echo "! --------------------------------------------------------------------------"
+lesen 11 26 30
+
+echo
+echo "! --------------------------------------------------------------------------"
+echo "! Row 4 (lower row)"
+echo "! --------------------------------------------------------------------------"
+lesen 10 37 44
+
+echo
+echo "! --------------------------------------------------------------------------"
+echo "! Keypad Row 1 (uppest row)"
+echo "! --------------------------------------------------------------------------"
+lesen 1 47 69
+lesen 1 48 98
+lesen 1 49 55
+lesen 1 50 74
+
+echo
+echo "! --------------------------------------------------------------------------"
+echo "! Keypad Row 2 (upper row)"
+echo "! --------------------------------------------------------------------------"
+lesen 3 51 71
+lesen 1 54 78
+
+echo
+echo "! --------------------------------------------------------------------------"
+echo "! Keypad Row 3 (home row, middle row)"
+echo "! --------------------------------------------------------------------------"
+lesen 3 55 75
+
+echo
+echo "! --------------------------------------------------------------------------"
+echo "! Keypad Row 4 (lower row)"
+echo "! --------------------------------------------------------------------------"
+lesen 3 58 79
+
+echo
+echo "! --------------------------------------------------------------------------"
+echo "! Keypad Row 5 (lowest row)"
+echo "! --------------------------------------------------------------------------"
+lesen 2 62 82
+
+echo
+echo
+echo "! --------------------------------------------------------------------------"
+echo "! Strings and Compose"
+echo "! --------------------------------------------------------------------------"
+echo "string F100 = \"setleds +num\n\""
+
+#cat console.string_compose \ No newline at end of file
diff --git a/linux/console/bin/mach_kurzreferenz b/linux/console/bin/mach_kurzreferenz
new file mode 100755
index 0000000..39c7973
--- /dev/null
+++ b/linux/console/bin/mach_kurzreferenz
@@ -0,0 +1,9 @@
+#!/bin/sh
+xmodmap=../xmodmap/neo_de.xmodmap
+
+grep -n ^keycode $xmodmap | grep ^[12] | tr -s [:blank:] ' '| cut -f2 -d = > mach_kurzreferenz.hilfe
+grep space $xmodmap | grep ^keycode | tr -s [:blank:] ' '| cut -f2 -d = >> mach_kurzreferenz.hilfe
+
+sed -f console.ersetze mach_kurzreferenz.hilfe
+
+rm mach_kurzreferenz.hilfe \ No newline at end of file
diff --git a/linux/console/bin/mach_kurzreferenz.vorprogramm b/linux/console/bin/mach_kurzreferenz.vorprogramm
new file mode 100755
index 0000000..a86e999
--- /dev/null
+++ b/linux/console/bin/mach_kurzreferenz.vorprogramm
@@ -0,0 +1,37 @@
+#!/bin/sh
+xmodmap=../xmodmap/neo_de.xmodmap
+
+grep -n ^keycode $xmodmap | grep ^[12] | tr -s [:blank:] ' '| cut -f2 -d = > mach_kurzreferenz.hilfe1
+
+sed -f console.ersetze.vorprogramm mach_kurzreferenz.hilfe1 > mach_kurzreferenz.hilfe2
+
+anzahl=`wc -l mach_kurzreferenz.hilfe2 | cut -f1 -d \ `
+
+for i in $(seq 1 $anzahl)
+do
+ for j in $(seq 2 8)
+ do
+ a=`head -$i mach_kurzreferenz.hilfe2 | tail -1 | cut -f $j -d\ `
+ if [ "$a" ]
+ then
+ b=`echo $a | cut -c-2`
+ if [ ! "$b" == "U+" ]
+ then
+ c=`grep $a dump`
+ if [ ! "$c" ]
+ then
+ d=`grep -w $a console.keysyms | cut -f2 -d U | cut -c-4`
+ if [ "$d" ]
+ then
+ echo "s/"$a"/U+"$d"/g"
+ else
+ echo "s/"$a"/VoidSymbol/g"
+ fi
+ fi
+ fi
+ fi
+ done
+done
+
+rm mach_kurzreferenz.hilfe1
+rm mach_kurzreferenz.hilfe2