在 X 显示屏上闲置几秒钟后隐藏鼠标

在 X 显示屏上闲置几秒钟后隐藏鼠标

我有一个在 Ubuntu Server 14.04.3 上运行的信息亭应用程序,带有 Google Chrome 和 X display(xorg 和 xsession)。

目前我有一些脚本可以在鼠标闲置 2 秒后隐藏鼠标,而当用户尝试移动鼠标时,鼠标就会出现。我只需利用cursor:none注入的不可见覆盖层并在需要时删除该覆盖层即可。

似乎当我启动信息亭时,代码按预期执行,我可以看到插入的覆盖层,但由于鼠标刚刚“加载”,它不会消失,直到我用它做了哪怕是很小的移动。似乎浏览器没有检测到鼠标,直到我用它做了哪怕是很小的移动,导致鼠标显示在屏幕中间。由于问题与我的代码无关,因为它似乎执行得很好。

我想要做的是,如果鼠标 2 秒内没有移动,则隐藏它。当用户尝试移动鼠标时,再次显示它。解决方案必须在启动 X 显示器后立即起作用,因此当我启动 X 显示器时,鼠标位于屏幕中间,即使我在启动时不触摸它,它也会在闲置 2 秒后消失。我想我需要通过修改 X 显示器来实现这一点,而不是依赖我的代码,因为在信息亭刚启动时无法检测到鼠标。

使用 X 显示器可以做这样的事情吗?

答案1

有一个名为的应用程序unclutter可以做到这一点。在终端窗口中输入以下内容来安装它:

sudo apt-get install unclutter

安装后,您可以在以下文件中将超时更改为 2 秒:

/etc/default/unclutter

并更改以下行:

EXTRA_OPTS="-idle 1 -root"

EXTRA_OPTS="-idle 2 -root"

当系统启动时它也会自动启动。

要使其立即启动而不重新启动系统,请输入以下内容:

nohup unclutter -idle 2 &

编辑:

如果找不到安装,请编辑/etc/apt/sources.list文件并确保以下行没有被注释掉#

deb http://us.archive.ubuntu.com/ubuntu/ trusty universe
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty universe
deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates universe

如果它们被注释掉了,请删除#该行前面的,然后运行sudo apt-get update以更新存储库,然后重新运行sudo apt-get install unclutter

如果我运行以下命令,我们可以看到该unclutter应用程序来自trusty universe存储库。

:~$ apt-cache showpkg unclutter
Package: unclutter
Versions: 
8-19 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_trusty_universe_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_trusty_universe_binary-amd64_Packages
                  MD5: f0e9ff67c42a9d3dc35bb595d2f84a7b
 Description Language: en
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_trusty_universe_i18n_Translation-en
                  MD5: f0e9ff67c42a9d3dc35bb595d2f84a7b

:~$ dpkg -s unclutter
Package: unclutter
Status: install ok installed
Priority: optional
Section: x11
Installed-Size: 76
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Version: 8-19
Depends: debconf (>= 0.5) | debconf-2.0, libc6 (>= 2.3.4), libx11-6
Conffiles:
 /etc/X11/Xsession.d/90unclutter 9b47a483264cfc6a155fbd65cd8a3e6e
Description: hides the mouse cursor in X after a period of inactivity
 unclutter hides your X mouse cursor when you don't need it, to prevent it
 from getting in the way. You have only to move the mouse to restore the
 mouse cursor.
Original-Maintainer: Axel Beckert <[email protected]>
Homepage: ftp://ftp.x.org/contrib/utilities/

希望这可以帮助!

答案2

我在 X11 上使用该unclutter-xfixes软件包,它似乎工作得更好。在标准 unclutter 软件包上,有一些令人讨厌的怪癖,例如滚动被禁用,直到光标重新出现。

根据描述:

描述:使用 XFixes 在一段时间不活动后隐藏 X 鼠标光标 unclutter-xfixes 是流行工具 unclutter 的重写,但使用 x11-xfixes 扩展。与现代应用程序和窗口管理器一起使用时,它的错误更少。

以下命令示例将启动它并在后台运行,超时时间为 2 秒,同时忽略滚动:

unclutter --timeout 2 --ignore-scrolling & disown

您可以在启动时使用该命令作为脚本,但它不会自动启动。

相关内容