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', 'ℓ', '³', '№', '₃', '∧'),