Am Montag, den 05.04.2010, 17:36 +0200 schrieb Knittl: > 2010/4/5 Frank Stähr <!^*?|[email protected]>: > > […] wenn ich dich > > richtig verstanden habe, solltest du wohl meine Mails noch einmal lesen. > > Wohl auch die vom Februar.
> weder du, ich oder > sonstjemand, der neo tippt will einem anderen neoling was böses – also > lieber frank, lies auch bitte meine mails ordentlich ;) Du hast da was aus dem Zusammenhang gerissen, nämlich > vielleicht hast du > dich ja bei deinem »Eine Datei z. B. svg enthlt die Keycodes« auch > nur vertippt, auf das wollte ich auch hinweisen. und außerdem hast du meine Mailaddy hier im Klartext geschickt – ich bin also einfach davon ausgegangen, dass du von Grund auf böse bist ;-) Nein, ernsthaft, meiner Adresse macht das nichts mehr aus und meine Implementierung erkläre ich noch einmal möglichst unmissverständlich und diesmal vollständig: Meine Lösung bestand im Wesentlichen aus *drei* Dateien, nämlich layout, systemcodes und dem awk-Skript. Die Datei layout sieht etwa so aus: lnxkcd10 1 ° ¹ ª ₁ ¬ lnxkcd11 2 § ² º ₂ ∨ lnxkcd12 3 ℓ ³ № ₃ ∧ lnxkcd13 4 » › ⇞ ♀ ⊥ usw. Das erste in jeder Zeile ist das, was ich Keycode nenne. Es bezeichnet eine Taste auf der Tastatur und ist unabhängig vom Layout. Dahinter kommen die sechs Zeichen der sechs Ebenen, die zu der jeweiligen Taste gehören (hier also ein Teil der Zahlenreihe). systemcodes: utf8 neo_de.xmodmap 1 1 ° degree ¹ onesuperior ª ordfeminine ₁ onesubscript ¬ notsign 2 2 § section ² twosuperior º masculine Die erste Zeile enthält die „Kategorien“, zu denen die in den Spalten stehenden Wörter bzw. Zeichen gehören, also UTF-8, neo_de.xmodmap, ahk, xkb usw. (Spalten und Zeilen auch hier nur auszugsweise). Die dritte Datei ist das awk-Skript, damit erhält man: Eine Datei – **z. B.** irgendeine svg-Datei (ich hatte als Beispiel die neo_de.xmodmap) – enthält die /Keycodes/, also nicht das Layout. awk läuft da durch und ersetzt diese automatisch mit den tatsächlichen Zeichen. Damit hat man also /ein/ Programm für /alle/ layoutabhängigen Dateien, ob nun neo_de.xmodmap, ahk oder eben auch svg. > alles was ich gesagt hab, ist, dass svg nicht die beste basis > darstellt – das hast du in deinem mail so geschrieben. Ja, als Zitat für sich alleine war das tatsächlich nicht so klar. Aber nun wissen wir, dass das Layout also nicht in der svg, sondern in der Datei layout gespeichert ist. > und den > scancode (…, …) vorschlag hab ich gelesen, deshalb auch meine > anmerkung, dass gewisse treiber informationen brauchen, die so eben > nicht darstellbar sind und jeder treiber die zu erzeugenden zeichen > und deren zugehörigen in einem anderen format benötigt. Genau, und dafür ist die Datei systemcodes. Dies alles ist recht simpel; das Problem, das bleibt, ist die Bearbeitung aller layoutabhängigen Dateien, und das sind zur Zeit praktisch alle. Man muss also überall in diesen Dateien ° (bzw. degree) durch lnxkcd10_2 ersetzen usw. (hier: Linux Keycode № 10, Ebene 2). Davon abgesehen finde ich Martins Vorschlag gut, aus so einer Datei layout noch eine besser menschenlesbare Datei zu erzeugen. In dieser müssen ja auch die Positionen und das Verhalten der Modifier beschrieben werden. (Eine besser technisch lesbare Referenz ist mit dieser Implementierung erstmal nicht unbedingt nötig.) tschau Frank
