Trackpoint clique do meio e clique com o botão direito do mouse em rolagem no Linux

0

EDIT: TL; versão DR (meio): Em um mouse com três botões, é possível desabilitar o botão do meio real enquanto ainda está tendo a emulação do botão central no xorg?

Versão completa:

Comprei um teclado Lenovo com trackpoint e estou tentando fazer com que ele funcione bem no Linux / xorg. O problema é que eu notei quando fazendo o clique do meio-scroll (você pressiona e segura o botão do meio e então usa o trackpoint para rolar) ele primeiro envia um evento de botão do meio que obviamente cola texto ou abre links ou algo assim, dependendo onde você está. A rolagem funciona bem, mas é inútil assim.

Então, tentei desativar o clique do meio com xinput set-button-map <id> 1 0 3 . Agora, a rolagem funciona e não há nenhum evento de rolagem de pré-rolagem, mas também não posso usar o clique do meio quando quiser.

Então, pensei em ativar a emulação do botão do meio. Aparentemente, desabilitar o clique do meio também desativa a emulação dele porque a emulação funciona se eu reativar o clique do meio, mas não o contrário.

Então, eu acho que posso viver sem colar do meio do mouse e o Firefox pode abrir links em uma nova aba com ctrl + click. No entanto, isso só funciona para links regulares. Se você tem um link estranho, então parece que a única maneira de abrir o link em uma nova aba é o clique do meio (que funciona mesmo se ctrl + clicar não ... wtf?). Além disso, um clique ctrl + de uma mão requer mais trabalho do que o clique esquerdo / direito.

O que fazer? Eu acho que eu gostaria de desabilitar os eventos de clique do meio do botão real do meio enquanto continuo com a rolagem de clique do meio e a emulação do clique do meio. Ou talvez de alguma forma programar o botão do meio para que ele não faça nada no botão. Então, se o botão for mantido pressionado e o trackpoint for movido, a rolagem acontece. Se nada acontecer entre o botão para baixo e o botão para cima, então um evento de clique do meio é enviado no botão para cima. Na verdade, esta segunda solução é provavelmente o ideal.

Outras sugestões são bem-vindas também. Nota: não consigo mudar para o navegador Chrome (se isso funcionasse, não sei) porque ele não gosta dos meus mapeamentos de teclado estranhos. Também prefiro uma correção mais "global".

    
por nonpop 11.02.2015 / 11:03

1 resposta

1

Ok, aparentemente isso já está implementado. Um só tem que dizer xinput set-prop <device-id> "Evdev Wheel Emulation" 1 (eu me pergunto por que quase funcionou sem). Em seguida, pode-se controlar o tempo limite para que um clique menor do que isso seja apenas um clique do meio normal.

Mas não é perfeito: se você começar a rolar antes do tempo limite, ele enviará um evento de clique mesmo assim. Vejo duas soluções que não envolvem hackeamento do driver: 1) defina o tempo limite como 0 e use a emulação do clique do meio (que agora funciona) ou 2) aprenda a esperar um pouco antes de rolar a tela. Nem é ideal, mas está bem por enquanto.

    
por 15.02.2015 / 20:11