Entendo sua frustração, mas esse problema pode ser resolvido de maneira muito simples com a ajuda da xinput
ferramenta.
Primeiro, conecte seu mouse USB e execute o seguinte comando:
xinput list
para ver o id
mouse. A saída do comando acima pode ser semelhante a:
xinput | gato
Id ID do ponteiro do núcleo virtual = 2 [ponteiro mestre (3)]
Id ↳ ID do ponteiro do núcleo virtual XTEST = 4 [ponteiro escravo (2)]
Id id ID do TouchPad SynPS / 2 Synaptics = 14 [ponteiro escravo (2)]
Id ↳ Identificação do mouse USB = 11 [ponteiro escravo (2)]
Id ID do teclado do núcleo virtual = 3 [teclado principal (2)]
...
No exemplo acima, o mouse USB possui id=11
. Usaremos isso id
no comando a seguir, que trocará os botões para serem canhotos apenas para o mouse USB (e não para o tauchpad):
xinput set-button-map 11 3 2 1
Em geral:
xinput set-botão-map id 3 2 1
Para reverter a alteração, use:
xinput set-botão-map id 1 2 3
Para fazer a alteração permanentemente, adicione o seguinte comando em Aplicativos de Inicialização (procure no Dash por Aplicativos de Inicialização ):
sh -c "xinput set-botão-map id 3 2 1"
Atualizar:
Como o ID pode mudar após a reinicialização, mas o nome do USBmouse não, você também pode receber o nome do mouse e aplicá-lo. Para pular os detalhes, reg. escolhendo o nome da solução final:
para identificação em `/ usr / bin / xinput list | / bin / grep ' Mouse USB ' | / bin / grep -o [0-9] [0-9] `; xinput set-button-map $ id 3 2 1; feito;
empacote-o nos aplicativos de inicialização mencionados acima, você obterá finalmente:
sh -c "para identificação em` / usr / bin / lista xinput | / bin / grep ' Mouse USB ' | / bin / grep -o [0-9] [0-9] `; faça xinput definir mapa de botões $ id 3 2 1; pronto; "
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;"
e isso funciona (talvez seja necessário se preocupar com os hífens adequados). Obrigado pela dica.Existe uma maneira ainda mais simples do que na resposta de Radu Rădeanu .
xinput
aceita o nome do dispositivo de entrada como uma alternativa ao seu ID numérico. Como o mouse USB provavelmente é tratado genericamente, é provável que o nome seja esseUSB Mouse
. Portanto, você provavelmente nem precisa executarxinput list
.Assim
xinput set-button-map
, seu , com esse nome no lugar do ID numérico, se torna:Isso substitui e deve obter a mesma coisa, tornando-o um mouse canhoto, exatamente como quando o modo de ID numérico é usado. (E a substituição por ainda funcionará para mudar para um mouse para destros.)
xinput set-button-map id 3 2 1
3 2 1
3 2 1
1 2 3
Isso tem a vantagem de que, desde que funcione inicialmente, continuará a funcionar nas reinicializações, sem precisar obter o número de identificação do dispositivo usando comandos longos e complexos.
fonte
xinput list
mostra 2 entradas com o mesmo nome ("Teclado e mouse sem fio 2.4G"), exceto uma que diz "[ponteiro escravo (2)]" e a outra diz "[teclado escravo (3 )] ". Portanto, com a sua solução, tenho este erro "Existem vários dispositivos denominados 'Teclado e mouse sem fio 2.4G'.". No momento, estou usando a adição da solução de Radugrep 'slave pointer'
. Gostaria de saber se o xinput permite de alguma forma especificar que estamos nos referindo a um ponteiro sem fazer tudo isso.Descobri que o comando de inicialização na outra resposta só funciona se o ID for um número de dois dígitos. Aqui estão minhas modificações que devem funcionar para números de um e dois dígitos:
Em aplicativos de inicialização
fonte
Aqui está uma solução mais detalhada que resolve dois problemas:
xinput list
mostra 2 entradas com o mesmo nome ("Teclado e mouse sem fio 2.4G"), exceto uma que diz "[ponteiro escravo (2)]" e a outra diz "[teclado escravo (3 )] ". Portanto, com a solução @reedstrm, recebi o erro "Existem vários dispositivos denominados 'Teclado e mouse sem fio 2.4G'.", Enquanto na solução @Radu Rădeanu, iteravafor
mais de 2 IDs, um para o mouse e outro para o teclado, tendo um mensagem de erro "o dispositivo não possui botões" com o segundo.fonte