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