在 Wayland 上禁用笔记本电脑触摸板

在 Wayland 上禁用笔记本电脑触摸板

我需要禁用笔记本电脑的触摸板。我正在使用 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'

它是用falsewhile 名称暗示的来表示的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 Con​​nect。

在来自 GitHub 的 ydotool 版本 1.0.4 上进行了测试。

相关内容