Ist es möglich, die Vor- / Zurück-Tasten einer Thinkpad USB-Tastatur unter Linux neu zuzuordnen?


8

Auf meinem Thinkpad-Laptop kann ich die Zurück / Vorwärts-Tasten leicht in etwas anderes ändern (ich ordne sie normalerweise PageDown / PageUp zu), da sie einen eigenen Schlüsselcode haben (166 und 167):

xmodmap -e 'keycode 166=Prior'
xmodmap -e 'keycode 167=Next'

Auf meiner Thinkpad USB-Tastatur scheinen die Zurück / Vorwärts-Tasten jedoch fest auf Alt + Links bzw. Alt + Rechts abgebildet zu sein, sodass ich xmodmap nicht verwenden kann, um sie neu zuzuordnen. Gibt es eine andere Möglichkeit, sie neu zuzuordnen? Ich habe bereits xautomation ausprobiert, aber das hat nicht funktioniert.

Das zeigt mir 'xev', wenn ich die Vorwärts-Taste drücke:

KeyPress event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023191, (16,-20), root:(641,33),
    state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023191, (16,-20), root:(641,33),
    state 0x8, keycode 114 (keysym 0xff53, Right), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023271, (16,-20), root:(641,33),
    state 0x8, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x4e00001,
    root 0xb4, subw 0x0, time 65023271, (16,-20), root:(641,33),
    state 0x0, keycode 114 (keysym 0xff53, Right), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

1
Wenn die Schlüssel einen Schlüsselcode haben, können sie richtig zugeordnet werden, oder? Ist es anders als der Feststelltaste? Diese Seite ordnet es anscheinend gut zu. Ich habe es nicht versucht. Ich schlage nur vor. efod.se/writings/linuxbook/html/caps-lock-to-ctrl.html
Bibhas

Das Problem ist genau, dass es keinen Schlüsselcode hat und stattdessen fest mit Alt-Links / Alt-Rechts verbunden ist
Guilherme Salgado

Antworten:


0
  1. Installieren Sie xdotool
  2. Erstellen Sie ein Skript oder einen Shell-Alias ​​für den Befehl keypress, den Sie ausführen möchten ( xdotool key --clearmodifiers Page_Down)
  3. Binden Sie dieses Skript / diesen Alias ​​an die gesendete Kombination (Alt + Links) in der Hotkey / Shortcut-Konfiguration Ihrer Desktop-Umgebung.

Beachten Sie, dass es in gnome-control-center anscheinend nicht möglich ist, die Tasten Zurück / Vorwärts der USB-Tastatur einer Verknüpfung zuzuweisen (Sie können sie tatsächlich zuweisen, aber der Befehl / die Aktion, die Sie ihr zugeordnet haben, wird niemals aufgerufen / pass), daher müssen Sie möglicherweise etwas anderes verwenden, z. B. das Befehls-Plugin von compiz.


1
Danke für den Vorschlag @sleighboy. Ich hatte das mit xautomation versucht , aber es hat nicht funktioniert. Siehe meine eigene Antwort unten, warum
Guilherme Salgado

1
Eigentlich sollte dies die endgültige Antwort sein und ich werde hier nur erklären, warum es nicht funktioniert hat. Der auszuführende Befehl sollte sein xdotool key --clearmodifiers Page_Upund aus irgendeinem Grund scheint es nicht zu funktionieren, die Schaltfläche Zurück / Vorwärts als Beschleuniger einer Verknüpfung im Gnome-Control-Center zuzuweisen, aber wenn Sie das Compiz-Plugin "Befehle" verwenden, funktioniert es.
Guilherme Salgado

0

Ich habe dies in meine .bashrc eingefügt:

# this maps the previous and next page buttons to pgup and pgdown 
xmodmap -e "keycode 167 = Next" 
xmodmap -e "keycode 166 = Prior"

funktioniert gut, scheint es aber aus irgendeinem Grund nicht in Virtualbox 6 zu schneiden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.