Beginn von Tests zu weiteren Unix-Systemen. Hoffentlich noch einiges mehr in dieser Woche.

This commit is contained in:
hendrik 2009-01-06 18:50:24 +00:00
parent befcd61bb6
commit f38f16e428
3 changed files with 521 additions and 0 deletions

46
unix/freebsd/README.txt Normal file
View File

@ -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

143
unix/freebsd/neo.kbd Normal file
View File

@ -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

View File

@ -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.