Am 02.04.2011, 22:53 Uhr, schrieb Navid Zamani <navid.zam...@googlemail.com>:
Xmodmap ist im Prinzip veraltet. Es wurde schon mit X11R6.1 (1996) durch
die X Keyboard Extension (xkb) ersetzt, die sehr viel flexibler ist.
Ja, OK, aber da scheint es kein Werkzeug wie xmodmap zu geben, was die Änderung einzelner Tastenbelegungen erlaubt. Sieht alles seeehr „overengineered“ aus…
Habs mir grad noch genauer angeschaut. Grausig.
[…]

4) Du könntest die xkb-Dateien in /usr/share/X11/xkb/ ändern. Brauchst
dazu aber Administratorrechte, und für einfache Umbelegungen sollte man
auch nicht mit diesen Dateien rumspielen.

Genau. Dafür, denke ich mir jetzt, muss es doch sowas wie eine „$HOME/.xkb“ geben.

Hmm. Bei openSUSE war mir mal im Init-Skript /etc/X11/xinit/xinitrc.common aufgefallen, dass man wie die $HOME/.Xmodmap auch eine $HOME/.Xkbmap speichern kann, die dann automatisch bei Systemstart eingelesen wird. Aber da ergeben sich wahrscheinlich die gleichen Probleme wie bei Punkt 3): xkbcomp (das von setxkbmap aufgerufen wird) verursacht irgendwelche Fehler mit Abstürzen. Weiß nicht, ob das auch bei anderen Distributionen so ist (bei Ubuntu hab ich da nix entdeckt).

Ich schätze so wie das Script jetzt ist, reicht es dann erstmal. Es tut was es soll, und die paar Ausnahmen kann ich dann auch manuell machen, falls sie auftreten. (Bugs gibts jetzt eigentlich nur, wenn ein Zeichen auf der gleichen Taste doppelt belegt ist, oder die Taste vorher garnicht belegt war. Was ja bei NEO eher nicht vorkommt. :)

Jo, denke ich auch. Hab mir dein Skript mal kurz angeschaut, das sollte eigentlich gehen. Klar, für die besagten Fälle gibt es erstmal keine Lösung.

Ich wollte eigentlich auch mal was umfangreicheres dazu machen, ein Programm, dass (ähnlich wie MSKLC für Windows, nur eben komplexer) eine Tastaturbelegung bequem per grafischer Oberfläche erzeugen kann und dann alle möglichen Treiber daraus erzeugt. Ist aber nichts in Sicht, dass ich mal damit anfangen werde, denn ich hänge ja noch bei den blöden xkbcomp-Bugs rum.

Und meiner Meinung hätte eine Consulting-Firma xkb nicht besser zu einem Kandidaten für thedailywtf.com machen können. Ganz Virtudyne und Paula Brillant verneigen sich. ;))

Naja, schön an xkb ist, dass es so flexibel ist. Man kann eben Sachen machen, für die man unter Windows komplizierte Drittprogramme bemühen muss. Es hat nur eben einen Grund, dass unter Windows Tastaturbelegungen mit der Komplexität von Neo nicht von Haus aus machbar sind: Kaum einer nutzt sie, Neo ist überhaupt eine der ersten Belegungen mit mehr als vier Ebenen (spontan fällt mir da nur noch die Kanadisch-Multilinguale ein, mit 5 Ebenen). Unter Linux macht sich das dann so bemerkbar, dass diese erweiterten Funktionen von xkb (256 Ebenen, Overlays, Tastenaktionen unabhängig von Keysyms...) zwar auf dem Papier und im Protokoll existieren, aber voller Bugs und Fehler stecken, weil niemand das je testen musste. Die Treiberschreiber in der Liste hier können ein Lied davon singen. Ganz zu schweigen davon, dass z.B. Qt viele der Fähigkeiten von Xkb auch nicht unterstützt (oder nicht korrekt handhabt). Weswegen Neo-Leute Probleme mit KDE-Programmen haben, was Tastenkombinationen und die 4. Ebene angeht. Xkb ist eigentlich gar nicht soooo schlecht. Eine Xmodmap ist einfach zu unflexibel für viele Zwecke. Die unschönen Sachen kommen eigentlich alle entweder wegen Kompatibilitätsüberlegungen oder Bugs zu Stande.
Ein bisschen Overengineering ist vielleicht schon dabei, OK. ;-)

Schade auch, dass es kaum jemanden gibt, der sich mit xkb auskennt, und noch weniger, die bei X.org daran arbeiten (anscheinend nur einer). Schon seit Jahren steht xkb2 auf der Wunschliste, aber ob das jemals kommt, steht in den Sternen. Das sollte auch vieles vereinfachen und entrümpeln, und einige Beschränkungen (256 Keycodes, 4 Gruppen) beseitigen.

Soviel mal zur Ehrenrettung.

Geniess die Sonne!

Tu ich.

Peter

Antwort per Email an