Cac*_*tus 13 thinkpad x11 touchpad mouse xinput
Thinkpad T480s 有一个“触控板”:一个触控板,其中(部分)触控板本身是可按下的,而不是具有物理专用按钮。
运行X.org 7.7,触摸板底部有一条横条纹,作为鼠标按键1、2、3(即左、中、右);基本上它看起来像这样:
+-----------------+
| |
| |
| |
| |
|11111 22222 33333|
|11111 22222 33333|
+-----------------+
Run Code Online (Sandbox Code Playgroud)
如何禁用按钮 2 并将该区域重新分配到按钮 1 和 3 之间?即我想要以下布局:
+-----------------+
| |
| |
| |
| |
|11111111 33333333|
|11111111 33333333|
+-----------------+
Run Code Online (Sandbox Code Playgroud)
注意这个问题与mtrack不同:如何获得垂直按钮区域?因为我试图在 XInput 的上下文中执行此操作,而不是 mtrack。此外,硬件不是 Synaptics。
有问题的硬件由 XInput 标识为
? Virtual core pointer id=2 [master pointer (3)]
? ? Virtual core XTEST pointer id=4 [slave pointer (2)]
? ? ETPS/2 Elantech Touchpad id=11 [slave pointer (2)]
? ? ETPS/2 Elantech TrackPoint id=12 [slave pointer (2)]
Run Code Online (Sandbox Code Playgroud)
小智 9
如果我输入:
$ xinput get-button-map 'DLL07BF:01 06CB:7A13 Touchpad'
Run Code Online (Sandbox Code Playgroud)
我得到:1 2 3 4 5 6 7
我尝试使用:
$ xinput set-button-map 13 1 2 0 4 5 6 7
Run Code Online (Sandbox Code Playgroud)
它禁用了中键和右键单击。
你可以很容易地让中间的“按钮”停止使用这样的命令注册:
xinput set-button-map 11 1 2 0 4 5 6 7 8 9 10 11 12
Run Code Online (Sandbox Code Playgroud)
此处的第一个参数指定设备 ID(在本例中为 11,基于您上面从 发布的输出xinput
),而其余参数将按钮映射到功能。前两个是左右按钮(1 和 2 是常规单击和上下文菜单),第三个是中间按钮(通常设置为3
,但0
告诉 xinput 将其映射为空),而休息涵盖其他事情(滚动等)。
调整其他两个按钮以覆盖整个打击垫底部有点棘手,实际上可能是不可能的。像这样的触控板的工作原理是在触控板下方有一个触发点击的开关,然后观察手指在触控板上的位置以确定将其注册为哪个按钮。可以通过三种不同的方式来处理:
第二种方法仅适用于设备未通过旧的 PS/2 样式串行连接进行连接的情况(您的可能是这样连接的,大多数 Thinkpad 都是这样)。Synaptics 使用方法 3 执行此操作,并为几乎所有内容提供大量配置选项。我不确定 Elantech 是如何处理它的,但我猜这可能是第一种情况,除非它是 USB 或 I2C 连接设备,在这种情况下,从技术上讲它是第三种情况,尽管我很确定他们没有用于 X 的特殊输入驱动程序.
小智 7
看起来按钮的顺序是左中右。这对我有用。
xinput set-button-map 11 1 0 3 4 5 6 7
Run Code Online (Sandbox Code Playgroud)
确定哪个数字对应哪个按钮后,您可以用右键单击替换中键单击。
就我而言,第二个数字映射到中键:
1 2 3 4 5 6 7
^
Run Code Online (Sandbox Code Playgroud)
所以这用左键单击替换它:
xinput set-button-map x 1 1 3 4 5 6 7
Run Code Online (Sandbox Code Playgroud)
x
从xinput得到的id在哪里
归档时间: |
|
查看次数: |
5948 次 |
最近记录: |