È possibile rimappare i tasti Indietro / Avanti di una tastiera USB Thinkpad su Linux?


8

Sul mio laptop Thinkpad posso facilmente cambiare i tasti Indietro / Avanti in qualcos'altro (di solito li associo a PageDown / PageUp), poiché hanno il proprio codice (166 e 167):

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

Tuttavia, sulla tastiera USB del mio Thinkpad, i tasti Indietro / Avanti sembrano essere mappati su Alt + Sinistra e Alt + Destra, rispettivamente, quindi non posso usare xmodmap per rimapparli. C'è un altro modo in cui posso rimapparli? Ho già provato xautomation, ma non ha funzionato.

Questo è ciò che 'xev' mi mostra quando premo il tasto 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

1
Se le chiavi hanno un codice chiave, possono essere rimappate, giusto? È diverso dal tasto BLOC MAIUSC? Questa pagina lo rimappa bene sembra. Non l'ho provato Sto solo suggerendo. efod.se/writings/linuxbook/html/caps-lock-to-ctrl.html
Bibhas,

Il problema è esattamente che non ha un codice chiave e invece è cablato ad alt-sinistra / alt-destra
Guilherme Salgado

Risposte:


0
  1. Installa xdotool
  2. Creare uno script o un alias di shell per il comando keypress che si desidera eseguire ( xdotool key --clearmodifiers Page_Down)
  3. Associa quello script / alias alla combo inviata (Alt + Sinistra) nella configurazione Hotkey / Collegamento del tuo ambiente desktop.

Nota che in gnome-control-center non sembra possibile assegnare i pulsanti Indietro / Avanti della tastiera USB a una scorciatoia (puoi effettivamente assegnarli, ma il comando / azione che hai mappato su di essa non verrà mai chiamato / accade), quindi potrebbe essere necessario utilizzare qualcos'altro, ad esempio il plug-in Comandi di compiz.


1
Grazie per il suggerimento @sleighboy. Ci avevo provato con xautomation , ma non funzionava. Vedi la mia risposta, di seguito, sul perché
Guilherme Salgado,

1
In realtà, questa dovrebbe essere la risposta finale e spiegherò qui perché non ha funzionato. Il comando da eseguire dovrebbe essere xdotool key --clearmodifiers Page_Upe per qualche motivo assegnare il pulsante Indietro / Avanti come acceleratore di una scorciatoia su gnome-control-center non sembra funzionare, ma se usi il plug-in 'Comandi' di compiz funzionerà.
Guilherme Salgado,

0

Ho inserito questo nel mio .bashrc:

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

funziona alla grande, ma non sembra tagliarlo in virtualbox 6 per qualche motivo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.