!! ~/.xmodmap
!!
!! Bei der Benutzung des Befehls »rev« muss die Zeile mit der aktuellen
!! Revisionsnummer stets die Zeilennummer 9 sein. Anderenfalls muss »rev«
!! angepasst werden.
!!
!! created by Benjamin Kellermann <Benjamin dot Kellermann at gmx dot Germany>
!! and Erik Streb <mail at erikstreb dot de>
!!
!! The german NEO Layout Revision 401 from Fr 7. Mär 00:09:51 CET 2008
!! see http://pebbles.schattenlauf.de/layout.php for details
!!
!! 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 (named .xmodmap in your home directory)


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Modifier definition
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
remove Lock = Caps_Lock
remove Mod3 = ISO_Level3_Shift
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) und lässt sich durch ein weiteres Shift lösen
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 (which is the 3rd and 4th level)
! Mod3(links) (=Qwertz-Caps) erlaubt nur 4 Ebenen
! ISO_Lock funktioniert nicht! Weder das Einrasten, noch das Lösen
! 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 51 =  ISO_Group_Shift ISO_Group_Shift ISO_Lock
keycode 66 =  ISO_Group_Shift ISO_Group_Shift ISO_Lock

! 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
keycode 113 = ISO_Level3_Shift  ISO_Level3_Shift  ISO_Group_Shift   ISO_Group_Shift  ISO_Level3_Lock
keycode 94 =  ISO_Level3_Shift  ISO_Level3_Shift  ISO_Group_Shift   ISO_Group_Shift  ISO_Level3_Lock

!add Mod3 = ISO_Group_Shift
!add Mod5 = ISO_Level3_Shift


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! 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!)
! Compose (keine eigene Ebene): Mod3+Tab


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! general Lock
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Einrasten über linke Win-Taste+Modifier, Lösen über nochmaliges Betätigen des Modifiers
! ShiftLock und Mo5Lock funktionieren, Mod3Lock lässt sich aber nicht mehr lösen!!!!
! keycode 115 = ISO_Lock


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Tab as Multi_key (Compose)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 23 = Tab ISO_Left_Tab Multi_key


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Space key
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 65 = space space space nobreakspace KP_0 KP_0 U202F


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The first row (number Row)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!Eigentlich sollte die folgende Zeile rein, aber auf alten Systemen ist der
!dead_stroke noch nicht definiert. 
!Diese Zeile muss statt der folgenden benutzt werden, wenn die Composeerweiterungen
!benutzt werden sollen, siehe auch ../X/README.Compose 
!keycode 49 = dead_circumflex dead_caron dead_breve dead_stroke dead_belowdot dead_belowdot dead_belowdot
keycode 49 = dead_circumflex dead_caron dead_breve dead_breve dead_belowdot dead_belowdot dead_belowdot

keycode 10 = 1 degree         onesuperior   U2640    enfilledcircbullet enfilledcircbullet U00AC
keycode 11 = 2 numerosign     twosuperior   U26A5    U2023              U2023              U2228
keycode 12 = 3 section        threesuperior U2642    U25E6              U25E6              U2227
keycode 13 = 4 guillemotright U203A         U2113    KP_Prior           KP_Prior              U22A5
keycode 14 = 5 guillemotleft  U2039         5        5                  5                  U2221
keycode 15 = 6 EuroSign       cent          6        sterling           sterling           U2225

keycode 16 = 7 dollar               yen                  U03F0 currency currency           U2209
keycode 17 = 8 doublelowquotemark   singlelowquotemark   8     KP_Divide    KP_Divide      U2204
keycode 18 = 9 leftdoublequotemark  leftsinglequotemark  9     KP_Multiply  KP_Multiply    U2226
keycode 19 = 0 rightdoublequotemark rightsinglequotemark 0     minus        minus          U2205

keycode 20 = minus      endash     emdash       2011        minus         minus          U00AD
keycode 21 = dead_acute dead_grave dead_cedilla dead_ogonek dead_abovedot dead_abovering dead_abovering

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The upper row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 24 = x X at           Greek_xi     x         x         U039E
keycode 25 = v V underscore   v            BackSpace BackSpace U2259
keycode 26 = l L bracketleft  Greek_lambda KP_Up     KP_Up     U039B
keycode 27 = c C bracketright Greek_chi    KP_Delete KP_Delete U2102
keycode 28 = w W U005E        Greek_omega  KP_Insert KP_Insert U03A9

keycode 29 = k      K     exclam    Greek_kappa           exclamdown exclamdown U221A
keycode 30 = h      H     less      Greek_psi             KP_7       KP_7       U03A8
keycode 31 = g      G     greater   Greek_gamma           KP_8       KP_8       U0393
keycode 32 = f      F     equal     U03D5                 KP_9       KP_9       U03A6
keycode 33 = q      Q     ampersand U03C6                 plus       plus       U211A
keycode 34 = ssharp U1E9E U017F     Greek_finalsmallsigma ssharp     ssharp     U2218

keycode 35 = dead_tilde dead_macron dead_diaeresis dead_doubleacute

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The home row (middle row)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 38 = u U backslash  u             KP_Home  KP_Home  U222E
keycode 39 = i I slash      Greek_iota    KP_Left  KP_Left  U222B
keycode 40 = a A braceleft  Greek_alpha   KP_Down  KP_Down  U2200
keycode 41 = e E braceright Greek_epsilon KP_Right KP_Right U2203
keycode 42 = o O asterisk   Greek_omicron KP_End   KP_End   U2208

keycode 43 = s S question   Greek_sigma questiondown questiondown U03A3
keycode 44 = n N parenleft  Greek_nu    KP_4         KP_4         U2115
keycode 45 = r R parenright Greek_rho   KP_5         KP_5         U211D
keycode 46 = t T minus      Greek_tau   KP_6         KP_6         U2202
keycode 47 = d D colon      Greek_delta comma        comma        U0394
keycode 48 = y Y doublelowquotemark Greek_upsilon y  y            U2207

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The lower row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 52 = udiaeresis Udiaeresis numbersign udiaeresis Escape   Escape    U221D
keycode 53 = odiaeresis Odiaeresis dollar     odiaeresis Tab      Tab       U2111
keycode 54 = adiaeresis Adiaeresis bar        Greek_eta  KP_Next  KP_Next   U211C
keycode 55 = p          P          asciitilde Greek_pi   KP_Enter KP_Enter  U03A0
keycode 56 = z          Z          grave      Greek_zeta z        z         U2124

keycode 57 = b      B        plus       Greek_beta  KP_Decimal KP_Decimal   U21D2
keycode 58 = m      M        percent    Greek_mu    KP_1       KP_1         U21D4
keycode 59 = comma  U22EE    apostrophe U03F1       KP_2       KP_2         U21D0
keycode 60 = period ellipsis quotedbl   Greek_theta KP_3       KP_3         U0398
keycode 61 = j      J        semicolon  U03D1       period     period       U2261


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Keypad
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The uppest row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!keycode 77 = Num_Lock Pointer_EnableKeys
keycode 112 = KP_Divide   KP_Divide   division  U2215
keycode 63  = KP_Multiply U2217 multiply  U22C5
keycode 82  = KP_Subtract KP_Subtract U2212

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The upper row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 79 =  KP_Home     KP_7        U20D7      U226A
keycode 80 =  KP_Up       KP_8        uparrow    U2229
keycode 81 =  KP_Prior    KP_9        U2297      U226B
keycode 86 =  KP_Add      KP_Add      plusminus  U2213

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The middle row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 83 =  KP_Left     KP_4        leftarrow  U2282
keycode 84 =  EuroSign    KP_5        U221E      U220B
keycode 85 =  KP_Right    KP_6        rightarrow U2283

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The lower row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 87 =  KP_End      KP_1        U21CB      U2264 
keycode 88 =  KP_Down     KP_2        downarrow  U222A 
keycode 89 =  KP_Next     KP_3        U21CC      U2265 
keycode 108 = KP_Enter    KP_Enter    notequal   U2248
!keysym <KPEQ> KP_Equal

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The lowest row
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
keycode 90 = KP_Insert    KP_0        percent    U2030
keycode 91 = KP_Delete    KP_Decimal  period     comma



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! 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 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
!     (ind dieser Reihenfolge!) erreicht werden kann
!
! 2.) Die KP_-Einträge auf Ebene 5 ermöglichen die Steuerung des Mauscursors mit der Tastatur.
!     Hierzu wird mittels Shift+Num dieser Betriebsmodus ein- und später wieder ausgeschaltet.
!     Die Steuerung des Cursors kann über den echten Ziffernblock oder den auf Ebene 5 (sinnvollerweise
!     mit eingerastetem Mod4) erfolgen
!
! 3.) Die KP_-Einträge auf der linken Seite der Ebene 5 müssen vorhanden sein, da anderenfalls Probleme
!     mit (älteren) Programmen wie xterm oder xedit auftreten. Da es keinen mir bekannten Ersatz für
!     Backspace gibt, funktioniert im xterm das v nicht. Wird dies benötigt, muss das Backspace (Mod4+v)
!     entfernt (und z.B. durch v ersetzt) werden.
!
! 4.) Auf 0 und q (Ebene 5) muss minus und plus stehen (nicht KP_Substract und KP_Add) !
!     Anderenfalls funktionieren diese Tasten unter xterm mit shift+q als Vergrößerung (Shift+KP_Add)
!     und shift+0 als Verkleinerung (Shift+KP_Substract)