Escondendo o mouse após alguns segundos ocioso no display X

7

Eu tenho um aplicativo de quiosque em execução no Ubuntu Server 14.04.3 com o Google Chrome e X display (xorg e xsession).

Atualmente eu tenho algum script para esconder o mouse depois de 2 segundos de estar ocioso e quando o usuário tenta mover o mouse ele aparece. Eu simplesmente aproveito o cursor:none em uma sobreposição invisível injetada e removo essa sobreposição quando necessário.

Parece que quando eu inicializo o quiosque, o código é executado como esperado e posso ver a sobreposição inserida, mas como o mouse foi apenas "carregado", ele não desaparece até que eu faça um pequeno movimento com ele. Parece que o navegador não detecta o mouse até que eu faça um pequeno movimento com ele, o que resulta no mouse sendo mostrado no meio da tela. Desde que o problema não está relacionado ao meu código, pois parece executar muito bem.

O que eu quero fazer é que, se o mouse não tiver sido movido por 2 segundos, oculte-o. Quando o usuário tentar mover o mouse, mostre-o novamente. A solução tem que funcionar imediatamente após inicializar o display X, então quando eu inicializo o display X o mouse está no meio da tela e mesmo que eu não toque no boot ele irá desaparecer após 2 segundos de inatividade. Eu acho que preciso conseguir isso mexendo com o display X em vez de depender do meu código, já que o mouse não é detectado quando o quiosque é inicializado recentemente.

É possível fazer uma coisa dessas com o display X?

    
por kfirba 29.09.2015 / 18:09

1 resposta

10

Existe um aplicativo chamado unclutter que fará isso. Instale-o digitando o seguinte em uma janela de terminal:

sudo apt-get install unclutter

depois de instalado, você pode alterar o tempo limite para 2 segundos no seguinte arquivo:

/etc/default/unclutter

e altere a seguinte linha:

EXTRA_OPTS="-idle 1 -root"

para

EXTRA_OPTS="-idle 2 -root"

isso também é iniciado automaticamente quando o sistema é inicializado.

Para que seja iniciado agora sem o reinício do sistema, digite o seguinte:

nohup unclutter -idle 2 &

EDITAR:

Se não for encontrado para a instalação, edite o arquivo /etc/apt/sources.list e certifique-se de que as seguintes linhas não sejam comentadas # out:

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

Se eles estiverem comentados, remova o # na frente da linha, execute sudo apt-get update para atualizar os repositórios e execute novamente o sudo apt-get install unclutter .

Se eu executar os seguintes comandos, podemos ver que o aplicativo unclutter vem dos repositórios 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 <[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 isso ajude!

    
por Terrance 12.10.2015 / 17:25