add neat-rechts layout + xmodmap
4 files changed, 367 insertions(+), 27 deletions(-)

M check_neo.py
M empirie/mine.txt => empirie/neat-rechts.txt
A => empirie/neat-rechts.xmodmap
M layout_base.py
M check_neo.py +2 -0
@@ 592,6 592,8 @@ def compare_a_layout(quiet, verbose, dat
         print_layout_with_statistics(QWERTZ_LAYOUT, letters=letters, repeats=repeats, number_of_letters=datalen1, number_of_bigrams=datalen2, trigrams=trigrams, number_of_trigrams=number_of_trigrams, verbose=verbose, shorten_numbers=True, fingerstats=fingerstats)
         info("\nAnd AdNW")
         print_layout_with_statistics(AdNW_LAYOUT, letters=letters, repeats=repeats, number_of_letters=datalen1, number_of_bigrams=datalen2, trigrams=trigrams, number_of_trigrams=number_of_trigrams, verbose=verbose, shorten_numbers=True, fingerstats=fingerstats)
+        info("\nAnd KOY")
+        print_layout_with_statistics(KOY_LAYOUT, letters=letters, repeats=repeats, number_of_letters=datalen1, number_of_bigrams=datalen2, trigrams=trigrams, number_of_trigrams=number_of_trigrams, verbose=verbose, shorten_numbers=True, fingerstats=fingerstats)
         info("\nAnd CRY")
         print_layout_with_statistics(CRY_LAYOUT, letters=letters, repeats=repeats, number_of_letters=datalen1, number_of_bigrams=datalen2, trigrams=trigrams, number_of_trigrams=number_of_trigrams, verbose=verbose, shorten_numbers=True, fingerstats=fingerstats)
         info("\nAnd Bone")

          
M empirie/mine.txt => empirie/neat-rechts.txt +4 -4
@@ 1,4 1,4 @@ 
-Mine
-zluaj wbdgyq
-crieo mnthsß
-vxüäö pf,.k
+Neat Rechts
+qäöüb zwoidk
+pjmur sneatß
+yxchv fl,.g

          
A => empirie/neat-rechts.xmodmap +304 -0
@@ 0,0 1,304 @@ 
+!! ~/.xmodmap
+!! Neat Rechts
+
+!!
+!! based upon the Modifiers and levels 3 – 7 of
+!! 
+!! 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 <neo at pascalhauck dot de>
+!! 
+!! Other Questions:
+!!      <diskussion at neo-layout dot org>
+!! 
+!! $Revision: 2332 $, $Date: 2010-08-06 08:42:35 +0200 (Fr, 06. Aug 2010) $
+!! http://neo-layout.org
+!!
+!! 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
+!!
+!!
+!! This file generated by generiere_xmodmap.py
+!! Ruthard Baudach <rthrd@web.de>
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! 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 Super_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
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! main keyboard
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Tab key
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+keycode 23 = Tab  ISO_Left_Tab  Multi_key  ISO_Level3_Lock
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Space and Return key
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+keycode 65 = space		space		space		nobreakspace	KP_0		KP_0		U202F		NoSymbol
+keycode 36 = Return		Return		Return		Return		KP_Enter	KP_Enter	Return		Return
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! dead keys
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!            Ebene1		Ebene2		Ebene3		Ebene5		Ebene4		Ebene4+Sh	Ebene6		Ebene7
+
+keycode 49 = dead_circumflex	dead_caron	U21BB		U02DE		dead_abovedot Pointer_EnableKeys dead_belowdot	NoSymbol
+! called T1	ˆ		ˇ		↻		˞		˙	     (keypad-mouse mode) .		
+keycode 21 = dead_grave		dead_cedilla	dead_abovering	dead_dasia	dead_diaeresis	NoSymbol	dead_macron	NoSymbol
+! called T2	`		¸		˚		῾ dasia (asper)	¨				¯		
+keycode 35 = dead_acute		dead_tilde	dead_stroke	dead_psili      dead_doubleacute	NoSymbol	dead_breve	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	ordfeminine	NoSymbol	notsign		NoSymbol
+!				°		¹	  	₁		ª	  			¬
+keycode 11 = 	2		section		twosuperior	twosubscript	masculine	NoSymbol	logicalor	NoSymbol
+!				§		²	  	₂		º				∨
+keycode 12 = 	3		U2113		threesuperior	threesubscript	numerosign	NoSymbol	logicaland	NoSymbol
+!				ℓ liter		³	  	₃		№				∧
+keycode 13 = 	4		guillemotright	U203A		femalesymbol	NoSymbol	NoSymbol	U22A5		NoSymbol
+!				»		›		♀						⊥ perpendicular
+keycode 14 = 	5		guillemotleft	U2039		malesymbol	periodcentered	NoSymbol	U2221		NoSymbol
+!				«		‹		♂		·				∡ angle sign
+keycode 15 = 	6		dollar		cent		U26A5		sterling	NoSymbol	U2225		NoSymbol
+!				$		¢		⚥		£				∥ parallel
+
+keycode 16 = 	7		EuroSign	yen		U03F0		currency	NoSymbol	rightarrow	NoSymbol
+!				€		¥		ϰ Greek_kappa	¤				→
+keycode 17 = 	8   doublelowquotemark    singlelowquotemark  leftanglebracket	Tab		ISO_Left_Tab	infinity	NoSymbol
+!				„		‚		⟨ (bra)						∞
+keycode 18 = 	9   leftdoublequotemark   leftsinglequotemark rightanglebracket KP_Divide	KP_Divide	variation	NoSymbol
+!				“		‘		⟩ (ket)		/		/		∝ proportional to
+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 = 	q		Q		ellipsis		U03D5		Prior		Prior		U211A		NoSymbol
+keycode 25 = 	adiaeresis		Adiaeresis		underscore		Greek_eta		BackSpace		BackSpace		U2135		NoSymbol
+keycode 26 = 	odiaeresis		Odiaeresis		bracketleft		U03F5		Up		Up		intersection		NoSymbol
+keycode 27 = 	udiaeresis		Udiaeresis		bracketright		NoSymbol		Delete		Delete		union		NoSymbol
+keycode 28 = 	b		B		asciicircum		Greek_beta		Next		Next		U21D0		NoSymbol
+
+keycode 29 = 	z		Z		exclam		Greek_zeta		exclamdown		NoSymbol		U2124		NoSymbol
+keycode 30 = 	w		W		less		Greek_omega		KP_7		KP_7		Greek_OMEGA		Greek_OMEGA
+keycode 31 = 	o		O		greater		Greek_omicron		KP_8		KP_8		elementof		NoSymbol
+keycode 32 = 	i		I		equal		Greek_iota		KP_9		KP_9		integral		NoSymbol
+keycode 33 = 	d		D		ampersand		Greek_delta		KP_Add		KP_Add		Greek_DELTA		Greek_DELTA
+keycode 34 =	k		K		U017F		Greek_kappa		U2212		NoSymbol		multiply		NoSymbol
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The home row (middle row)
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!            Ebene1		Ebene2		Ebene3		Ebene5		Ebene4		Ebene4+Sh	Ebene6		Ebene7
+
+keycode 38 = 	p		P		backslash		Greek_pi		Home		Home		Greek_PI		Greek_PI
+keycode 39 = 	j		J		slash		Greek_theta		Left		Left		Greek_THETA		Greek_THETA
+keycode 40 = 	m		M		braceleft		Greek_mu		Down		Down		ifonlyif		NoSymbol
+keycode 41 = 	u		U		braceright		NoSymbol		Right		Right		includedin		NoSymbol
+keycode 42 = 	r		R		asterisk		Greek_rho		End		End		U211D		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
+keycode 45 = 	e		E		parenright		Greek_epsilon		KP_5		KP_5		U2203		NoSymbol
+keycode 46 = 	a		A		minus		Greek_alpha		KP_6		KP_6		U2200		NoSymbol
+keycode 47 = 	t		T		colon		Greek_tau		KP_Separator		comma		partialderivative		NoSymbol
+keycode 48 = 	ssharp		U1E9E		at		Greek_finalsmallsigma		period		KP_Decimal		jot		NoSymbol
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The lower row
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!            Ebene1		Ebene2		Ebene3		Ebene5		Ebene4		Ebene4+Sh	Ebene6		Ebene7
+
+keycode 52 = 	y		Y		numbersign		Greek_upsilon		Escape		Escape		nabla		NoSymbol
+keycode 53 = 	x		X		dollar		Greek_xi		Tab		ISO_Left_Tab		Greek_XI		Greek_XI
+keycode 54 = 	c		C		bar		Greek_chi		Insert		Insert		U2102		NoSymbol
+keycode 55 = 	h		H		asciitilde		Greek_psi		Return		Return		Greek_PSI		Greek_PSI
+keycode 56 = 	v		V		grave		NoSymbol		Undo		Redo		radical		NoSymbol
+
+keycode 57 = 	f		F		plus		Greek_phi		colon		NoSymbol	Greek_PHI		Greek_PHI
+keycode 58 = 	l		L		percent		Greek_lambda		KP_1		KP_1	Greek_LAMBDA		Greek_LAMBDA
+keycode 59 =	comma		endash		quotedbl		U03F1		KP_2		KP_2		U21D2		NoSymbol
+keycode 60 =	period		enfilledcircbullet		apostrophe		U03D1		KP_3		KP_3		U21A6		NoSymbol
+keycode 61 = 	g		G		semicolon		Greek_gamma		semicolon		NoSymbol		Greek_GAMMA		Greek_GAMMA
+
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! Keypad
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The uppest row
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!            Ebene1		Ebene2		Ebene3		Ebene5		Ebene6		Ebene7		Ebene4		Ebene4+Sh
+
+keycode 77  = Tab		ISO_Left_Tab	equal		approxeq	identical	NoSymbol	notequal	Pointer_EnableKeys
+!						=		≈ almost equal	≡ identical to			≠		(keypad-mouse mode)
+keysym KP_Divide = KP_Divide	KP_Divide	division	U2300		U2223		NoSymbol	U2044		NoSymbol
+!		/		/		÷		⌀ diameter	∣ divides			(for ⁶⁄₅₉)	
+keycode 63  = KP_Multiply	KP_Multiply	U22C5		U2299		U2297		NoSymbol	multiply	NoSymbol
+!		*		*		⋅ dot		⊙ cirled dot	⊗ circled times			× times		
+keycode 82  = KP_Subtract	KP_Subtract	U2212		U2296		U2238		NoSymbol	U2216		NoSymbol
+!		-		-		− real minus	⊖ cirled minus	∸ dot minus			∖ set minus	
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The upper row
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!            Ebene1		Ebene2		Ebene3		Ebene5		Ebene6		Ebene7		Ebene4		Ebene4+Sh
+
+keycode 79 =  KP_7		U2714		U2195		U226A		upstile		NoSymbol	KP_Home		KP_Home
+!				✔ check mark	↕ arrow		≪ much less	⌈						
+keycode 80 =  KP_8		U2718		uparrow		intersection	U22C2		NoSymbol	KP_Up		KP_Up
+!				✘ ballot x	↑		∩		⋂ n-ary intersection				
+keycode 81 =  KP_9		dagger		U20D7		U226B		U2309		NoSymbol	KP_Prior	KP_Prior
+!				†		vector		≫ much greater	⌉						
+keycode 86 =  KP_Add		KP_Add		plusminus	U2295		U2214		NoSymbol	U2213		NoSymbol
+!		+		+		±		circled plus	dot plus			∓ minus-plus	
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The middle row
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!            Ebene1		Ebene2		Ebene3		Ebene5		Ebene6		Ebene7		Ebene4		Ebene4+Sh
+
+keycode 83 =  KP_4		club		leftarrow	includedin	U2286		NoSymbol	KP_Left		KP_Left
+!				♣		←		⊂		⊆						
+keycode 84 =  KP_5		EuroSign	colon		U22B6 		U22B7		NoSymbol	KP_Begin	KP_Begin
+!				€		:		⊶ original of	⊷ image of					
+keycode 85 =  KP_6		U2023		rightarrow	includes	U2287		NoSymbol	KP_Right	KP_Right
+!				‣		→		⊃		⊇						
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The lower row
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!            Ebene1		Ebene2		Ebene3		Ebene5		Ebene6		Ebene7		Ebene4		Ebene4+Sh
+
+keycode 87 =  KP_1		diamond		U2194		lessthanequal	downstile	NoSymbol	KP_End		KP_End
+!				♦		↔ arrow		≤		⌊						
+keycode 88 =  KP_2		heart		downarrow	union		U22C3		NoSymbol	KP_Down		KP_Down
+!				♥		↓		∪		⋃ n-ary union					
+keycode 89 =  KP_3		U2660		U21CC	      greaterthanequal	U230B		NoSymbol	KP_Next		KP_Next
+!				♠		⇌		≥		⌋						
+! keycode 108 = KP_Enter	KP_Enter	KP_Enter	KP_Enter	KP_Enter	KP_Enter	KP_Enter	KP_Enter
+!																
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! The lowest row
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!            Ebene1		Ebene2		Ebene3		Ebene5		Ebene6		Ebene7		Ebene4		Ebene4+Sh
+
+keycode 90 = KP_0		U2423		percent		U2030		U25A1		NoSymbol	KP_Insert	KP_Insert
+!				␣ space sign	%		‰ per mille	□ white square					
+keycode 91 = KP_Separator	period		comma		minutes		seconds		NoSymbol	KP_Delete	KP_Delete
+!		,		.		,		′ min,feets	″ sec,inches					
+
+
+add Mod3 = ISO_First_Group
+add Mod5 = ISO_Level3_Shift
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+! 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 Shift+Mod4+T1 dieser Betriebsmodus ein- und später wieder ausgeschaltet.
+!     Die Steuerung des Cursors kann über den Ziffernblock (Ebene 4, eventuell mit
+!     eingerastetem Mod4) erfolgen.

          
M layout_base.py +57 -23
@@ 302,29 302,63 @@ AdNW_LAYOUT = [
     [("♕"), (), ("♔"), (" ", " ", " ", "0", " ", " "), ("⇙"), (), (), ("♛")] # Reihe 4 mit Leertaste
 ]
 
-# TODO: http://adnw.de/index.php?n=Main.SeitlicheNachbaranschl%C3%A4ge
-# KOY_LAYOUT = [
-#     [("^", "ˇ", "↻", "˙", "˞", "̣"),("1", "°", "¹", "ª", "₁", "¬"),("2", "§", "²", "º", "₂", "∨"),("3", "ℓ", "³", "№", "₃", "∧"),
-#      ("4", "»", "›", "", "♀", "⊥"),("5", "«", "‹", "·", "♂", "∡"),("6", "$", "¢", "£", "⚥", "∥"),("7", "€", "¥", "¤", "ϰ", "→"),
-#      ("8", "„", "‚", "⇥", "⟨", "∞"),("9", "“", "‘", " /", "⟩", "∝"),("0", "”", "’", "*", "₀", "∅"),("-", "—", "-", "‑", "­"),
-#      ("`", "¸", "°", "¨", "", "¯"),("←")], # Zahlenreihe (0)
-# 
-#     [("⇥"),("k", "K", "…", "⇞", "κ", ""),(".", "•", "_", "⌫", "ϑ", "↦"),("o", "O", "[", "⇡", "ο", ""),
-#      ("u", "U", "]", "Entf", "", "⊂"),("ä", "Ä", "^", "⇟", "η", "ℵ"),("v", "V", "!", "¡", "", "√"),("g", "G", "<", "7", "γ", "Γ"),
-#      ("c", "C", ">", "8", "χ", "ℂ"),("l", "L", "=", "9", "λ", "Λ"),("j", "J", "&", "+", "θ", "Θ"),("f", "F", "ſ", "−", "φ", "Φ"),
-#      ("´", "~", "/", "˝", "", "˘"),()], # Reihe 1
-# 
-#     [("⇩"),("h", "H", "\\", "⇱", "ψ", "Ψ"),("i", "I", "/", "⇠", "ι", "∫"),("e", "E", "}", "⇢", "ε", "∃"),
-#      ("a", "A", "{",  "⇣", "α", "∀"),("ü", "Ü", "*", "⇲", "", "∪"),("d", "D", "?", "¿", "δ", "Δ"),("t", "T", "(", "4", "τ", "∂"),
-#      ("r", "R", ")", "5", "ρ", "ℝ"),("n", "N", "-", "6", "ν", "ℕ"),("s", "S", ":", ",", "σ", ""),("ß", "ẞ", "@", ".", "ς", ""),
-#      ("⇘"),("\n")], # Reihe 2
-# 
-#     [("⇧"),("⇚"),("x", "X", "#", "", "ξ", "Ξ"),("y", "Y", "$", "", "υ", ""),("ö", "Ö", "|", "⎀", "", "∩"),
-#      (",", "–", "~", "\n", "ϱ", "⇒"),("q", "Q", "`", "↶", "ϕ", "ℚ"),("b", "B", "+", ":", "β", "⇐"),("p", "P", "%", "1", "π", "Π"),
-#      ("w", "W", '"', "2", "ω", ""),("m", "M", "'", "3", "μ", "⇔"),("z", "Z", ";", ";", "ζ", "ℤ"),("⇗")],        # Reihe 3
-# 
-#     [("♕"), (), ("♔"), (" ", " ", " ", "0", " ", " "), ("⇙"), (), (), ("♛")] # Reihe 4 mit Leertaste
-# ]
+KOY_LAYOUT = [[('^', 'ˇ', '↻', '˙', '˞', '̣'),
+  ('1', '°', '¹', 'ª', '₁', '¬'),
+  ('2', '§', '²', 'º', '₂', '∨'),
+  ('3', 'ℓ', '³', '№', '₃', '∧'),
+  ('4', '»', '›', '', '♀', '⊥'),
+  ('5', '«', '‹', '·', '♂', '∡'),
+  ('6', '$', '¢', '£', '⚥', '∥'),
+  ('7', '€', '¥', '¤', 'ϰ', '→'),
+  ('8', '„', '‚', '⇥', '⟨', '∞'),
+  ('9', '“', '‘', ' /', '⟩', '∝'),
+  ('0', '”', '’', '*', '₀', '∅'),
+  ('-', '—', '-', '‑', '\xad'),
+  ('`', '¸', '°', '¨', '', '¯'),
+  '←'],
+ ['⇥',
+  ('k', 'K', '…', '⇞', 'κ', '×'),
+  ('.', '•', '_', '⌫', 'ϑ', '↦'),
+  ('o', 'O', '[', '⇡', 'ο', '∈'),
+  (',', '–', ']', 'Entf', 'ϱ', '⇒'),
+  ('y', 'Y', '^', '⇟', 'υ', '∇'),
+  ('v', 'V', '!', '¡', '', '√'),
+  ('g', 'G', '<', '7', 'γ', 'Γ'),
+  ('c', 'C', '>', '8', 'χ', 'ℂ'),
+  ('l', 'L', '=', '9', 'λ', 'Λ'),
+  ('ß', 'ẞ', '&', '+', 'ς', '∘'),
+  ('z', 'Z', '@', '.', 'ζ', 'ℤ'),
+  ('´', '~', 'ſ', '−', '', '˘'),
+  ()],
+ ['⇩',
+  ('h', 'H', '\\', '⇱', 'ψ', 'Ψ'),
+  ('a', 'A', '/', '⇠', 'α', '∀'),
+  ('e', 'E', '{', '⇣', 'ε', '∃'),
+  ('i', 'I', '}', '⇢', 'ι', '∫'),
+  ('u', 'U', '*', '⇲', '', '⊂'),
+  ('d', 'D', '?', '¿', 'δ', 'Δ'),
+  ('t', 'T', '(', '4', 'τ', '∂'),
+  ('r', 'R', ')', '5', 'ρ', 'ℝ'),
+  ('n', 'N', '-', '6', 'ν', 'ℕ'),
+  ('s', 'S', ':', ',', 'σ', 'Σ'),
+  ('f', 'F', '', '', 'φ', 'Φ'),
+  ('´', '~', '/', '˝', '', '˘'),
+  '\n'],
+ ['⇧',
+  '⇚',
+  ('x', 'X', '#', '\x1b', 'ξ', 'Ξ'),
+  ('q', 'Q', '$', '', 'ϕ', 'ℚ'),
+  ('ä', 'Ä', '|', '⎀', 'η', 'ℵ'),
+  ('ü', 'Ü', '~', '\n', '', '∪'),
+  ('ö', 'Ö', '`', '↶', 'ϵ', '∩'),
+  ('b', 'B', '+', ':', 'β', '⇐'),
+  ('p', 'P', '%', '1', 'π', 'Π'),
+  ('w', 'W', '"', '2', 'ω', 'Ω'),
+  ('m', 'M', "'", '3', 'μ', '⇔'),
+  ('j', 'J', ';', ';', 'θ', 'Θ'),
+  '⇗'],
+ ['♕', (), '♔', (' ', ' ', ' ', '0', '\xa0', '\u202f'), '⇙', (), (), '♛']]
+
 
 HAEIU_LAYOUT = [
     [('^', 'ˇ', '↻', '˙', '˞', '̣'), ('1', '°', '¹', 'ª', '₁', '¬'), ('2', '§', '²', 'º', '₂', '∨'), ('3', 'ℓ', '³', '№', '₃', '∧'),