![在 Wayland 上禁用笔记本电脑触摸板](https://linux22.com/image/168033/%E5%9C%A8%20Wayland%20%E4%B8%8A%E7%A6%81%E7%94%A8%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%E8%A7%A6%E6%91%B8%E6%9D%BF.png)
我需要禁用笔记本电脑的触摸板。我正在使用 Gnome在韦兰。
libinput
应该提供此功能,但显然没有。xinput
不起作用,因为我在 Wayland。- 我认为 Gnome 在输入设置中提供了一些开关来执行此操作,但它不再存在了(Gnome shell 3.34 - 也许这是 Xorg 独有的功能?)。
如果我想禁用输入设备,这真的要求太多了吗?
编辑:xinput
不是解决方案!
它的手册页有一整节关于 Wayland 的内容(重点是我的):
爱克斯威兰
Xwayland 是一个使用 Wayland Compositor 作为后端的 X 服务器。 Xwayland 充当 X 协议和 Wayland 协议之间的转换层,但不能直接访问硬件。 Xwayland 创建的 X 输入扩展设备(“xwayland-pointer”、“xwayland-keyboard”等)映射到 Wayland 协议设备,而不是物理设备。这些 X 输入扩展设备是仅对其他 X 客户端可见连接到同一个 Xwayland 进程。更改 Xwayland 设备上的属性只影响那些客户的行为。例如,使用 xinput 禁用 Xwayland 设备不会在 Wayland 本机应用程序中禁用该设备。其他更改可能根本没有任何影响。在大多数情况下,将 xinput 与 Xwayland 设备一起使用是指示 shell 脚本中的错误xinput 将打印警告。请改用 Wayland Compositor 的本机设备配置方法。
长话短说:如果我使用 禁用触摸板xinput
,它仍会像以前一样继续工作,但 XWayland 应用程序将不再看到光标移动。
答案1
首先,尝试一下这个 dconf 设置是否有用:
gsettings set org.gnome.desktop.peripherals.touchpad disable-while-typing 'false'
它是用false
while 名称暗示的来表示的true
。
此设置应该适用于 Xserver 配置:
gsettings set org.gnome.desktop.peripherals.touchpad send-events 'disabled'
Fn笔记本电脑还可以使用+禁用触摸板F5;你可以尝试一下。
如果这不起作用,请将 的输出添加libinput-list-devices
到您的问题中。您可能还想看看触摸板指示灯GNOME Shell 扩展。
答案2
xinput
即使您使用的是 Wayland,这也可能有效。
xinput
如果需要,请安装该软件包。然后输入以下内容找出您的设备
xinput list | grep -i touch
您可能会找到类似“SynPS/2 Synaptics TouchPad”的字符串。grep
如果列表为空,请忽略该部分,看看是否可以找到其他听起来像触摸板的东西。
使用此字符串(根据需要修改下一个命令)并键入
xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 0
您可以在末尾输入“1”而不是“0”来重新启用触摸板。
答案3
其他方法在 KDE Plasma 上对我不起作用,所以我尝试以简单的方式禁用触摸板:
ydotool key 530:1 530:0
该命令本质上发送 KEY_TOUCHPAD_TOGGLE 请求打开或关闭触摸板。
为了使此设置起作用,ydotoold
守护进程必须在后台运行(例如作为 systemd 服务):
cat ~/.config/systemd/user/ydotoold.service
[Unit]
Description=Starts ydotoold service
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=3
ExecStart=/opt/ydotool/ydotoold
ExecReload=/usr/bin/kill -HUP $MAINPID
KillMode=process
TimeoutSec=180
[Install]
WantedBy=default.target
现在可以通过编程方式激活/停用触摸板,例如在脚本中或通过 KDE Connect。
在来自 GitHub 的 ydotool 版本 1.0.4 上进行了测试。