| 1 | = Neo-Projekt: Maschinenlesbare Referenz (neo_yaml) = |
| 2 | |
| 3 | == Mitwirkende == |
| 4 | Martin Roppelt (m.p.roppelt ἢτ web in Deutschland) |
| 5 | |
| 6 | == Ressourcen == |
| 7 | * ![?? https://svn.neo-layout.org/grafik/xml-vorschlag/@200] |
| 8 | * [http://www.eigenheimstrasse.de/~ben/layoutgen/layoutgen/] |
| 9 | * ![?? svn://svn.tuxfamily.org/svnroot/dvorak/svn/pilotes/trunk/configGenerator/] |
| 10 | * [http://pyyaml.org/] |
| 11 | |
| 12 | == E-Mails == |
| 13 | * ` 07/07` [neo_layout] Autohotkey und ein paar Ideen |
| 14 | * ` 07/07` [neo_layout] neo.xml |
| 15 | * `11-12/08` [neo] Referenz als XML für automatische Layout-Generierung |
| 16 | * ` 01/09` Maschinenlesbare Referenz |
| 17 | |
| 18 | == Funktionsweise == |
| 19 | Menschenlesbare Referenz, Unicode-Hex-Ansicht ⇔ Maschinenlesbare Referenz ⇔ Treiber, Grafiken |
| 20 | |
| 21 | Um einen Treiber usw. zu erzeugen, wird ein View benötigt, der die zur |
| 22 | Darstellung zusätzlich benötigten Daten enthält. Dieser kann auch aus den |
| 23 | bereits bestehenden Treibern erstellt werden. Wenn man also an der Neo-Belegung |
| 24 | etwas ändert, kann man so alle Treiber synchronisieren. So lassen sich auch |
| 25 | rasch aus Belegungen Neo-3-Treiber und Forks erstellen. |
| 26 | |
| 27 | === Zieldateien === |
| 28 | * XkbMap |
| 29 | * XModMap ⇒ Konsolen-Map, Tastenaufkleber |
| 30 | * KbdNeo |
| 31 | * AHK, Bildschirmtastatur/SVGs |
| 32 | * Mac-Treiber |
| 33 | * Aufsteller, Tabellen |
| 34 | * KTouch-Lektion |
| 35 | |
| 36 | === Aufbau der Referenzdateien === |
| 37 | |
| 38 | ==== Model-Datei ==== |
| 39 | Eine Modeldatei enthält je eine Liste mit den Tastaturreihen für das |
| 40 | Haupttastenfeld und den Ziffernblock. Jede dieser dieser Listeneinträge enthält |
| 41 | wiederum eine Liste der Zeichen der Ebenen für jede Taste in dieser Reihe. Ist |
| 42 | die Taste eine Sondertaste (Modifier, Akzenttasten, Leertaste, Tabulator oder |
| 43 | Return) dann ist diese Liste leer. |
| 44 | |
| 45 | !!(index, hex) |
| 46 | |
| 47 | ==== View-Datei ==== |
| 48 | Die Viewdatei enthält (momentan) 3 Listen: |
| 49 | * In der ersten Liste sind die Beschriftungen der Sondertasten. Sie ist |
| 50 | entsprechend der Modeldatei aufgebaut. |
| 51 | * In der zweiten die Steuerung (muss noch ausgearbeitet werden). |
| 52 | * In der dritten sind die erläuternden Texte, die zwischen den Tastenfeldern |
| 53 | stehen. |
| 54 | |
| 55 | == Projektstatus == |
| 56 | Zur Zeit entwickele ich einen Parser für die Referenz (parse_neo.py). |
| 57 | |
| 58 | Danach möchte ich ein Skript für die Erstellung der neo20.txt aus der |
| 59 | maschinenlesbaren Referenz schreiben (make_neo.py). |
| 60 | |
| 61 | Dann soll ein Skript zur Umwandlung des Models in xkbmap (make_xkb.py), xmodmap |
| 62 | (make_mod.py), ahk (make_ahk.py) und kbdneo (make_kbd.py) folgen, unter |
| 63 | Berücksichtigung der verwendeten Tastatur (Qwertz, deutsch-schweizer Tastatur, |
| 64 | Qwerty, Plum, Kbdneo) mittels .layout-Dateien. |
| 65 | |
| 66 | Danach nehme ich die Erzeugung der svgs und ods’ und zudem einen Layout-Editor in Angriff. |
| 67 | |
| 68 | == Ausblick == |
| 69 | Was dann auch nicht schaden kann ist ein plattform-übergreifendes Installationsskript. |
| 70 | |
| 71 | Kann auch gut mit einem Layout-Erzeugungs-Programm zusammenarbeiten, das Statistiken auswertet |
| 72 | und eine unterschiedliche Gewichtung von Paradigmen und Tastenplätzen vornimmt. |
| 73 | |
| 74 | == Abriss der Projektdateien == |
| 75 | * neo_import.py: Interpretation der yaml- und .layout-Dateien. |
| 76 | * {make, parse}_{neo, ahk, kbd, mac, mod, xkb, grub, svg, ods}.py: Erzeugung und Zerlegung von Treibern und Grafiken. |
| 77 | * edit_neo.py: z. B. nur 1. und 2. Ebene verschieben. |
| 78 | |
| 79 | -------------- |
| 80 | |
| 81 | [wiki:WikiStart Zur Hauptseite] |