Come disabilitare i pulsanti Avanti / Indietro sul mio mouse


36

Il mio mouse ha una sfortunata caratteristica. Sul lato sinistro, proprio dove il pollice è sempre così dolcemente quando lo sto usando, ci sono due pulsanti così sensibili che un semplice pennello li farà scattare.

Sto parlando ovviamente dei fastidiosi pulsanti avanti / indietro che, se premuti in un browser, possono rendere molto più difficile guardare quel video di YouTube di un'ora. C'è un modo per disabilitarli? Questo sarebbe gestito da X?


2
Sono quasi sicuro che puoi spegnerlo usando xinput, ma non conosco i dettagli ...
pbm,

Questa domanda e la risposta si applicano anche ai pulsanti avanti / indietro sulle tastiere, ad es. Sulla tastiera Thinkpad
Daniel S. Sterling

Risposte:


43

Avviare il programma xevin un terminale. Sposta il mouse all'interno della xevfinestra; vedrai molte cose scorrere. Premere ciascun pulsante a turno. Quindi tornare alla finestra del terminale e premere Ctrl+ C. xevmostra una descrizione di ciascun evento di input, in particolare ButtonPresse ButtonReleaseper i clic del mouse (ne vedrai anche alcuni MotionNotifyper i movimenti del mouse e altri eventi).

È probabile che i pulsanti avanti e indietro siano associati ai pulsanti del mouse, forse i pulsanti 8 e 9:

ButtonPress event, serial 29, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100159, (166,67), root:(1769,98),
    state 0x0, button 8, same_screen YES

In tal caso, rimappare questi pulsanti in un'azione diversa nel browser, se possibile. In alternativa, è possibile rimappare i pulsanti a numeri di pulsanti diversi a cui il browser non reagisce o disabilitare completamente i pulsanti a livello di sistema. Per fare ciò, inserisci queste righe in un file chiamato ~/.Xmodmap:

! Remap button 8 to 10 and disable button 9.
pointer = 1 2 3 4 5 6 7 10 0

Provalo con il comando xmodmap ~/.Xmodmap. La maggior parte degli ambienti desktop e dei gestori di finestre esegue questo comando automaticamente quando si accede; se il tuo non lo fa, assicurati che venga eseguito all'avvio di X.

È anche possibile che il mouse invii un evento da tastiera quando si premono questi pulsanti:

KeyPress event, serial 32, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100963, (957,357), root:(2560,388),
    state 0x0, keycode 166 (keysym 0x1008ff26, XF86Back), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

In tal caso, inserisci linee come queste in ~/.Xmodmap:

keycode 166 = NoSymbol
keycode 167 = NoSymbol

2
Grazie ad entrambi per la domanda e la risposta. Per inciso, per ridurre la demenza di xevuscita, appena tubo attraverso grep: xev | grep -A2 ButtonPress; questo lascerà tutti gli eventi di movimento del mouse, gli eventi di messa a fuoco, ecc. e mostrerà semplicemente gli ButtonPresseventi, che è tutto ciò di cui hai bisogno qui.
Lambart,

Grazie! Mi ha aiutato in pochi secondi! :-)
Brian Haak il

Funziona anche a Wayland!
Ray Foss,

2

Puoi usare xevper trovare a quale tasto è mappato il pulsante e usare il codice qui sotto (in $ HOME / .xsessionrc) per mapparlo su qualcosa che non stai usando.

xmodmap -e 'keycode THE_CODE_HERE = XF86Launch1'

In alternativa, dovresti essere in grado di farlo da una GUI che usi Gnome / KDE o qualsiasi altro desktop moderno.

Un'altra opzione sarebbe quella di hackerare xorg.conf per rimuovere le definizioni dei pulsanti.


1

solo un comando rapido per risolverlo, non molto diverso dalle altre risposte:

xmodmap -e "pointer = 1 2 3 4 5 6 7 0 0 0 0 0 0" #the fix

analisi

xmodmap -pp # check the changes
xterm -e xev # test the nullified buttons

# to restore in case you are going to play some game that uses them
xmodmap -e "pointer = 1 2 3 4 5 6 7 8 9 10 11 12 13"

puoi mettere la correzione cmd nelle app di avvio.

meglio sarebbe usare xdotool per verificare se la finestra attiva è uno dei tuoi browser e chiamare xmodmap su richiesta per disabilitarli / abilitarli, ma ciò richiederebbe alcuni script:>

Non ho visto alcun motivo per mantenere abilitati i pulsanti sopra 7, qualche motivo?


0

Può essere fatto con il file di configurazione di xorg

Ecco un esempio che disabilita lo scorrimento orizzontale (salva il nuovo file e riavvia)

nano /etc/X11/xorg.conf.d/40-libinput-mouse-left-right.conf

Section "InputClass"
        Identifier "Logitech catchall"
        MatchIsPointer  "on"
        Driver "libinput"
        Option "HorizontalScrolling" "false"
EndSection

Altri comandi utili

xinput list
xinput list-props 15

Ora per questa domanda il file di configurazione di xorg può essere usato per rimappare il pulsante qui è un esempio

Section "InputClass"
    # ...
    Option "ButtonMapping" "1 9 3 4 5 6 7 8 2"
    # ...
EndSection

0

Se si sta tentando i xmodmapcomandi (su X, non Weyland) e si stanno ottenendo l'errore BadValue (integer parameter out of range for operation)in X_SetPointerMapping, potrebbe essere necessario utilizzare xinputinvece. Esegui xinputsenza parametri per ottenere gli ID dispositivo (cercane uno per il puntatore), quindi esegui

xinput set-button-map [pointer-device-id] 1 2 3 4 5 0 0 0 0

Nel mio caso, il mio mouse era il dispositivo n. 4 e avevo bisogno di rendere i pulsanti 6 e 7 in 8 e 9 per andare avanti e indietro al lavoro, quindi ho usato

xinput set-button-map 4 1 2 3 4 5 8 9 8 9

(Ho mantenuto i pulsanti 8 e 9 anche mappati su 8 e 9 nel caso in cui ho cambiato mouse.)

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.