我的触摸板上的右键只能执行左键单击。当我按下触摸板的右下角时,就会执行左键单击。
如何配置触摸板,使其像在 Windows 上一样运行,我可以按下左侧的物理按钮进行左键单击,按下右侧的硬件按钮进行右键单击?
我还想使用两根手指点击进行右键单击,并禁用触摸板上的中间按钮区域以进行按钮按下,这样就只剩下左键和右键单击的区域。
答案1
在装有 Ubuntu 18.04 的 Jetson Nano 上,我在连接 Logitech TouchPad 时遇到了类似的问题 - 这是我为使它正常工作所做的事情......
在终端窗口中使用 xinput cli - 首先找到触摸板的 id:
xinput list
在我的例子中,触摸板显示 ID 为 10;现在获取触摸板的设置:
xinput list 10
就我而言,我看到的是:libinput 攻丝已启用(360):0,这意味着命令 id 是 360,并且未启用点击 - 因此让我们启用它:
xinput set-prop 10 360 1
此后,我可以用一根手指轻轻点击(不是深按)进行左键单击,用两根手指进行右键单击,用三根手指进行中键单击。
您也可以尝试其他设置,例如我还设置了自然滚动(内容随滑动移动,而不是滚动条移动),这是我习惯的。
xinput set-prop 10 286 1
对我有用 - 希望对你也有用!
答案2
该解决方案在 X11 模式(非 Wayland)的 Fedora 31 Workstation 上进行了测试,并且应该与 Ubuntu 18.04+ 和其他使用相同软件(X11、GNOME、libinput)的发行版兼容。
1. 启用点击模拟
转到Settings -> Devices -> Mouse and Touchpad
并启用Tap to click
2. 通过 SoftButton Areas 启用右键模拟并启用中键模拟
笔记:启用中键模拟禁用中间按钮区域用于 SoftButtons。它将左键+右键单击映射到中键单击。
将以下代码输入/etc/X11/xorg.conf.d/10-clickpad.conf
(以 root 身份)
Section "InputClass"
Identifier "libinput touchpad catchall"
Driver "libinput"
Option "MiddleEmulation" "true"
Option "ClickMethod" "buttonareas"
EndSection
3. 将 GNOME 默认行为设置为 SoftButton Areas
笔记:可以選擇嗎?
在终端中执行此操作(作为普通用户):
gsettings set org.gnome.desktop.peripherals.touchpad click-method 'areas'
4. 重启
重新启动并测试一切是否按预期运行:
- 点击任意位置:左键单击
- 双指点击任意位置:右键单击
- 按左下角:左键单击
- 按右下角:右键单击
- 按底部中间:无中键单击
- 按左下角+右下角:鼠标中键
故障排除:
这里的根本问题是大多数触摸板只有 1 个硬件按钮,因此处理输入的软件必须根据按下按钮时手指的位置将该按钮按下映射到左键单击或右键单击。
检查按钮映射
要查看按钮按下对应的内容:
- 通过运行获取输入设备的名称
xinput list
- 通过运行来测试设备事件
xinput test 'device_name_or_id'
请注意,设备名称中的空格和其他特殊字符必须转义或放在单引号中。按 取消该命令CTRL+C
。
输出应该读取button press 3
右键单击和button press 1
左键单击。
中键点击仍通过按下中间按钮来模拟
验证中间按钮模拟是否已启用这样软件按钮区域就可以通过运行
xinput list-props '<device_name_or_id>' | grep 326
输出应该读取libinput Middle Emulation Enabled (326): 1
,如果不是,那么您的触摸板与 libinput 不兼容或默认使用另一个驱动程序。