Ukrywanie myszy po kilku sekundach bezczynności na wyświetlaczu X.

9

Mam aplikację kiosku działającą na Ubuntu Server 14.04.3 z przeglądarką Google Chrome i X (Xorg i Xsession).

Obecnie mam skrypt do ukrywania myszy po 2 sekundach bezczynności, a gdy użytkownik próbuje poruszyć myszą, pojawia się. Po prostu korzystam z cursor:nonewstrzykniętej niewidocznej nakładki i usuwam tę nakładkę w razie potrzeby.

Wygląda na to, że kiedy uruchamiam kiosk, kod wykonuje się zgodnie z oczekiwaniami i widzę wstawioną nakładkę, ale ponieważ mysz została właśnie „załadowana”, nie zniknie, dopóki nie wykonam z nią nawet niewielkiego ruchu. Wygląda na to, że przeglądarka nie wykrywa myszy, dopóki nie wykonam z nią nawet niewielkiego ruchu, co spowoduje wyświetlenie myszy na środku ekranu. Ponieważ problem nie jest związany z moim kodem, ponieważ wydaje się, że działa dobrze.

Chcę to zrobić, jeśli mysz nie została poruszona przez 2 sekundy, ukryj ją. Gdy użytkownik spróbuje poruszyć myszą, pokaż ją jeszcze raz. Rozwiązanie musi działać natychmiast po uruchomieniu ekranu X, więc kiedy uruchamiam ekran X, mysz znajduje się na środku ekranu i nawet jeśli nie dotknę go podczas uruchamiania, zniknie po 2 sekundach bezczynności. Chyba muszę to osiągnąć, majstrując przy ekranie X, zamiast polegać na moim kodzie, ponieważ mysz nie jest wykrywana, gdy kiosk jest świeżo uruchamiany.

Czy można zrobić coś takiego z wyświetlaczem X?

kfirba
źródło

Odpowiedzi:

14

Jest tak zwana aplikacja, unclutterktóra to zrobi. Zainstaluj go, wpisując następujące polecenie w oknie terminala:

sudo apt-get install unclutter

po zainstalowaniu możesz zmienić limit czasu na 2 sekundy w następującym pliku:

/etc/default/unclutter

i zmień następujący wiersz:

EXTRA_OPTS="-idle 1 -root"

do

EXTRA_OPTS="-idle 2 -root"

to również uruchamia się automatycznie po uruchomieniu systemu.

Aby rozpocząć teraz bez ponownego uruchamiania systemu, wpisz następujące polecenie:

nohup unclutter -idle 2 &

EDYTOWAĆ:

Jeśli nie można go zainstalować, edytuj /etc/apt/sources.listplik i upewnij się, że następujące wiersze nie zostały zakomentowane #:

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

Jeśli są one skomentowane, usuń z #przodu linii, a następnie uruchom, sudo apt-get updateaby zaktualizować repozytoria, a następnie uruchom ponownie sudo apt-get install unclutter.

Jeśli uruchomię następujące polecenia, możemy zobaczyć, że unclutteraplikacja pochodzi z trusty universerepozytoriów.

:~$ 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/

Mam nadzieję że to pomoże!

Terrance
źródło
Sprawdzę to! Nie mogę uwierzyć, że takie proste rozwiązanie było tuż pod moim nosem :) Btw, kiedy mówisz „stwórz startup”, masz na myśli stworzenie pliku w init.dfolderze?
kfirba
@kfirba Zaktualizowano dla zdolności autostartu.
Terrance
dzięki za edycję! Wrócę wkrótce z wynikami :)
kfirba
@kfirba Cieszę się, że mogę ci pomóc! =)
Terrance,
Z jakiegoś powodu nie mogę zainstalować unclutter ... Piszę sudo apt-get install unclutteri jest napisane, że nie ma pakietu unclutter. Jakieś pomysły, jak to naprawić?
kfirba