Entiendo tu frustración, pero este problema se puede resolver de manera muy simple con la ayuda de la xinput
herramienta.
Primero conecte su mouse USB, luego ejecute el siguiente comando:
xinput list
para ver el id
de tu mouse. La salida del comando anterior puede ser similar a:
xinput | gato
⎡ Id. Del puntero del núcleo virtual = 2 [puntero maestro (3)]
⎜ ↳ ID de puntero XTEST de núcleo virtual = 4 [puntero esclavo (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad id = 14 [puntero esclavo (2)]
⎜ ↳ Identificación del mouse USB = 11 [puntero esclavo (2)]
⎣ Id. De teclado del núcleo virtual = 3 [teclado maestro (2)]
...
En el ejemplo anterior, el mouse USB tiene id=11
. Usaremos esto id
en el siguiente comando que intercambiará los botones para dejarlos a la izquierda solo para el mouse USB (y no para el tauchpad):
xinput set-button-map 11 3 2 1
En general:
xinput set-button-map id 3 2 1
Para revertir el cambio, use:
xinput set-button-map id 1 2 3
Para hacer el cambio de forma permanente, agregue el siguiente comando en aplicaciones de inicio (buscar en la rociada para aplicaciones de inicio ):
sh -c "xinput set-button-map id 3 2 1"
Actualizar:
Dado que la identificación puede cambiar después del reinicio pero el nombre del mouse USB no, también puede buscar el nombre del mouse y aplicarlo. Para omitir los detalles reg. eligiendo el nombre de la solución final se ve así:
para id en `/ usr / bin / xinput list | / bin / grep ' USB Mouse ' | / bin / grep -o [0-9] [0-9] `; do xinput set-button-map $ id 3 2 1; hecho;
empaquételo en las aplicaciones de inicio mencionadas anteriormente que finalmente obtendrá:
sh -c "para id en` / usr / bin / xinput list | / bin / grep ' USB Mouse ' | / bin / grep -o [0-9] [0-9] `; do xinput set-button-map $ id 3 2 1; hecho; "
sh -c "for id in '/usr/bin/xinput list | /bin/grep 'Razer' | /bin/grep -o [0-9][0-9]'; do xinput set-button-map $id 3 2 1; done;"
y esto funciona (tal vez uno tiene que preocuparse por los guiones adecuados). Gracias por la pista.Hay una forma aún más simple que en la respuesta de Radu Rădeanu .
xinput
acepta el nombre del dispositivo de entrada como alternativa a su ID numérico. Dado que su mouse USB probablemente sea tratado genéricamente, su nombre es muy probableUSB Mouse
. Por lo tanto, es probable que ni siquiera necesite correrxinput list
.Por lo tanto
xinput set-button-map
, su , con este nombre en lugar de la ID numérica, se convierte en:Esto toma el lugar y debería lograr lo mismo, convirtiéndolo en un mouse zurdo, al igual que cuando se usa la forma de identificación numérica . (Y reemplazar con todavía funcionará para cambiarlo a un mouse diestro).
xinput set-button-map id 3 2 1
3 2 1
3 2 1
1 2 3
Esto tiene la ventaja de que, siempre que funcione inicialmente, continuará funcionando en todos los reinicios, sin tener que obtener el número de identificación del dispositivo mediante comandos largos y complejos.
fuente
xinput list
muestra 2 entradas con el mismo nombre ("2.4G Wireless Keyboard & Mouse") excepto que uno dice "[puntero esclavo (2)]" y el otro dice "[teclado esclavo (3 )] ". Entonces con su solución tengo este error "Hay varios dispositivos llamados '2.4G Wireless Keyboard & Mouse'". Por el momento, estoy usando la solución de Radu agregandogrep 'slave pointer'
. Me pregunto si xinput permite especificar de alguna manera que nos estamos refiriendo a un puntero sin hacer todo esto.Descubrí que el comando de inicio en la otra respuesta solo funciona si la identificación es un número de dos dígitos. Aquí están mis modificaciones que deberían funcionar para números de uno y dos dígitos:
En aplicaciones de inicio
fuente
Aquí hay una solución más detallada que resuelve dos problemas:
xinput list
muestra 2 entradas con el mismo nombre ("2.4G Wireless Keyboard & Mouse") excepto que uno dice "[puntero esclavo (2)]" y el otro dice "[teclado esclavo (3 )] ". Entonces, con la solución @reedstrm, tuve este error "Hay varios dispositivos llamados '2.4G Wireless Keyboard & Mouse'", mientras que con la solución @Radu Rădeanu, iterabafor
más de 2 identificadores, uno para el mouse y otro para el teclado, teniendo un mensaje de error "el dispositivo no tiene botones" con el segundo.fuente