Ocultar el mouse después de estar unos segundos inactivo en la pantalla X

9

Tengo una aplicación de kiosco ejecutándose en Ubuntu Server 14.04.3 con Google Chrome y pantalla X (xorg y xsession).

Actualmente tengo un script para ocultar el mouse después de 2 segundos de estar inactivo y cuando el usuario intenta mover el mouse, aparece. Simplemente aprovecho la cursor:nonesuperposición invisible inyectada y elimino esa superposición cuando sea necesario.

Parece que cuando inicio el quiosco, el código se ejecuta como se esperaba y puedo ver la superposición insertada, pero como el mouse se acaba de "cargar", no desaparecerá hasta que haga un pequeño movimiento con él. Parece que el navegador no detecta el mouse hasta que hago un pequeño movimiento, lo que hace que el mouse se muestre en el centro de la pantalla. Dado que el problema no está relacionado con mi código, ya que parece ejecutarse bien.

Lo que quiero hacer es que si el mouse no se ha movido durante 2 segundos, ocultarlo. Cuando el usuario intente mover el mouse, muéstrelo nuevamente. La solución tiene que funcionar inmediatamente después de arrancar la pantalla X, de modo que cuando arranque la pantalla X el mouse se encuentra en el centro de la pantalla e incluso si no lo toco al arrancar, desaparecerá después de 2 segundos de estar inactivo. Supongo que necesito lograr esto jugando con la pantalla X en lugar de confiar en mi código, ya que el mouse no se detecta cuando el quiosco se inicia recientemente.

¿Es posible hacer algo así con la pantalla X?

kfirba
fuente

Respuestas:

14

Hay una aplicación llamada unclutterque lo hará. Instálelo escribiendo lo siguiente en una ventana de terminal:

sudo apt-get install unclutter

Una vez instalado, puede cambiar el tiempo de espera a 2 segundos en el siguiente archivo:

/etc/default/unclutter

y cambia la siguiente línea:

EXTRA_OPTS="-idle 1 -root"

a

EXTRA_OPTS="-idle 2 -root"

esto también se inicia automáticamente cuando se inicia el sistema.

Para que comience ahora sin reiniciar el sistema, escriba lo siguiente:

nohup unclutter -idle 2 &

EDITAR:

Si no se encuentra para la instalación, edite su /etc/apt/sources.listarchivo y asegúrese de que las siguientes líneas no estén comentadas #:

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

Si están comentados, elimine el #en el frente de la línea, luego ejecute sudo apt-get updatepara actualizar los repositorios, luego vuelva a ejecutar el sudo apt-get install unclutter.

Si ejecuto los siguientes comandos, podemos ver que la unclutteraplicación proviene de los trusty universerepositorios.

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

¡Espero que esto ayude!

Terrance
fuente
¡Yo lo comprobaré! No puedo creer que una solución tan simple estuviera justo debajo de mis narices :) Por cierto, cuando dices "crear una startup" ¿te refieres a crear un archivo dentro de la init.dcarpeta?
kfirba
@kfirba Actualizado para habilidades de inicio automático.
Terrance
gracias por editar eso! Me pondré en
contacto
@kfirba ¡Me alegra poder ayudarte! =)
Terrance
No puedo instalar unclutter por alguna razón ... Escribo sudo apt-get install uncluttery dice que no hay un paquete despejado. ¿Alguna idea de cómo puedo solucionar esto?
kfirba