Zwillingssterns Weltenwald
Published on Zwillingssterns Weltenwald (http://www.xn--drachentrnen-ocb.de)

Startseite > Tastaturlayout prüfen und evolutionär entwickeln

Tastaturlayout prüfen und evolutionär entwickeln

UPDATE: Zur Zeit nutze ich das Cry-Layout:

  • Layout-Bild mit Qualitätsvisualisierung [1]
  • xmodmap [2] (aktivieren mit setxkbmap lv ; xmodmap ~/crie.xmodmap)
  • xmodmap für Truly Ergonmic 105 [3]
  • xmodmap für Truly Ergonomic 109 [4].

Ich habe ein kleines Python Programm [5] geschrieben, um das Neo Tastaturlayout [6] zu prüfen und mit evolutionären Codes zu verbessern.

bitbucket.org/ArneBab/evolve-keyboard-layout/ [5]

Inzwischen hat es von verschiedenen Leuten Verbesserungen erfahren, daher ist das „Ich“ oben nur noch eingeschränkt richtig. Dank geht an die wundervolle Neo-Community [7]!

Es braucht Python 3 [8].

Seine Lizenz ist wie üblich GPL [9] (frei).

Das Ziel dabei ist, eine Belegung zu finden, die schnelleres und weniger belastendes Tippen ermöglicht und so hoffentlich hilft, Erkrankungen der Handgelenke durch viel Tippen zu vermeiden.

Ergebnisse der Optimierung schreibe ich dabei meist auf der Mailingliste der Neo-Gemeinschaft [10].

Einige weitere Informationen gibt es auf EvolvedLayouts [11] und Neo3 [12] im Neo-Wiki [13].

Anschauliche Ergebnisse

Um die Optimierung anschaulich zu machen, gibt der Optimierer Bilder der Buchstabenhäufigkeit und Bigrammübergänge aus (nach einem Design von Wolf).

Hier sind sie für einen Ausschnitt aus der Entwicklung der Tastaturbelegungen erstellt. Hellblaue Übergänge zwischen Buchstaben sind gut, dunkelblaue/lilane sind unschön und gelbe sing grausig.

Qwertz ist die alte, typische und offensichtlich schreckliche Tastaturbelegung (v.a. durch „de“ und „un“), die selbst ihr Erfinder wieder ändern wollte – Remington (der Hersteller der Tastaturen) verweigerte das aber [14]… sowas passiert, wenn man seine revolutionären Erfindungen verkauft…

Dvorak ist die verbreitetste optimierte, aber durch z.B. „ei“ nicht für Deutsch geeignet. Sie wurde noch von Hand optimiert.

Neo 2 ist die aktuelle Belegung der Neo-Gemeinschaft [7]. Ihre Hauptschwäche sind die Fingerwiederholungen (z.B. „la“).

Haeik ist das Testlayout, das ich seit Februar 2011 nutze, um zu testen, ob es Probleme gibt, die erst bei höheren Tippgeschwindigkeiten auftreten. Seit Anfang März 2011 bin ich wieder bei über 300 Zeichen pro Minute und habe ein paar Anpassungen vorgenommen.

Tnrs ist ein aktuelles Ergebnis des Optimierers [5] (aktuell=2011-03-13).

Die Dicke der Übergänge zeigt die Häufigkeit an. Die Richtung wird durch die Transparenz gezeigt: Von durchsichtig zu vollständig sichtbar. Einwärtsbewegungen machen dabei einen Bogen nach oben, auswärts einen nach unten.

Der Grauton der Tasten gibt die Buchstabenhäufigkeit an und der kleine Punkt zeigt, wie oft das Zeichen am Wortanfang steht. Hell ist selten, dunkel ist oft.

Alle werden erstellt via

./bigramm_statistik.py --svg --svg-output neo2.svg -l "xvlcw khgfqß´
uiaeo snrtdy
üöäpz bm,.j"

(die Belegung wird zwischen den Anführungszeichen eingefügt)

Parameter

Zur Zeit (2010-08-05) optimiert es auf

  • Gute Tastenpositionen (auf der Grundlinie ist z.B. besser als links unten).
  • Möglichst wenige Fingerwiederholungen (einen Finger mehrfach hintereinander nutzen).
  • Handwechsel bei Richtungswechsel (horizontal).
  • Wenige Zeilenwechsel auf der gleichen Hand.
  • Handwechsel, wenn eine Hand aus ihrer Grundposition gezogen wird.
  • Gleichmäßige Fingerbelastung (aber nur halbe Last auf dem Kleinen, weil er sonst frühzeitig aussteigen kann).
  • Minimierung bestimmter Fingerübergänge (z.B. Mittel- auf Ringfinger).

Funktionsweise

  1. Annahme: Es gibt eine Idealtastatur. Auf ihr braucht Tippen weder Zeit noch strengt es an. Für jede Abweichung davon werden der Tastatur Kosten berechnet.
  2. Es wird eine zufällige Belegung erstellt oder eine vorgegebene durch zufällige Vertauschungen geändert.
  3. Zwei zufällig gewählte Tasten werden vertauscht (Mutation). Dann werden die Kosten der Tastatur berechnet. Sind sie geringer, wird die Mutation behalten, ansonsten wird sie verworfen. Das wird etwa 4000 mal wiederholt (mit Abweichung: Stichwort „Simulated Annealing“).
  4. Optional werden am Ende nochmal alle möglichen Vertauschungen geprüft und jeweils diejenigen gemacht, die die Kosten am stärksten reduzieren. Das läuft so lange, bis es keine Vertauschungen mehr gibt, die die Kosten reduzieren würden.
  5. Mit den erstellten Tastaturbelegungen werden Texte generiert, mit denen Tipper testen können, wie sich das Tippen mit diesen Belegungen anfühlen würden. Die Erfahrungen aus den Tipptests werden genutzt, um die Parameter zu optimieren (Gewichtung und Suche nach weiteren relevanten Parametern).

Details dazu findest du in der Quelldatei [15] (sollte auch ohne Programmierkenntnisse recht lesbar sein), weitere Informationen zur Optimierung auf EvolvedLayouts [11] und Neo3 [12] im Neo-Wiki [13].

AnhangGröße
dvorak_klein.png [16]37.4 KB
haeik_klein.png [17]38.43 KB
neo2_klein.png [18]38.19 KB
qwertz_klein.png [19]40.05 KB
tnrs_klein.png [20]37.7 KB
Werke von Arne Babenhauserheide. Lizensiert, wo nichts anderes steht, unter der GPLv3 or later und weiteren freien Lizenzen.

Diese Seite nutzt Cookies. Und Bilder. Manchmal auch Text. Eins davon muss ich wohl erwähnen — sagen die meisten anderen, und ich habe grade keine Zeit, Rechtstexte dazu zu lesen…


Source URL: http://www.xn--drachentrnen-ocb.de/licht/freie-software/neo-tastaturlayout-pruefen-und-evolutionaer-entwickeln

Links:
[1] https://bytebucket.org/ArneBab/evolve-keyboard-layout/raw/8ae830ce6b69bb8b0c67b2d9f2096d7f7bd267dc/empirie/cry.svg
[2] https://bitbucket.org/ArneBab/evolve-keyboard-layout/src/8ae830ce6b69bb8b0c67b2d9f2096d7f7bd267dc/empirie/crie.xmodmap?at=default
[3] https://bitbucket.org/ArneBab/evolve-keyboard-layout/src/8ae830ce6b69bb8b0c67b2d9f2096d7f7bd267dc/empirie/crie-truly.xmodmap?at=default
[4] https://bitbucket.org/ArneBab/evolve-keyboard-layout/src/8ae830ce6b69bb8b0c67b2d9f2096d7f7bd267dc/empirie/crie-truly-109.xmodmap?at=default
[5] http://bitbucket.org/ArneBab/evolve-keyboard-layout/
[6] http://neo-layout.org/
[7] http://neo-layout.org
[8] http://python.org/download/
[9] http://www.xn--drachentrnen-ocb.de/lizenzen
[10] http://lists.neo-layout.org/pipermail/diskussion/
[11] http://wiki.neo-layout.org/wiki/EvolvedLayouts
[12] http://wiki.neo-layout.org/wiki/Neo3
[13] http://wiki.neo-layout.org/
[14] http://wiki.neo-layout.org/wiki/Geschichte
[15] http://bitbucket.org/ArneBab/evolve-keyboard-layout/src/tip/check_neo.py
[16] http://www.xn--drachentrnen-ocb.de/files/dvorak_klein.png
[17] http://www.xn--drachentrnen-ocb.de/files/haeik_klein.png
[18] http://www.xn--drachentrnen-ocb.de/files/neo2_klein.png
[19] http://www.xn--drachentrnen-ocb.de/files/qwertz_klein.png
[20] http://www.xn--drachentrnen-ocb.de/files/tnrs_klein.png