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

9

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

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

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

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

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

kfirba
источник

Ответы:

14

Существует приложение под названием 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 Обновлено для автоматических способностей.
Терренс
спасибо за редактирование этого! Я скоро вернусь к вам с результатами :)
kfirba
@kfirba Рад, что могу помочь тебе! =)
Терренс
Я не могу установить unclutter по какой-то причине ... Я печатаю, sudo apt-get install unclutterи он говорит, что нет пакета unclutter. Есть идеи, как я могу это исправить?
kfirba