轨迹点和触控板:启用按钮和滚动(联想 T440s)

guo*_*ger 10 xorg

我刚买了一台配备了突触触摸板的联想 T440s。默认情况下没有中间按钮,右键位于触摸板的右下角。我习惯了轨迹指针+左/中/右按钮的组合,我真的很想念我的新模型。每次按下按钮都会产生一些噪音,因为按钮也是触摸板的一部分。

到目前为止我所做的是:

  • 将触摸板的滞后增加到非常高的值,这实际上禁用了导航
  • 启用Clickpad模式,提供中/右键功能
  • 在触摸板上按预期定义中/右键区域

但问题是中间按钮没有映射到 trackpointer。在这个模型上,它们似乎是两个独立的设备。我想知道如何将中间按钮触发的事件连接到 trackpointer 的滚轮仿真按钮。

这是我的 xinput 属性的输出: 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)]
Run Code Online (Sandbox Code Playgroud)

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"
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索并检查了很多线程,但未能找到合适的解决方案。但是,当我在此型号上使用 Windows 8.1 并安装 Synaptics 触摸板驱动程序时,它运行良好。所以另一个建议是将该驱动程序移植到 linux。

任何帮助将不胜感激提前感谢!

Liv*_*eBT 9

进展更新: http : //who-t.blogspot.de/2014/03/xorg-synaptics-support-for-lenovo-t440.html

[...] 这次的支持是真实的,或者至少接近完成。[...] 我忘了提及:synaptics 1.8 将拥有所有这些 [...]

更新 2:上面的帖子已更新,差异:http : //who-t.blogspot.de/2014/04/t440-touchpads-story-continues.html

更新 3: 在 Ubuntu 中为联想触控板启用中间点击滚动,作者为Björn Tillenius

更新4:解释为什么新一代的实体按键可能会和上一代非实体按键一样坏


如果我没有正确理解您,那么Peter Hutterer 的这篇文章可能对您有所帮助。T440 轨迹点按钮支持似乎正在进行中,目前更像是一种解决方法。

他用 ASCII-art 说明他们不能像在 Windows 上那样配置触摸板:

+----------------------------+
| LLLLLLLLLL MMMMM RRRRRRRRR |
|                            |
|                            |
|                            |
|                            |
|                            |
|                            |
| LLLLLLLL          RRRRRRRR |
+----------------------------+
Run Code Online (Sandbox Code Playgroud)

并且必须像这样配置触摸板按钮:

+----------------------------+
| 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 |
+----------------------------+
Run Code Online (Sandbox Code Playgroud)

声明和当前解决方法:

我正在研究正确配置的解决方案,但现在您必须对此感到满意。

最简单的本地配置方法是一个新的 InputClass 部分,形式如下:

Section "InputClass"
    Identifier "t440 top buttons"
    MatchDriver "synaptics"
    #                         right btn|middle btn
    Option "SoftButtonAreas" "60% 0 0 0 40% 60% 0 0"
EndSection
Run Code Online (Sandbox Code Playgroud)

把它放进/etc/X11/xorg.conf.d/99-t440-synaptics.conf去,你就可以开始了。