summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhendrik <hendrik@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2009-01-06 18:50:24 +0000
committerhendrik <hendrik@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2009-01-06 18:50:24 +0000
commit3ed82866a79769148aaab9086c9799443836ba66 (patch)
treeb5acf21549e37ff773da5591e66791cac0dba7e2
parent33dbd49cd93e5ab6f00bea153938b852724659f7 (diff)
Beginn von Tests zu weiteren Unix-Systemen. Hoffentlich noch einiges mehr in dieser Woche.
git-svn-id: https://svn.neo-layout.org@1397 b9310e46-f624-0410-8ea1-cfbb3a30dc96
Diffstat (limited to '')
-rw-r--r--unix/freebsd/README.txt46
-rw-r--r--unix/freebsd/neo.kbd143
-rw-r--r--unix/opensolaris/xmodmap/neo_de.xmodmap332
3 files changed, 521 insertions, 0 deletions
diff --git a/unix/freebsd/README.txt b/unix/freebsd/README.txt
new file mode 100644
index 0000000..107b455
--- /dev/null
+++ b/unix/freebsd/README.txt
@@ -0,0 +1,46 @@
+= Neo 2 für FreeBSD =
+Von Haus aus bringt FreeBSD Unterstützung für Neo 1 in Xorg mit. Für die
+Konsole und für Neo 2 in X muss also ein Treiber installiert werden.
+
+== Neo auf der Konsole ==
+Für FreeBSD an der Konsole muss die Treiberdatei mit folgendem Befehl geladen
+werden:
+
+$ kbdcontrol -l neo.kbd
+
+Um das Layout permanent zu verwenden lohnt es sich die neo.kbd in das
+Verzeichnis für Keymaps als root-Benutzer zu plazieren:
+# cp neo.kbd /usr/share/syscons/keymaps/
+
+Trägt man dann noch keymap="neo" in /etc/rc.conf ein sollte vom nächsten
+Boot an immer das richtige Layout verwenden werden.
+
+=== Hinweis ===
+FreeBSD sieht nicht vor dass UTF-8 an der regulären Konsole verwendet wird.
+Dadurch ist es nicht möglich die meisten Sonderzeichen die Neo erlaubt zu
+implementerien. Einige ISO-8859 Zeichen, wie Umlaute und Akzentvokale, sind
+implementiert aber ein grosser Teil von Neo ist hier nicht zugänglich ohne
+grundlegender Überarbeitung des Konsolenmodus unter FreeBSD. Dieser Treiber
+ist also nicht als vollständiger Ersatz gedacht, sondern nur um grundlegende
+Systemadministration durch Ebene 1-3 möglich zu machen ohne in X zu wechseln.
+
+Dies trifft nicht zu wenn ein Terminalfenster (lokal oder entfernt) unter
+X verwendet wird. Das korrekte Charset zu setzen bleibt aber nicht aus.
+
+== Neo unter X ==
+=== Xkb ===
+Es ist möglich die "de" Datei aus linux/X in FreeBSD zu installieren. Der
+Standardordner hierfür ist in den meisten Fällen
+/usr/local/share/X11/xkb/symbols oder /usr/share/X11/xkb/symbols.
+
+Auch hier ergeben sich Probleme mit den Modifiern und bisher scheinen nur
+Ebene 1 und 2 verfügbar zu sein.
+
+=== Xmodmap ===
+Auch das Laden von neo_de.xmodmap ist möglich aber es ergeben sich ähnliche
+Probleme wie bei Xkb.
+
+== Todo ==
+
+* Funktionierender X-Treiber
+* Test der Treiber auf Systemen die auf FreeBSD beruhen wie PC-BSD, etc
diff --git a/unix/freebsd/neo.kbd b/unix/freebsd/neo.kbd
new file mode 100644
index 0000000..cdd51f8
--- /dev/null
+++ b/unix/freebsd/neo.kbd
@@ -0,0 +1,143 @@
+# $FreeBSD: src/share/syscons/keymaps/german.iso.acc.kbd,v 1.1 2003/06/19 08:34:38 murray Exp $
+# Neo Layout 2 based on linux/console/neo.map, v0.1 Hendrik Grahl
+# TODO: Get M4 modifier and be able to call it
+# TODO: Include non ascii characters apart from the umlaute
+# TODO: Lv 5 & 6 probably impossible due to ISO reliance
+# alt
+# scan cntrl alt alt cntrl lock
+# code base shift cntrl shift alt shift cntrl shift state
+# ------------------------------------------------------------------
+ 000 nop nop nop nop nop nop nop nop O
+ 001 esc esc esc esc esc esc debug esc O
+ 002 '1' '!' nop nop '1' '!' nop nop O
+ 003 '2' '"' nop nop 178 178 nop nop O
+ 004 '3' 167 nop nop 179 179 nop nop O
+ 005 '4' 171 nop nop '4' '$' nop nop O
+ 006 '5' 187 nop nop '5' '%' nop nop O
+ 007 '6' 164 nop nop 164 '&' nop nop O
+ 008 '7' '$' nop nop '{' '{' nop nop O
+ 009 '8' '"' esc esc '[' '[' esc esc O
+ 010 '9' '"' gs gs ']' ']' gs gs O
+ 011 '0' '"' nop nop '}' '}' nop nop O
+ 012 '-' '-' fs fs nop nop fs fs O
+ 013 dacu dgra nop nop 179 180 nop nop O
+ 014 bs bs del del bs bs del del O
+ 015 ht btab nop nop ht btab nop nop O
+ 016 'x' 'X' can can '@' '@' can can C
+ 017 'v' 'V' syn syn '_' '_' syn syn C
+ 018 'l' 'L' ff ff '[' '[' ff ff C
+ 019 'c' 'C' etx etx ']' ']' etx etx C
+ 020 'w' 'W' etb etb '^' '^' etb etb C
+ 021 'k' 'K' vt vt '!' '!' vt vt C
+ 022 'h' 'H' bs bs '<' '<' bs bs C
+ 023 'g' 'G' bel bel '>' '>' bel bel C
+ 024 'f' 'F' ack ack '=' '=' ack ack C
+ 025 'q' 'Q' dc1 dc1 '&' '&' nul nul C
+ 026 223 nop nop nop 252 220 esc nop C
+ 027 dtil '*' nop nop duml duml nop nop O
+ 028 cr cr nl nl cr cr nl nl O
+ 029 lctrl lctrl lctrl lctrl lctrl lctrl lctrl lctrl O
+ 030 'u' 'U' nak nak '\' '\' nak nak C
+ 031 'i' 'I' ht ht '/' '/' ht ht C
+ 032 'a' 'A' soh soh '{' '{' soh soh C
+ 033 'e' 'E' enq enq '}' '}' enq enq C
+ 034 'o' 'O' si si '*' '*' si si C
+ 035 's' 'S' dc3 dc3 '?' '?' dc3 dc3 C
+ 036 'n' 'N' so so '(' '(' so so C
+ 037 'r' 'R' dc2 dc2 ')' ')' vt vt C
+ 038 't' 'T' dc4 dc4 '-' '-' dc2 dc2 C
+ 039 'd' 'D' eot eot ':' ':' eot eot C
+ 040 'y' 'Y' em em '@' '@' nop nop C
+ 041 dcir 176 rs rs '^' 176 em em O
+ 042 lshift lshift lshift lshift lshift lshift lshift lshift O
+ 043 ralt ralt ralt ralt ralt ralt ralt ralt O
+ 044 252 220 nop nop '#' '#' nop nop C
+ 045 246 214 nop nop '$' '$' nop nop C
+ 046 228 196 etx etx '|' '|' etx etx C
+ 047 'p' 'P' dle dle '~' '~' dle dle C
+ 048 'z' 'Z' sub sub '`' '`' sub sub C
+ 049 'b' 'B' stx stx '+' '+' stx stx C
+ 050 'm' 'M' cr cr '%' '%' cr cr C
+ 051 ',' ';' nop nop '"' '"' nop nop O
+ 052 '.' ':' nop nop ''' ''' nop nop O
+ 053 'j' 'J' nl nl ';' ';' nl nl O
+ 054 rshift rshift rshift rshift rshift rshift rshift rshift O
+ 055 '*' '*' '*' '*' '*' '*' '*' '*' O
+ 056 lalt lalt lalt lalt lalt lalt lalt lalt O
+ 057 ' ' ' ' nul ' ' ' ' ' ' susp ' ' O
+ 058 ralt ralt ralt ralt ralt ralt ralt ralt O
+ 059 fkey01 fkey13 fkey25 fkey37 scr01 scr11 scr01 scr11 O
+ 060 fkey02 fkey14 fkey26 fkey38 scr02 scr12 scr02 scr12 O
+ 061 fkey03 fkey15 fkey27 fkey39 scr03 scr13 scr03 scr13 O
+ 062 fkey04 fkey16 fkey28 fkey40 scr04 scr14 scr04 scr14 O
+ 063 fkey05 fkey17 fkey29 fkey41 scr05 scr15 scr05 scr15 O
+ 064 fkey06 fkey18 fkey30 fkey42 scr06 scr16 scr06 scr16 O
+ 065 fkey07 fkey19 fkey31 fkey43 scr07 scr07 scr07 scr07 O
+ 066 fkey08 fkey20 fkey32 fkey44 scr08 scr08 scr08 scr08 O
+ 067 fkey09 fkey21 fkey33 fkey45 scr09 scr09 scr09 scr09 O
+ 068 fkey10 fkey22 fkey34 fkey46 scr10 scr10 scr10 scr10 O
+ 069 nlock nlock nlock nlock nlock nlock nlock nlock O
+ 070 slock slock slock slock slock slock slock slock O
+ 071 fkey49 '7' '7' '7' '7' '7' '7' '7' N
+ 072 fkey50 '8' '8' '8' '8' '8' '8' '8' N
+ 073 fkey51 '9' '9' '9' '9' '9' '9' '9' N
+ 074 fkey52 '-' '-' '-' '-' '-' '-' '-' N
+ 075 fkey53 '4' '4' '4' '4' '4' '4' '4' N
+ 076 fkey54 '5' '5' '5' '5' '5' '5' '5' N
+ 077 fkey55 '6' '6' '6' '6' '6' '6' '6' N
+ 078 fkey56 '+' '+' '+' '+' '+' '+' '+' N
+ 079 fkey57 '1' '1' '1' '1' '1' '1' '1' N
+ 080 fkey58 '2' '2' '2' '2' '2' '2' '2' N
+ 081 fkey59 '3' '3' '3' '3' '3' '3' '3' N
+ 082 fkey60 '0' '0' '0' '0' '0' '0' '0' N
+ 083 del '.' '.' '.' '.' '.' boot boot N
+ 084 nop nop nop nop nop nop nop nop O
+ 085 nop nop nop nop nop nop nop nop O
+ 086 '<' '>' nop nop '|' 166 nop nop O
+ 087 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O
+ 088 fkey12 fkey24 fkey36 fkey48 scr12 scr12 scr12 scr12 O
+ 089 cr cr nl nl cr cr nl nl O
+ 090 rctrl rctrl rctrl rctrl rctrl rctrl rctrl rctrl O
+ 091 '/' '/' '/' '/' '/' '/' '/' '/' N
+ 092 nscr pscr debug debug nop nop nop nop O
+ 093 ralt ralt ralt ralt ralt ralt ralt ralt O
+ 094 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 O
+ 095 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 O
+ 096 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 O
+ 097 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 O
+ 098 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 O
+ 099 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 O
+ 100 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 O
+ 101 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 O
+ 102 fkey60 paste fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 O
+ 103 fkey61 fkey61 fkey61 fkey61 fkey61 fkey61 boot fkey61 O
+ 104 slock saver slock saver susp nop susp nop O
+ 105 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 fkey62 O
+ 106 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 fkey63 O
+ 107 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 fkey64 O
+ 108 nop nop nop nop nop nop nop nop O
+
+ dgra '`' ( 'a' 224 ) ( 'A' 192 ) ( 'e' 232 ) ( 'E' 200 )
+ ( 'i' 236 ) ( 'I' 204 ) ( 'o' 242 ) ( 'O' 210 )
+ ( 'u' 249 ) ( 'U' 217 )
+ dacu 180 ( 'a' 225 ) ( 'A' 193 ) ( 'e' 233 ) ( 'E' 201 )
+ ( 'i' 237 ) ( 'I' 205 ) ( 'o' 243 ) ( 'O' 211 )
+ ( 'u' 250 ) ( 'U' 218 ) ( 'y' 253 ) ( 'Y' 221 )
+ dcir '^' ( 'a' 226 ) ( 'A' 194 ) ( 'e' 234 ) ( 'E' 202 )
+ ( 'i' 238 ) ( 'I' 206 ) ( 'o' 244 ) ( 'O' 212 )
+ ( 'u' 251 ) ( 'U' 219 )
+ dtil '~' ( 'a' 227 ) ( 'A' 195 ) ( 'n' 241 ) ( 'N' 209 )
+ ( 'o' 245 ) ( 'O' 213 )
+ dmac 000
+ dbre 000
+ ddot 000
+ duml 168 ( 'a' 228 ) ( 'A' 196 ) ( 'e' 235 ) ( 'E' 203 )
+ ( 'i' 239 ) ( 'I' 207 ) ( 'o' 246 ) ( 'O' 214 )
+ ( 'u' 252 ) ( 'U' 220 ) ( 'y' 255 )
+ dsla 000
+ drin 176 ( 'a' 229 ) ( 'A' 197 )
+ dced 184 ( 'c' 231 ) ( 'C' 199 )
+ dapo 000
+ ddac 000
+ dogo 000
+ dcar 000
diff --git a/unix/opensolaris/xmodmap/neo_de.xmodmap b/unix/opensolaris/xmodmap/neo_de.xmodmap
new file mode 100644
index 0000000..c762e01
--- /dev/null
+++ b/unix/opensolaris/xmodmap/neo_de.xmodmap
@@ -0,0 +1,332 @@
+!! ~/.xmodmap
+!!
+!! Imported from linux/xmodmap/neo_de.xmodmap Rev. 1293
+!!
+!! German NEO-Layout
+!! adopted 2004 by Hanno Behrens <Hanno.Behrens@gmx.de>
+!! inspired by Dvorak/de-ergo http://www.goebel-consult.de/de-ergo/
+!! Authors:
+!! Benjamin Kellermann <Benjamin dot Kellermann at gmx dot Germany>
+!! Erik Streb <mail at erikstreb dot de>
+!! Pascal Hauck <pascal dot hauck at web dot de>
+!!
+!! Other Questions:
+!! <mailinglist at neo-layout dot org>
+!!
+!! $Revision: 1293 $, $Date: 2008-12-19 09:39:48 +0100 (Fri, 19 Dec 2008) $
+!! http://pebbles.schattenlauf.de/layout.php
+!!
+!! To try the layout in this file, simply do xmodmap <file>.
+!! To load the layout in this file at X startup, simply store it as
+!! ~/.xmodmap
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Ebenen
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Ebene 1: normal
+! Ebene 2: Shift
+! Ebene 3: Mod3
+! Ebene 4: Mod4 (zum Markieren Shift+Mod4)
+! Ebene 5: Shift+Mod3
+! Ebene 6: Mod3+Mod4 (in dieser Reihenfolge!)
+! Ebene 7: wird (bis auf technisch bedingte Ausnahmen) nicht belegt
+! Multi_key=Compose (keine eigene Ebene): Mod3+Tab or right window key
+! Feststellen/Shift_Lock: Shift+Shift
+! Mod4_Lock: Mod4(rechts)+Mod4(links)
+
+! Reihenfolge der Ebenen in der Xmodmap:
+! Ebene1 Ebene2 Ebene3 Ebene5 Ebene4 Ebene4+Sh Ebene6 Ebene7
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Modifier definition
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+clear Lock
+clear Mod2
+! Mod2 war NumLock !
+clear Mod3
+clear Mod5
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Shift
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! 50=left 62=right
+! Shift+Shift ergibt ein ShiftLock (wie Caps, wirkt aber auf alle Zeichen, nicht nur auf Großbuchstaben)
+! Der Lock lässt sich durch ein weiteres Shift lösen.
+! Eigentlich (siehe Referenz) sollte hier ein CapsLock stehen.
+keycode 50 = Shift_L Shift_Lock
+keycode 62 = Shift_R Shift_Lock
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Mod3
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! 66=left 51=right
+! Make CapsLock an modifier called Mod3 (similar to AltGr) (Mode_switch or ISO_Group_Shift is for 3rd and 4th level)
+! Make former CapsLock and qwertz-# to Mode_switch or ISO_Group_Shift
+! Mod3(links) (=Qwertz-Caps) erlaubt nur 4 Ebenen
+! Ohne einen Eintrag in der zweiten Gruppe (=Ebene 3) ergäbe Mod3+Mod3=Group_Shift+Group_Shift=Gruppe 3=Ebene 6. Das ist nicht gewünscht.
+keycode 66 = ISO_Group_Shift ISO_Group_Shift ISO_First_Group NoSymbol
+keycode 51 = ISO_Group_Shift ISO_Group_Shift ISO_First_Group NoSymbol
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Mod4
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! 94=left 113=right
+! Make the former AltGr and qwertz-< to Mod4 (ISO_Level3_Shift)
+! Mod4(rechts)+Mod4(links) lässt Mod4 einrasten (Mod4Lock)
+! das funktioniert nur in dieser Reihenfolge, da Mod4(rechts) (=Qwertz-AltGr) nur 4 Ebenen hat
+! Der Lock lässt sich durch ein weiteres Mod4 lösen.
+keysym less = ISO_Level3_Shift ISO_Level3_Shift ISO_Group_Shift ISO_Group_Shift ISO_Level3_Lock NoSymbol
+!keysym ISO_Level3_Shift = ISO_Level3_Shift ISO_Level3_Shift ISO_Group_Shift ISO_Group_Shift ISO_Level3_Lock NoSymbol
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! window keys
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! keysym Super_L = Super_L
+! keycode 116 = Super_R
+keysym Meta_R = Multi_key Multi_key
+! add Mod4 = Super_L
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! general Lock
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Einrasten über linke Win-Taste+Modifier, Lösen über nochmaliges Betätigen des Modifiers
+! Shift_Lock und Mo4_Lock funktionieren, Mod3_Lock lässt sich aber nicht mehr lösen!!!!
+! keycode 115 = ISO_Lock NoSymbol
+! add Lock = ISO_Lock
+
+
+! add Mod3 = ISO_Group_Shift
+! add Mod5 = ISO_Level3_Shift
+
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! main keyboard
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Tab key
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+keycode 23 = Tab ISO_Left_Tab Multi_key ISO_Level3_Lock
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Space key
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+keycode 65 = space space space nobreakspace KP_0 KP_0 U202F NoSymbol
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! dead keys
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Ebene1 Ebene2 Ebene3 Ebene5 Ebene4 Ebene4+Sh Ebene6 Ebene7
+
+keycode 49 = dead_circumflex dead_tilde dead_abovering dead_breve dead_caron Pointer_EnableKeys dead_macron NoSymbol
+! called T1 ˆ ˜ ˚ ˘ ˇ (keypad-mouse mode) ¯
+keycode 21 = dead_grave NoSymbol dead_diaeresis U1FFE NoSymbol NoSymbol NoSymbol NoSymbol
+! called T2 ` ¨ ῾ dasia (asper)
+keycode 35 = dead_acute dead_cedilla dead_stroke U1FBF dead_doubleacute NoSymbol dead_abovedot NoSymbol
+! called T3 ´ ¸ / ᾿ psili (lenis) ˝ ˙
+
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The first row (number Row)
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Ebene1 Ebene2 Ebene3 Ebene5 Ebene4 Ebene4+Sh Ebene6 Ebene7
+
+keycode 10 = 1 degree onesuperior onesubscript enfilledcircbullet NoSymbol notsign NoSymbol
+! ° ¹ ₁ • ¬
+keycode 11 = 2 section twosuperior twosubscript U2023 NoSymbol logicalor NoSymbol
+! § ² ₂ ‣ ∨
+keycode 12 = 3 U2113 threesuperior threesubscript numerosign NoSymbol logicaland NoSymbol
+! ℓ liter ³ ₃ № ∧
+keycode 13 = 4 guillemotright U203A dagger Prior Prior downtack NoSymbol
+! » › † ⊥ perpendicular
+keycode 14 = 5 guillemotleft U2039 femalesymbol periodcentered NoSymbol U2221 NoSymbol
+! « ‹ ♀ · ∡ angle sign
+keycode 15 = 6 EuroSign cent malesymbol sterling NoSymbol U2225 NoSymbol
+! € ¢ ♂ £ ∥ parallel
+
+keycode 16 = 7 dollar yen Greek_kappa currency NoSymbol rightarrow NoSymbol
+! $ ¥ κ ¤ →
+keycode 17 = 8 doublelowquotemark singlelowquotemark leftanglebracket NoSymbol NoSymbol infinity NoSymbol
+! „ ‚ ⟨ (bra) ∞
+keycode 18 = 9 leftdoublequotemark leftsinglequotemark rightanglebracket KP_Divide KP_Divide containsas NoSymbol
+! “ ‘ ⟩ (ket) / / ∋
+keycode 19 = 0 rightdoublequotemark rightsinglequotemark zerosubscript KP_Multiply KP_Multiply emptyset NoSymbol
+! ” ’ ₀ * * ∅
+keycode 20 = minus emdash NoSymbol U2011 KP_Subtract KP_Subtract hyphen NoSymbol
+! - — ‑ non-breaking - - ­ soft hyphen
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The upper row
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Ebene1 Ebene2 Ebene3 Ebene5 Ebene4 Ebene4+Sh Ebene6 Ebene7
+
+keycode 24 = x X NoSymbol Greek_xi NoSymbol NoSymbol Greek_XI Greek_XI
+! ξ Ξ Ξ
+keycode 25 = v V underscore NoSymbol BackSpace BackSpace U2259 NoSymbol
+! _ ≙ ≙
+keycode 26 = l L bracketleft Greek_lambda Up Up Greek_LAMBDA Greek_LAMBDA
+! [ λ Λ Λ
+keycode 27 = c C bracketright Greek_chi Delete Delete U2102 NoSymbol
+! ] χ ℂ komplex
+keycode 28 = w W asciicircum Greek_omega Insert Insert Greek_OMEGA Greek_OMEGA
+! ^ ω Ω Ω
+
+keycode 29 = k K exclam U03F0 exclamdown NoSymbol radical NoSymbol
+! ! ϰ Greek_kappa ¡ √
+keycode 30 = h H less Greek_psi KP_7 KP_7 Greek_PSI Greek_PSI
+! < ψ Ψ Ψ
+keycode 31 = g G greater Greek_gamma KP_8 KP_8 Greek_GAMMA Greek_GAMMA
+! > γ Γ Γ
+keycode 32 = f F equal Greek_phi KP_9 KP_9 Greek_PHI Greek_PHI
+! = φ Φ Φ
+keycode 33 = q Q ampersand U03D5 KP_Add KP_Add U211A NoSymbol
+! & ϕ Greek_phi + + ℚ rational
+keycode 34 = ssharp U1E9E U017F Greek_finalsmallsigma NoSymbol NoSymbol jot NoSymbol
+! ß ẞ Capital ß ſ long s ς ∘ ring operator
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The home row (middle row)
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Ebene1 Ebene2 Ebene3 Ebene5 Ebene4 Ebene4+Sh Ebene6 Ebene7
+
+keycode 38 = u U backslash NoSymbol Home Home U222E NoSymbol
+! \ ∮ contour integral
+keycode 39 = i I slash Greek_iota Left Left integral NoSymbol
+! / ι ∫
+keycode 40 = a A braceleft Greek_alpha Down Down U2200 NoSymbol
+! { α ∀ for all
+keycode 41 = e E braceright Greek_epsilon Right Right U2203 NoSymbol
+! } ε ∃ there exists
+keycode 42 = o O asterisk Greek_omicron End End elementof NoSymbol
+! * ο ∈
+
+keycode 43 = s S question Greek_sigma questiondown NoSymbol Greek_SIGMA Greek_SIGMA
+! ? σ ¿ Σ Σ
+keycode 44 = n N parenleft Greek_nu KP_4 KP_4 U2115 NoSymbol
+! ( ν ℕ natural
+keycode 45 = r R parenright U03F1 KP_5 KP_5 U211D NoSymbol
+! ) ϱ Greek_rho ℝ real
+keycode 46 = t T minus Greek_tau KP_6 KP_6 partialderivative
+! - τ ∂
+keycode 47 = d D colon Greek_delta KP_Separator NoSymbol Greek_DELTA Greek_DELTA
+! : δ ,/. Δ Δ
+keycode 48 = y Y at Greek_upsilon KP_Decimal NoSymbol nabla NoSymbol
+! @ υ ./, ∇
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The lower row
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Ebene1 Ebene2 Ebene3 Ebene5 Ebene4 Ebene4+Sh Ebene6 Ebene7
+
+keycode 52 = udiaeresis Udiaeresis numbersign NoSymbol Escape Escape U211C NoSymbol
+! ü Ü # ℜ real part
+keycode 53 = odiaeresis Odiaeresis dollar NoSymbol Tab ISO_Left_Tab U2111 NoSymbol
+! ö Ö $ ℑ imaginary part
+keycode 54 = adiaeresis Adiaeresis bar Greek_eta Next Next U2135 NoSymbol
+! ä Ä | η ℵ alef symbol
+keycode 55 = p P asciitilde Greek_pi Return Return Greek_PI Greek_PI
+! ~ π Π Π
+keycode 56 = z Z grave Greek_zeta Undo Redo U2124 NoSymbol
+! ` ζ ℤ integers
+
+keycode 57 = b B plus Greek_beta colon NoSymbol U21D0 NoSymbol
+! + β : ⇐
+keycode 58 = m M percent Greek_mu KP_1 KP_1 ifonlyif NoSymbol
+! % μ ⇔
+keycode 59 = comma endash quotedbl Greek_rho KP_2 KP_2 U21D2 NoSymbol
+! , – " ρ ⇒ implies
+keycode 60 = period ellipsis apostrophe U03D1 KP_3 KP_3 Greek_THETA Greek_THETA
+! . … ' ϑ Greek_theta Θ
+keycode 61 = j J semicolon Greek_theta semicolon NoSymbol variation NoSymbol
+! ; θ ; ∝ proportional to
+
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Keypad
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The uppest row
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Ebene1 Ebene2 Ebene3 Ebene5 Ebene6 Ebene7
+
+keycode 77 = Tab ISO_Left_Tab equal approxeq identical NoSymbol
+! = ≈ almost equal ≡ identical to
+keysym KP_Divide = KP_Divide KP_Divide division U2300 U2223 NoSymbol
+! / / ÷ ⌀ diameter ∣ divides
+keycode 63 = KP_Multiply KP_Multiply U22C5 U2299 U2297 NoSymbol
+! * * ⋅ dot ⊙ cirled dot ⊗ circled times
+keycode 82 = KP_Subtract KP_Subtract U2212 U2296 U2238 NoSymbol
+! - - − real minus ⊖ cirled minus ∸ dot minus
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The upper row
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Ebene1 Ebene2 Ebene3 Ebene5 Ebene6 Ebene7
+
+keycode 79 = KP_7 U2714 U2195 U226A upstile NoSymbol
+! ✔ check mark ↕ arrow ≪ much less ⌈
+keycode 80 = KP_8 U2718 uparrow intersection U22C2 NoSymbol
+! ✘ ballot x ↑ ∩ ⋂ n-ary intersection
+keycode 81 = KP_9 club U20D7 U226B U2309 NoSymbol
+! ♣ vector ≫ much greater ⌉
+keycode 86 = KP_Add KP_Add plusminus U2295 U2214 NoSymbol
+! + + ± circled plus dot plus
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The middle row
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Ebene1 Ebene2 Ebene3 Ebene5 Ebene6 Ebene7
+
+keycode 83 = KP_4 heart leftarrow includedin U2286 NoSymbol
+! ♥ ← ⊂ ⊆
+keycode 84 = KP_5 EuroSign brokenbar U22B6 U22B7 NoSymbol
+! € ¦ ⊶ original of ⊷ image of
+keycode 85 = KP_6 U2660 rightarrow includes U2287 NoSymbol
+! ♠ → ⊃ ⊇
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The lower row
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Ebene1 Ebene2 Ebene3 Ebene5 Ebene6 Ebene7
+
+keycode 87 = KP_1 ordfeminine U2194 lessthanequal downstile NoSymbol
+! ª ↔ arrow ≤ ⌊
+keycode 88 = KP_2 masculine downarrow union U22C3 NoSymbol
+! º ↓ ∪ ⋃ n-ary union
+keycode 89 = KP_3 diamond U21CC greaterthanequal U230B NoSymbol
+! ♦ ⇌ ≥ ⌋
+! keycode 108 = KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter
+!
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The lowest row
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Ebene1 Ebene2 Ebene3 Ebene5 Ebene6 Ebene7
+
+keycode 90 = KP_0 U2423 percent U2030 U25A1 NoSymbol
+! ␣ space sign % ‰ per mille □ white square
+keycode 91 = comma period KP_Separator minutes seconds NoSymbol
+! , . ,/. ′ min,feets ″ sec,inches
+
+
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Bemerkungen
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! 1.) Ebene 6 (hier: der 7. Eintrag) erreicht man über ISO_Group_Shift+ISO_Group_Shift
+! (bzw. mode_switch+mode_switch) und über keine andere mir bekannte Kombination. Insbesondere legt
+! ISO_Level3_Shift Level3 (Ebene 4, hier: Eintrag 5) fest, verschiebt also nicht. Darum kann man
+! ISO_Level3_Shift nur mit Shift sinnvoll kombinieren. Daraus resultiert, dass Ebene 6 nur über
+! Mod3+Mod4 (in dieser Reihenfolge!) erreicht werden kann.
+!
+! 2.) Die KP_-Einträge ermöglichen die Steuerung des Mauscursors mit der Tastatur.
+! Hierzu wird mittels Mod4+ß dieser Betriebsmodus ein- und später wieder ausgeschaltet.
+! Die Steuerung des Cursors kann über den Ziffernblock (Ebene 4, eventuell mit
+! eingerastetem Mod4) erfolgen.