Hallo,

letztens habe ich im Wiki gelesen, dass der xkb-Treiber
( http://neo-layout.org/xkb.tgz ) im Gegensatz zum xmodmap-Treiber nur
mit root-Rechten anzuwenden sei.
Allerdings stimmt das nicht ganz.

Für eine Installation und eine Aktivierung bis zum Ende der aktuellen
XSession sind mit dem xkb-Treiber, der sich momentan (soweit ich es
nachvollziehen kann) näher an die Referenz hält als der
xmodmap-Treiber, keine Root-Rechte erforderlich.
Wie das möglich ist und welche Vorteile es gibt, will ich im Folgenden
kurz erläutern.

Anstatt sich mit den Systemdateien zu beschäftigen, die sich
üblicherweise in /usr/share/X11/xkb/ befinden, und sich somit eventuell
sogar sein System zu beschädigen, arbeitet man an einem sicheren Ort,
z.B. in seinem home-Verzeichnis.
Folgende Befehle werden ausgeführt:

wget http://neo-layout.org/xkb.tgz
tar -xzf xkb.tgz
setxkbmap -Ixkb/ de neo -print | xkbcomp - -Ixkb/ -w0 :0

Die ersten beiden Befehle sollte jeder aus dem Wiki kennen. Der dritte
Befehl generiert erst aus den rules, die sich im Verzeichnis "xkb/"
befinden die einzelnen xkb-Parameter und übergibt diese an xkbcomp.
xkbcomp liest nun erst die xkb-Dateien aus dem Ordner "xkb/"; wird dort
eine Datei nicht gefunden, greift er auf die Systemdateien zurück.
Anschließend wird die kompilierte xkbmap auf das X-Display ":0"
angewendet. Root-Rechte sind nicht erforderlich.

Alternativ gibt es auch folgendes Verfahren:

mkdir xkb
cp -R /usr/share/X11/xkb/* xkb/
wget http://neo-layout.org/xkb.tgz
tar -xzf xkb.tgz
setxkbmap -I -Ixkb/ de neo -print | xkbcomp - -I -Ixkb/ -w0 :0

So hat man alle xkb-Dateien im Verzeichnis xkb. Das bietet sich
beispielsweise an, wenn man testweise Änderungen machen möchte. Die
Änderungen werden mit dem letzten Befehl auf die aktuelle
Tastaturbelegung angewandt und sollte es Probleme geben, lässt sich
immer mit

setxkbmap de neo

auf die Systeminterne (hoffentlich funktionierende) Belegung
umschalten. Im Notfall lässt sich auch einfach der X-Server neustarten.


Meiner Ansicht nach steht somit die xkbmap der xmodmap in kaum einem
Punkt mehr nach.
Ich würde auch gerne andere Meinungen hören.


Gruß, Stephan


PS: Folgender Befehl hat bei mir nicht funktioniert, obwohl er
eigentlich die gleiche Wirkung haben sollte:

setxkbmap -I -Ixkb/ de neo

Attachment: signature.asc
Description: PGP signature

Antwort per Email an