在X显示器上,当鼠标闲置几秒钟后隐藏鼠标。

我在Ubuntu Server 14.04.3上运行一个亭子应用程序,使用Google Chrome和X显示(xorg和xsession)。
目前,我有一些脚本,在鼠标闲置2秒后隐藏鼠标,并在用户尝试移动鼠标时显示出来。我简单地利用了注入的不可见覆盖层上的cursor:none,并在需要时移除该覆盖层。
似乎当我启动亭子时,代码按预期执行,我可以看到插入的覆盖层,但由于鼠标刚刚“加载”,直到我稍微移动它,它才会消失。似乎浏览器直到我稍微移动鼠标才能检测到鼠标,这导致鼠标显示在屏幕中央。由于问题与我的代码无关,因为它似乎执行得很好。

我想做的是,如果鼠标连续两秒钟没有移动,就隐藏它。当用户尝试移动鼠标时,再次显示出来。这个解决方案必须在启动X显示后立即生效,所以当我启动X显示时,鼠标位于屏幕中间,即使在启动时不触摸它,也会在处于空闲状态的2秒钟后消失。我猜我需要通过调整X显示来实现这一点,而不是依赖于我的代码,因为当展示器刚刚启动时无法检测到鼠标。

使用X显示是否可以实现这样的功能?


这个回答解决了你的问题吗?如何隐藏鼠标光标 - Organic Addict
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 <ubuntu-devel-discuss@lists.ubuntu.com>
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 <abe@debian.org>
Homepage: ftp://ftp.x.org/contrib/utilities/

希望这能帮到你!

我会去看看!真不敢相信这么简单的解决方案就在我的眼皮底下 :) 顺便问一下,你说的“创建一个创业公司”是指在init.d文件夹中创建一个文件吗? - kfirba
@kfirba 更新了自动启动功能。 - Terrance
感谢您的编辑!我会尽快给您回复结果 :) - kfirba
@kfirba 很高兴能对你有所帮助!=) - Terrance
我无法安装Unclutter,不知何故... 我输入 sudo apt-get install unclutter,但它说找不到unclutter软件包。 有什么想法可以解决这个问题吗? - kfirba
@kfirba 让我再更新一下需要的存储库。 - Terrance
我通过下载.deb文件成功安装了它,然后当我执行sudo apt search unclutter时,它突然出现在软件包列表中,我就可以安装它了。非常感谢这个小而实用的软件包。运行得非常好! - kfirba
@kfirba 很高兴你能够下载并安装它。=) - Terrance
哎呀,抱歉我忘了给你打赏奖金 :x 已经修正了这个错误。 - kfirba
@kfirba 没问题!很高兴能帮到你!=) - Terrance