Trackpoint e Clickpad: ativar botões e rolagem (Lenovo T440s) [fechado]

10

Acabei de adquirir um Lenovo T440s equipado com touchpad synaptics. Por padrão, não há botão do meio e o botão direito está no canto inferior direito do touchpad. Estou acostumado com a combinação de trackpointer + botões esquerdo / médio / direito e sinto muita falta disso no meu novo modelo. Ele gera algum ruído toda vez que pressiono o botão, pois ele também faz parte do touchpad.

O que eu fiz até agora é:

  • aumentar a histerese do touchpad para um valor muito alto, o que literalmente desativou a navegação
  • Ativar o modo Clickpad, que fornece funções do botão do meio / direito
  • Defina a área do botão do meio / direito conforme o esperado no touchpad

Mas o problema é que o botão do meio não está mapeado para o trackpointer. Eles parecem ser dois dispositivos independentes nesse modelo. Gostaria de saber como posso conectar o evento acionado pelo botão do meio ao botão de emulação de roda do trackpointer.

Aqui está a saída das minhas propriedades xinput: Lista Xinput:

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=10   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=11   [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)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Integrated Camera                         id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=12   [slave  keyboard (3)]

Touchpad SynPS / 2 Synaptics:

Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (133):   1
    Coordinate Transformation Matrix (135): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (256): 1
    Device Accel Constant Deceleration (257):   2.500000
    Device Accel Adaptive Deceleration (258):   1.000000
    Device Accel Velocity Scaling (259):    12.500000
    Synaptics Edges (260):  1726, 4858, 1577, 3665
    Synaptics Finger (261): 25, 30, 256
    Synaptics Tap Time (262):   180
    Synaptics Tap Move (263):   192
    Synaptics Tap Durations (264):  180, 180, 100
    Synaptics ClickPad (265):   1
    Synaptics Tap FastTap (266):    0
    Synaptics Middle Button Timeout (267):  0
    Synaptics Two-Finger Pressure (268):    282
    Synaptics Two-Finger Width (269):   7
    Synaptics Scrolling Distance (270): 87, 87
    Synaptics Edge Scrolling (271): 0, 0, 0
    Synaptics Two-Finger Scrolling (272):   1, 1
    Synaptics Move Speed (273): 1.000000, 1.750000, 0.045725, 40.000000
    Synaptics Edge Motion Pressure (274):   30, 160
    Synaptics Edge Motion Speed (275):  1, 349
    Synaptics Edge Motion Always (276): 0
    Synaptics Off (277):    2
    Synaptics Locked Drags (278):   0
    Synaptics Locked Drags Timeout (279):   5000
    Synaptics Tap Action (280): 0, 0, 0, 0, 0, 0, 0
    Synaptics Click Action (281):   1, 3, 0
    Synaptics Circular Scrolling (282): 0
    Synaptics Circular Scrolling Distance (283):    0.100000
    Synaptics Circular Scrolling Trigger (284): 0
    Synaptics Circular Pad (285):   0
    Synaptics Palm Detection (286): 0
    Synaptics Palm Dimensions (287):    10, 200
    Synaptics Coasting Speed (288): 20.000000, 50.000000
    Synaptics Pressure Motion (289):        ... of unknown type CARDINAL

    Synaptics Pressure Motion Factor (290): 1.000000, 1.000000
    Synaptics Resolution Detect (291):  1
    Synaptics Grab Event Device (292):  1
    Synaptics Gestures (293):   1
    Synaptics Capabilities (294):   1, 0, 0, 1, 1, 1, 1
    Synaptics Pad Resolution (295): 42, 42
    Synaptics Area (296):   0, 0, 0, 0
    Synaptics Soft Button Areas (297):  3656, 0, 1000, 0, 2600, 3619, 1000, 3000
    Synaptics Noise Cancellation (298): 500, 500
    Device Product ID (250):    2, 7
    Device Node (251):  "/dev/input/event5"

Adereços de lista do Xinput 11:

Device 'TPPS/2 IBM TrackPoint':
    Device Enabled (133):   1
    Coordinate Transformation Matrix (135): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (256): 0
    Device Accel Constant Deceleration (257):   1.000000
    Device Accel Adaptive Deceleration (258):   1.000000
    Device Accel Velocity Scaling (259):    10.000000
    Device Product ID (250):    2, 10
    Device Node (251):  "/dev/input/event6"
    Evdev Axis Inversion (300): 0, 0
    Evdev Axes Swap (302):  0
    Axis Labels (303):  "Rel X" (143), "Rel Y" (144)
    Button Labels (304):    "Button Left" (136), "Button Middle" (137), "Button Right" (138), "Button Wheel Up" (139), "Button Wheel Down" (140), "Button Horiz Wheel Left" (141), "Button Horiz Wheel Right" (142)
    Evdev Middle Button Emulation (305):    0
    Evdev Middle Button Timeout (306):  50
    Evdev Third Button Emulation (307): 0
    Evdev Third Button Emulation Timeout (308): 1000
    Evdev Third Button Emulation Button (309):  3
    Evdev Third Button Emulation Threshold (310):   20
    Evdev Wheel Emulation (311):    1
    Evdev Wheel Emulation Axes (312):   6, 7, 4, 5
    Evdev Wheel Emulation Inertia (313):    10
    Evdev Wheel Emulation Timeout (314):    200
    Evdev Wheel Emulation Button (315): 2
    Evdev Drag Lock Buttons (316):  0

Eu pesquisei e verifiquei muitos tópicos e não consegui encontrar uma solução adequada. Mas quando eu uso o Windows 8.1 neste modelo e instalo o driver do touchpad synaptics, ele está funcionando perfeitamente. Portanto, outra proposta é portar esse driver para o Linux.

Qualquer ajuda seria apreciada desde já, obrigado!

guoger
fonte
Receio que sua pergunta não esteja totalmente clara. Enquanto você nos forneceu muitas informações, não sei exatamente como deseja que a rolagem funcione. Você poderia tentar especificar isso mais claramente?
Dillmo
1
Este é um bug no evdev xorg motorista bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-evdev/+bug/...
Braiam

Respostas:

9

Atualização sobre o progresso: http://who-t.blogspot.de/2014/03/xorg-synaptics-support-for-lenovo-t440.html

[...] desta vez o suporte é real, ou pelo menos quase pronto. [...] esqueci de mencionar: o synaptics 1.8 terá tudo isso [...]

Atualização 2: a postagem acima foi atualizada, diff: http://who-t.blogspot.de/2014/04/t440-touchpads-story-continues.html

Atualização 3: Habilitando a rolagem de meio clique no Ubuntu para os touchpads da Lenovo por Björn Tillenius

Atualização 4: Explicação por que a nova geração com botões físicos revividos pode ser tão quebrada quanto a geração anterior com botões não físicos


Se eu o entendi corretamente, esse post de Peter Hutterer pode ser útil para você. O suporte aos botões do trackpoint T440 parece ser um trabalho em andamento e atualmente é mais um tipo de solução alternativa.

Ele ilustra com arte ASCII que eles não podem configurar o touchpad como no Windows:

+----------------------------+
| LLLLLLLLLL MMMMM RRRRRRRRR |
|                            |
|                            |
|                            |
|                            |
|                            |
|                            |
| LLLLLLLL          RRRRRRRR |
+----------------------------+

e precisa configurar os botões do touchpad da seguinte maneira:

+----------------------------+
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
| LLLLLLLLLL MMMMM RRRRRRRRR |
+----------------------------+

Declaração e solução atual:

Estou trabalhando em uma solução para a configuração correta, mas por enquanto você terá que se contentar com isso.

A abordagem mais fácil para a configuração local é uma nova seção InputClass no formato:

Section "InputClass"
    Identifier "t440 top buttons"
    MatchDriver "synaptics"
    #                         right btn|middle btn
    Option "SoftButtonAreas" "60% 0 0 0 40% 60% 0 0"
EndSection

Solte isso /etc/X11/xorg.conf.d/99-t440-synaptics.confe você está pronto para ir.

LiveWireBT
fonte
Mais informações em thinkwiki thinkwiki.org/wiki/Buttonless_Touchpad
Paweł Prażak
1
14.04 informações de backport: bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/…
Paweł Prażak