Desativar a pasta do meio do botão em um HID específico

3

Estou usando o Ubuntu 12.04 em um T430s da Lenovo. Ao usar um teclado externo com track-point, observei o seguinte comportamento inesperado: ao rolar (pressionando e segurando o botão do meio do mouse e movendo o track-point), o texto que eu selecionei por último está sendo colado. Mas isso só deve acontecer quando clicar (não segurar) o botão do meio do mouse. O interessante é que isso está acontecendo apenas no teclado externo, o teclado do laptop está se comportando corretamente. Além disso, isso só está acontecendo quando o track-point é usado logo após pressionar o botão do meio do mouse, ele não está colando quando eu espero pelo menos um segundo.

O Google não trouxe nada. Existe alguma experiência semelhante ou uma solução que perdi?

Uma solução aceitável para mim seria desativar a pasta do botão do meio apenas no teclado externo, para que eu ainda possa usar um mouse externo para fazer a colagem. Eu só encontrei uma maneira de desativar esse recurso completamente em todos os dispositivos, mas eu uso esse recurso de colagem bastante e frequentemente, então não posso viver sem ele.

    
por Heye 06.01.2014 / 12:09

1 resposta

3

Use xinput list para encontrar o dispositivo em que você deseja desativar o botão:

$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Optical Mouse           id=8    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]

Vou tentar isso no meu mouse. O próximo passo é obter o mapa de botões atual:

$ xinput get-button-map 'Logitech USB-PS/2 Optical Mouse'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 

Acontece que meu mouse é mapeado de uma forma muito simples: o botão físico 1 é o botão lógico 1, etc. Esse é o padrão; você pode ver algo diferente se você selecionou o modo canhoto por exemplo.

De qualquer forma, o botão do meio é o botão do mouse 2. Para desativá-lo, defina o que mostrar 2 a 0 (desativado). (Espero que, quando você estiver rolando, o botão gerador gere 4 ou 5 cliques, dependendo se você estiver rolando para cima ou para baixo. Essa é a maneira normal de uma roda de rolagem funcionar).

$ xinput set-button-map 'Logitech USB-PS/2 Optical Mouse' 1 0 3 4 5 6 7 8 9 10 11 12 13 14 15 16

O clique do meio será agora totalmente ignorado nesse único dispositivo. Para alterá-lo de volta, basta executar esse comando novamente, mas com o 2 de volta em seu lugar. (Naturalmente, você também pode alterar seus mapeamentos de botões da maneira que quiser; por exemplo, se você alternar entre 4 e 5, mudará a direção da rolagem).

Se isso acontecer, você só precisa organizar a última linha como parte de seus scripts de login.

    
por derobert 07.05.2014 / 00:16

Tags