Como saber se o usuário está digitando ativamente no Linux?

2

Eu gostaria de escrever um pequeno roteiro para me perguntar o que estou fazendo em intervalos regulares, mas eu gostaria que não agarrasse o foco se eu estivesse no meio de escrever um email ou preencher uma senha . As duas opções que eu tenho são (1) notify-send / pynotify, o que me permite abrir uma bolha de notificação no canto superior direito da minha tela, o que é perfeito, mas não consigo incluir um campo de entrada de texto; e (2) zenity e similares que abrem uma janela com um campo de texto, mas roubam o foco quando o fazem.

    
por Anthony Towns 16.11.2010 / 20:03

2 respostas

3

Aha, xprintidle parece ser a resposta para meus problemas. Ele rastreia o movimento do mouse, bem como o teclado, mas oferece tempo ocioso em milissegundos, o que parece bom o suficiente.

link

sleep 10 
echo waiting for me not to be busy
while [ "$(xprintidle)" -lt 3000 ]; do sleep 1; done
echo interrupting
(unset WINDOWID; zenity --title "Annoyer" --entry --text "Are we there yet?")
    
por 16.11.2010 / 20:36
2

Se no X, aqui está uma postagem que contém um script monitora /dev/input/event :

O importante comando é:

sudo hexdump -e '48/1 "%x " "\n"' /dev/input/event1 | awk '( $29 == 1) { print "PRESS: " $13 } ( $29 == 0 ) { print "RELEASE: " $13 }'

Naturalmente, você precisa ter sudo de permissões, caso contrário, será o que essa postagem sugere ...

    
por 16.11.2010 / 20:16

Tags