Czy możliwe jest ponowne mapowanie klawiszy Wstecz / Dalej klawiatury USB Thinkpad w systemie Linux?

9

Na moim laptopie Thinkpad mogę łatwo zmienić klawisze Wstecz / Dalej na coś innego (zwykle mapuję je na PageDown / PageUp), ponieważ mają one własny kod (166 i 167):

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

Jednak na klawiaturze Thinkpad USB klawisze Wstecz / Dalej wydają się być przypisane do klawiszy odpowiednio: Alt + Lewo i Alt + Prawo, więc nie mogę użyć xmodmap do ich odwzorowania. Czy jest jakiś inny sposób, aby zmienić ich mapę? Próbowałem już xautomation, ale to nie działało.

Oto, co pokazuje „xev” po naciśnięciu klawisza Forward:

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
Guilherme Salgado
źródło
1
Jeśli klucze mają kod dostępu, można je ponownie przypisać, prawda? Czy to coś innego niż klawisz Caps Lock? Ta strona dobrze ją odwzorowuje. Nie próbowałem tego. Po prostu sugeruję. efod.se/writings/linuxbook/html/caps-lock-to-ctrl.html
Bibhas
Problem polega na tym, że nie ma kodu dostępu, a zamiast tego jest podłączony do Alt-Left / Alt-
Right

Odpowiedzi:

0
  1. Zainstaluj xdotool
  2. Utwórz skrypt lub alias powłoki dla polecenia keypress, które chcesz uruchomić ( xdotool key --clearmodifiers Page_Down)
  3. Powiąż ten skrypt / alias z wysłaną kombinacją (Alt + Lewy) w konfiguracji skrótu / skrótu w środowisku pulpitu.

Zauważ, że w centrum sterowania gnome nie wydaje się możliwe przypisanie przycisków Wstecz / Dalej klawiatury USB do skrótu (możesz je przypisać, ale przypisane do niego polecenie / akcja nigdy nie zostanie wywołane / happie), więc może być konieczne użycie czegoś innego, na przykład wtyczki compiz 'Commands.

SleighBoy
źródło
1
Dzięki za sugestię @ sleighboy. Próbowałem tego z xautomation , ale to nie działało. Zobacz moją własną odpowiedź poniżej, dlaczego
Guilherme Salgado
1
Właściwie to powinna być ostateczna odpowiedź i wyjaśnię tutaj, dlaczego to nie zadziałało. Polecenie do uruchomienia powinno xdotool key --clearmodifiers Page_Upz jakiegoś powodu przypisać przycisk Wstecz / Dalej jako akcelerator skrótu w gnome-control-centre nie wydaje się działać, ale jeśli użyjesz wtyczki compiz 'Commands', to zadziała.
Guilherme Salgado,
1

Umieszczam to w moim .bashrc:

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

działa świetnie, ale z jakiegoś powodu nie wydaje się go wycinać w virtualbox 6.

Stu
źródło