Ja, mit XKB ist das möglich. Im Gegensatz zu xmodmap kann XKB Ihre Schlüssel für einzelne Geräte neu zuordnen.
Hinweis: Stellen Sie sicher, dass Sie xkbcomp & gt; 1.2.0
Listen Sie zuerst Ihre Geräte mit:
xinput list
Sie werden so etwas bekommen:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Wacom Bamboo Pen Pen stylus id=11 [slave pointer (2)]
⎜ ↳ Wacom Bamboo Pen Finger touch id=12 [slave pointer (2)]
⎜ ↳ Logitech USB-PS/2 Optical Mouse id=13 [slave pointer (2)]
⎜ ↳ Wacom Bamboo Pen Pen eraser id=14 [slave pointer (2)]
⎜ ↳ Wacom Bamboo Pen Finger pad id=15 [slave pointer (2)]
⎜ ↳ GASIA USB KB V11 id=17 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ G19 Gaming Keyboard id=8 [slave keyboard (3)]
↳ G19 Gaming Keyboard id=9 [slave keyboard (3)]
↳ Logitech G19 Gaming Keyboard id=10 [slave keyboard (3)]
↳ GASIA USB KB V11 id=16 [slave keyboard (3)]
Identifizieren Sie die Zeichenfolge Ihres Geräts und bearbeiten Sie das folgende Shell-Skript. Ändern Sie dabei die Sed-Linie durch eine, die dem Namen Ihres Geräts entspricht. Ändern Sie dann die Tasten, die Sie neu zuordnen müssen.
Beispiel: Laden xev
und drücken Sie eine Taste, die Sie neu zuordnen möchten. Angenommen, Sie finden heraus, dass es sich um den Schlüsselcode 84 handelt https://gist.github.com/zoqaeski/3880640 . Der Schlüsselname ist <KP5>
. Suchen Sie dann den Schlüssel, durch den er ersetzt werden soll (im selben Link, weiter unten ) und kopieren Sie, was in den Klammern steht. Wiederholen Sie den Vorgang für alle gewünschten Schlüssel.
remote_id=$(
xinput list |
sed -n 's/.*GASIA.*id=\([0-9]*\).*keyboard.*/\1/p'
)
[ "$remote_id" ] || exit
# remap the following keys, only for my custom vintage atari joystick connected
# through an old USB keyboard:
#
# keypad 5 -> keypad 6
# . -> keypad 2
# [ -> keypad 8
# left shift -> left control
mkdir -p /tmp/xkb/symbols
cat >/tmp/xkb/symbols/custom <<\EOF
xkb_symbols "remote" {
key <KP5> { [ KP_Right, KP_6, U2192, U21D2 ] };
key <I129> { [ KP_Down, KP_2, U2193, U21D3 ] };
key <AD12> { [ KP_Up, KP_8, U2191, U21D1 ] };
key <LFSH> { [ Control_L ] };
};
EOF
setxkbmap -device $remote_id -print | sed 's/\(xkb_symbols.*\)"/\1+custom(remote)"/' | xkbcomp -I/tmp/xkb -i $remote_id -synch - $DISPLAY 2>/dev/null
Dann geben Sie es als Quelle ein (Sie können es zu Ihrer .xinitrc-Datei hinzufügen). Alles erledigt! Das Drücken der Tasten sollte nun die gewünschte Ausgabe nur für das von Ihnen angegebene Gerät erzeugen.
Bearbeiten : Vor kurzem habe ich festgestellt, dass die neue Konfiguration aus irgendeinem Grund nicht sofort angewendet wird. Sie müssen zuerst eine Taste auf Ihrem drücken andere Tastatur, und testen Sie dann die konfigurierten Tasten auf Ihrer geänderten Tastatur. Ich weiß nicht, warum das passiert, vielleicht eine Art Cache.