我使用 xbindkeys 使用鼠标 8 和鼠标 9 按钮进行复制和粘贴。
它可以与 ubuntu 20.10 一起使用,但自从我升级到 21.04 后,它在某些应用程序中停止工作。
问题似乎来自xte
如果我sleep 4; xte 'key v'
在终端中运行
- 切换到 nautilus it没有打印
v
- 切换到终端没有打印
v
- 切换到 Firefox没有打印
v
- 切换到镀铬做打印
v
- 切换到信号做打印
v
- 切换到松弛模式做打印
v
- 切换到 discord做打印
v
为什么它在某些应用程序中停止工作,但在其他应用程序中却没有停止工作?我该如何调试它?
答案1
要检查你的 Ubuntu 会话是 Xorg 还是 Wayland:
$ echo $XDG_SESSION_TYPE
wayland
您可以:
- 尝试用直接将输入事件写入的工具替换依赖于 GUI 的工具
/dev/uinput
,例如xdotool
使用ydotool
etc, - 或者您可以切换回 Xorg。
要将 Xorg 设置为默认值:
$ sudo gedit /etc/gdm3/custom.conf
取消注释(删除#
)以下行:
#WaylandEnable=false
保存文件,重新启动并尝试xdotool mousemove 50 20
在终端中进行类似操作,它应该将鼠标指针传送到屏幕左上角附近。
答案2
非常简单。安装 Ubuntu 21.04 后,您现在使用的是更现代的 Wayland 图形系统,而不是古老的 Xorg 服务器。非常有用的自动化工具(例如、、、、xbindkeys
... )在 Wayland 上不起作用。xvt
wmctrl
xdotool
此外,许多屏幕录制程序无法在 Wayland 上运行,尽管主流厂商 OBS Studio 现在都支持 Wayland。
为什么它在某些应用程序上有效?可能是因为这些应用程序在 XWayland 上运行,XWayland 是 Wayland 的 Xorg 模拟层,用于支持无法在原生 Wayland 上运行的应用程序。
该怎么办?暂时切换回 Xorg,或者尝试获取非常年轻的更换 Wayland 的工具上班。