Rimappa il pulsante a sfioramento laterale sul mouse Microsoft Sculpt Comfort


12

Di recente ho acquistato un mouse Microsoft Sculpt Comfort. Usa il Bluetooth per connettersi al mio laptop e tutti i normali pulsanti del mouse funzionano perfettamente sia su Linux che su Windows 7. La cosa diversa di questo mouse, tuttavia, è che ha un tasto Windows/ speciale Supersul lato che avvia il menu / avvio quando viene premuto. Ha anche un sensore tattile che rileva quando il pulsante laterale viene premuto su o giù e fa vibrare il mouse per riconoscere che è stato attivato.

Ovviamente in Windows c'è un programma che mi permette di cambiare ciò che i colpi fanno e disattivare la vibrazione.

In Linux, xev rileva solo una normale sequenza di tasti quando si preme o si scorre il pulsante laterale. Xev non segnala la pressione di alcun pulsante del mouse.

Quindi la mia domanda è: posso cambiare quali tasti premuti vengono inviati sotto Linux?

Mi piacerebbe cambiare l'associazione dei tasti da taba down, backspacea up(cosa riporta xev) a ctrl+ alt+ left/ rightper passare da un'area di lavoro all'altra.

Grazie per qualsiasi aiuto!


Hai dato un'occhiata al howto per i topi su help.ubuntu.com/community/ManyButtonsMouseHowto ?
ubfan1,

1
Grazie per la punta ubfan1, xinput get-button-map mi dà 13 pulsanti. xev e xinput test riportano solo i pulsanti 1-7. Ho provato a rimappare i pulsanti 8-13 usando xinput set-button-map e xbindkeys dal link, ma nulla è cambiato. Premendo il tasto di segnalazione laterale premere il tasto 133 (super), scorrere verso l'alto il tasto di segnalazione premere 22 (backspace), scorrere verso il basso il tasto di segnalazione premere 23 (scheda).
user223544

Risposte:


5

Ne ho appena comprato uno da solo e ho scoperto che il seguente funziona perfettamente per me.

  1. Apri dconf-editor ( sudo apt-get install dconf-editorse non è già installato).
  2. Passa a org -> gnome -> desktop -> wm -> keybindings.
  3. Cambia il valore di switch-to-workspace-down in

    ['<Control><Alt>Down', '<Primary><Super>Tab', '<Control><Super>Tab']

    e il valore di switch-to-workspace-up fino a

    ['<Control><Alt>Up', '<Primary><Super>BackSpace', '<Control><Super>Backspace']


Questa soluzione funziona in modo più affidabile rispetto alla soluzione che ho trovato con xbindkeys. L'unico inconveniente rispetto a xbindkeys è che la soluzione xbindkeys sembra catturare solo gli eventi dei tasti del mouse, mentre questa soluzione funzionerà anche se si usano i tasti della tastiera. Indipendentemente da ciò, l'affidabilità di questa soluzione la rende la soluzione migliore.
user223544

2

Quindi, poiché Microsoft Sculpt Comfort Mouse non registra le pressioni dei pulsanti del mouse per i gesti super e swipe, ma registra invece le pressioni dei tasti della tastiera, ho usato i pacchetti 'xautomation' e 'xbindkeys' per ascoltare quelle pressioni dei tasti e inviare Ctrl+ Alt+ Right/ Leftper passare da un'area di lavoro all'altra. Non è una soluzione ideale, ma funziona come 8 su 10 volte.

#Move to left workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Left' 'keyup Control_L' 'keyup Alt_L' 'keyup Left'"
   m:0x4+mod4+m:0x0+c:23
   #Control_L+Super_L+Tab

#Move to right workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Right' 'keyup Control_L' 'keyup Alt_L' 'keyup Right'"
   m:0x4+mod4+m:0x0+c:22
   #Control_L+Super_L+Backspace

Ciò che fa questo script xbindkeys è che ascolta i tasti premuti che i mouse scorrono verso l'alto e verso il basso i gesti inviati al computer. Se rilevato, xautomation invia la sequenza di tasti di spostamento desktop standard, control+ alt+ left/ right.

Il gesto di scorrimento del mouse invia la sequenza di tasti left control+ left super+ backspace. Il gesto verso il basso sul mouse invia la sequenza di tasti left control+ left super+ tab. m: 0x4 + mod4 + m: 0x0 + c22 è l'attuale combinazione di codici chiave che viene rilevata da xbindkeys.

Lo rovinerò un po 'di più per vedere se posso migliorare l'efficienza, ma per ora questo fa il lavoro. Spero solo che tabe backspaceche le uscite del mouse non si rovinino con qualsiasi lavoro che sto facendo.


1
Puoi spiegare come funziona la soluzione? Il mouse sta inviando Control_L+Super_L+Tab(da dove provengono Control_L + Super_L)? O abbini i pulsanti del mouse con m:0x4+mod4+m:0x0+c:23(Sembravi dire che non ci siano eventi del mouse generati nella domanda)?
Volker Siegel,

Ho modificato la mia soluzione per spiegare da dove provengono Control_L + Super_L. Ho anche spiegato lo scopo di m: 0x0 + mod4 + m: 0x0 + c: 23.
user223544

0

Volevo mappare gli stessi pulsanti per navigare tra le schede di Firefox in entrambe le direzioni. Sto usando xbindkeys e xmacro. Funziona abbastanza bene!

.xbindkeysrc

#Thumb down
"echo 'KeyStrPress Control_L KeyStrPress Tab KeyStrRelease Control_L KeyStrRelease Tab'|xmacroplay :0"
   Control+Mod4+Tab

#Thumb up
"echo 'KeyStrPress Control_L KeyStrPress Shift_L KeyStrPress ISO_Left_Tab KeyStrRelease Control_L KeyStrRelease Shift_L KeyStrRelease ISO_Left_Tab' |xmacroplay :0"
   Control+Mod4+BackSpace
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.