Скрытие мыши после нескольких секунд простоя на дисплее X

У меня есть приложение киоска, работающее на Ubuntu Server 14.04.3 с Google Chrome и дисплеем X (xorg и xsession).

В настоящее время у меня есть сценарий, чтобы скрыть мышь после 2 секунд простоя, и когда пользователь пытается переместить мышь, он появляется. Я просто использую cursor:none на вставленное невидимое наложение и удалите это наложение при необходимости.

Кажется, что когда я загружаю киоск, код выполняется должным образом, и я вижу вставленный оверлей, но поскольку мышь была просто "загружена", она не исчезнет, ​​пока я не сделаю даже небольшое движение с ней. Похоже, что браузер не обнаруживает мышь, пока я не сделаю с ней даже небольшое движение, в результате чего мышь будет отображаться в середине экрана. Так как проблема не связана с моим кодом, так как кажется, что он выполняется нормально.

Что я хочу сделать, так это то, что если мышь не двигали в течение 2 секунд, скройте ее. Когда пользователь пытается переместить мышь, покажите ее еще раз. Решение должно работать сразу после загрузки дисплея X, поэтому при загрузке дисплея X мышь находится в середине экрана, и даже если я не трогаю ее при загрузке, она исчезнет через 2 секунды простоя. Я думаю, что мне нужно добиться этого, повозившись с дисплеем X вместо того, чтобы полагаться на мой код, поскольку мышь не обнаруживается при новой загрузке киоска.

Возможно ли сделать такое с X display?

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/

Надеюсь это поможет!

Другие вопросы по тегам