使用 Wayland 禁用鼠标中键单击

使用 Wayland 禁用鼠标中键单击

我将我的 ubuntu 从 21.10 impish 切换到 22.04 jammy,这意味着将 x11 留给 wayland。

我通过完全禁用鼠标中键单击来防止未经请求的选择粘贴或不需要的关闭选项卡,并将此行添加到我的.bashrc

xinput set-prop 'Synaptics TM3289-021' 'libinput Middle Emulation Enabled' 1

它与 x11 配合得很好。升级后,我收到此错误消息

WARNING: running xinput against an Xwayland server. See the xinput man page for details.

无法找到设备 Synaptics TM3289-021

当我这样做时xinput list,我没有得到我的触摸板,而是

WARNING: running xinput against an Xwayland server. See the xinput man page for details.
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ xwayland-pointer:16                       id=6    [slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:16              id=7    [slave  pointer  (2)]
⎜   ↳ xwayland-pointer-gestures:16              id=8    [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
   ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
   ↳ xwayland-keyboard:16                      id=9    [slave  keyboard (3)]

如何使用 Wayland 协议禁用中键点击?

答案1

解决方案

使用命令:

gsettings set org.gnome.desktop.peripherals.touchpad middle-click-emulation true

当我们启用中键模拟时,如果你的触摸板上有真正的中键,它就会被禁用。你不需要把它放到你的.bashrc保持持久性。以下是房产描述。您可以使用以下方式自定义它dconf-编辑器gui(比命令行更快)

如果你不知道dconf是。

为什么它不再起作用了

Wayland 使用 libinput 代替 xinput。因此,您将无法再使用 xinput 更改设置。 wayland 上的 Libinput 更多信息libinput 文档

奖励:探索/dev/输入

我觉得这很有趣教程解释如何探索输入设备。

以下是一些用于发现鼠标输入的 python3 代码:

import struct
f = open( "/dev/input/mouse0", "rb" );
while 1:
  data = f.read(3)                 # Reads the 3 bytes
  print(struct.unpack('3b',data))  # Unpacks the bytes to integers

将其保存到文件.py然后运行sudo python3 file.py

答案2

我从 Hyprland 常见问题解答中获得了此方法,效果非常好!

wl-paste -p --watch wl-copy -p ''

它需要安装 wl-clipboard。

相关内容