Rolagem com o botão do meio do mouse com o ThinkPad / evitar colar


11

Eu tenho um teclado USB do ThinkPad e desejo poder usar o clique do meio para colar e rolar.

Isso funciona no meu laptop ThinkPad. No laptop, se o clique do botão do meio é mantido por um curto período suficiente de tempo, então, quando for lançado ele é interpretado como " colar ". Quando mantido por mais tempo, é interpretado como " rolagem ".

O problema é que, usando o teclado USB, a decisão de colar ocorre quando o botão do meio é pressionado , e não quando é liberado . Por isso, se eu tentar rolar com o clique do meio, ele colar primeiro e depois rolar quando eu continuar segurando para baixo (embora, curiosamente, essa pasta não ocorra se eu já estiver movendo o cursor, que é minha solução atual).

Existe uma maneira de dizer ao X11 para colar na liberação do botão do meio em vez de pressionar (com a decisão de rolar em vez de colar, com base em quanto tempo ele foi mantido)?


2
É surpreendente saber que o comportamento do X11 seria diferente dependendo do mouse que está sendo usado. Eu sugiro que você use xevpara assistir aos eventos ButtonPresse ButtonReleasepara ver se o botão do seu laptop está realmente enviando os eventos que você pensa que são no momento em que você pensa que é. É possível que ele esteja fazendo sua própria mágica e "mentindo" para o X11 sobre quando os botões são pressionados e liberados. A propósito, parece normal que a pasta ocorra imediatamente ao pressionar o botão 2, e não solte .
Celada

1
Também adoraria saber como fazer isso, pois estou em um teclado Bluetooth Trackpoint da Lenovo.
23615 Justin N /

Aquele teclado USB, que modelo exato é esse? Possui um touchpad "real" ou um chamado touchpad (sem botões físicos)? Além disso, que ambiente de distribuição e de área de trabalho você usa? Existe alguma configuração especial do xorg em vigor (/etc/X11/xorg.conf e em /etc/X11/xorg.conf.d/)? Você pode encontrar alguns ponteiros aqui: askubuntu.com/questions/2557/thinkpad-middle-button-scrolling e para clickpad aqui: askubuntu.com/questions/380825/...
doktor5000

1
Alguma atualização sobre isso? Estou enfrentando o mesmo problema com um teclado externo da Lenovo.
languitar

FWIW, tenho dois modelos de teclado bluetooth trackpoint e um tem esse problema. xevmostra que o ButtonPressbotão for 2 assim que clico e ButtonReleasequando começo a rolar. O que deve acontecer é que nenhum desses eventos é gerado até que a ação seja desambiguada, movendo o trackpoint (nesse caso, nem pressionar ou relase são gerados) ou o botão 2 é liberado (nesse caso, os dois eventos são enviados após o lançamento).
stewSquared

Respostas:


1

Isso funciona bem para mim em /etc/X11/xorg.conf.d/20-thinkpad.conf:

Section "InputClass"
    Identifier  "Trackpoint Wheel Emulation"
    MatchProduct    "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"
    MatchDevicePath "/dev/input/event*"
    Option      "EmulateWheel"      "true"
    Option      "EmulateWheelButton"    "2"
    Option      "Emulate3Buttons"   "false"
    Option      "XAxisMapping"      "6 7"
    Option      "YAxisMapping"      "4 5"
EndSection

A seção importante é a MatchProductentrada, que inclui também o teclado USB. Você pode encontrar a string do produto do teclado /var/log/Xorg.0.loggrepping para (II) evdev:.


1

Tente ativar a emulação de rolagem com os seguintes comandos, que funcionam bem em vários modelos de teclado de trackpoint:

dev="TPPS/2 IBM TrackPoint"
xinput --set-int-prop "$dev" "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput --set-int-prop "$dev" "Evdev Wheel Emulation Button" 8 2
xinput --set-int-prop "$dev" "Evdev Wheel Emulation" 8 1

Se você não gosta disso, pode desfazê-lo com

xinput --set-int-prop "$dev" "Evdev Wheel Emulation" 8 0

Pode ser necessário ajustar o desenvolvedor com base no seu modelo de teclado. Corre

xinput --list | grep TrackPoint

para ver como o seu dispositivo apontador é chamado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.