Come associare i pulsanti del mouse ai tasti?


19

Ho un mouse laser Logitech MX400 che ha 5 pulsanti + 4 per lo scorrimento verticale / orizzontale. Vorrei che fosse impostato, quindi invece di scorrere in orizzontale premendo a destra sulla rotella di scorrimento si invierà Ctrl+ Tabe sinistra invierà Ctrl+ Shift+ Tab, il che mi permetterà di scorrere le schede nei browser.

Inoltre, sarebbe bello se potessi rimappare il pulsante centrale su uno di quelli laterali perché è davvero difficile premere.

Un altro vantaggio sarebbe se potessi scrivere uno script che mi permetta di definire quali pulsanti fanno ciò che dipende da quale finestra è attualmente attiva.

Ho provato a usare xmodmapma ho potuto vedere solo come riorganizzare i pulsanti, non farli inviare segnali chiave.

Grazie in anticipo.


Mappa dei pulsanti (usando xev):

Left        1
Middle      2
Right       3
ScrollUp    4
ScrollDown  5
ScrollLeft  6
ScrollRight 7
Backward    8
Forward     9

Risposte:


18

I xbindkeys e XTE può aiutare.

Ad esempio il mio file .xbindkeysrc è simile al seguente:

# close the window under the mouse cursor
"xte 'mouseclick 1' && xte 'keydown Alt_L' 'key F4' 'keyup Alt_L'"
  b:8+Release

# double click
"xte 'mouseclick 1' 'mouseclick 1'"
  b:9

Questo è fantastico ed estensibile, molte grazie
Callum Rogers,

1
Per ottenere xte su Ubuntu 16.x, dovrai installare xautomation da apt .
1111161171159459134,

Non funziona come piace a me, perché non funziona allo stesso modo se si tiene premuto il pulsante. Il mio vecchio mouse aveva un pulsante che consente alla rotellina di scorrere liberamente, il che è fantastico se voglio solo avviarlo muovendolo molto velocemente e scorrere molto. Ma il mio nuovo non lo ha, quindi ho legato due pulsanti sul lato (penso che siano progettati come pulsanti indietro / avanti per la navigazione Web) ai tasti PgUp / PgDn. Ma devo premerli ripetutamente se voglio continuare a scorrere; Non posso semplicemente tenerli premuti. Come faccio a tenere premuto il tasto finché si tiene premuto il pulsante?
flarn2006,

5

Grazie a tutti per la soluzione. Ecco una guida più infallibile / combinata (fatta su Xubuntu 18.04).

  1. Apri un terminale (come xterm / terminal / terminator), diventa root ( sudo su -) o usa sudo davanti al comando:

    apt install xbindkeys xautomation
  2. Controlla la mappatura dei pulsanti con xev, per questo non hai bisogno del permesso di root, quindi esci dalla sessione di root (con exit) o apri un altro terminale come utente.

    xev | grep button
  3. Apparirà una piccola finestra. Devi spostare il mouse in quella finestra e premere il pulsante che vuoi rimappare. Un esempio di output nel terminale sarà:

    state 0x0, button 8, same_screen YES

    Questo è il secondo pulsante laterale del mouse che voglio usare come PAGE_DOWN.

    state 0x0, button 9, same_screen YES

    Questo è il primo pulsante laterale (sì, l'ordine è invertito) che voglio usare come PAGE_UP.

  4. Quando hai tutti i pulsanti che vuoi rimappare puoi chiudere la piccola finestra xev. Apri il tuo editor preferito (ad esempio gedit / vi / nano) e modifica il file di configurazione.

    vi .xbindkeysrc
  5. Se hai già del contenuto nel file, controlla se esiste già un'associazione simile (improbabile, non per impostazione predefinita) e aggiungi alla fine.

    #Pagedown press
    "xte 'keydown Next'"
    b:8
    
    #Pagedown release
    "xte 'keyup Next'"
    b:8 + Release
    
    #Pagedup press
    "xte 'keydown Prior'"
    b:9
    
    #Pageup release
    "xte 'keyup Prior'"
    b:9 + Release

    Nota: sono necessarie due voci, una per la pressione del pulsante e una per il rilascio.

  6. I pulsanti 8 + 9 verranno associati ai tasti "Avanti" (che è PAGE_DOWN) e "Precedente" (PAGE_UP). Se vuoi mappare chiavi diverse puoi trovare il simbolo delle chiavi con xev.

    xev | grep keysym
  7. Come prima, avviarlo in un terminale, spostare il mouse sulla piccola finestra e premere il tasto desiderato.

    state 0x0, keycode 117 (keysym 0xff56, Next), same_screen YES,
  8. Salva e uccidi xbindings.

    killall xbindkeys ; xbindkeys

Ora puoi utilizzare i pulsanti laterali aggiuntivi sul mouse. L'impostazione verrà caricata automaticamente al successivo riavvio / accesso. È necessario il killall [...]comando dall'alto solo se si modificano le impostazioni.

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.