Se você executar o seguinte script em segundo plano, ele verificará o tempo ocioso a cada 5 segundos. Se o tempo ocioso exceder um determinado período de tempo (em minutos), uma mensagem aparecerá, definida em um arquivo de texto. (através de uma janela Zenity).
#!/usr/bin/env python3
import subprocess
import time
#########################################
t=15
textfile = "/path/to/message_textfile"
#########################################
with open(textfile, "r") as text:
message = text.read()
while 1!=0:
get_idle = subprocess.Popen(["xprintidle"], stdout=subprocess.PIPE)
result = get_idle.communicate()[0].decode("utf-8")
if int(result)/60000>t:
if warning_given == "yes":
pass
else:
subprocess.Popen(["zenity", "--warning", "--no-wrap", "--text="+message, ])
warning_given = "yes"
else:
warning_given = "no"
time.sleep(5)
Como usar
-
instale xprintidle
:
sudo apt-get install xprintidle
-
Copie o script em um arquivo vazio, defina o tempo ocioso ( t
) em minutos e defina o caminho para o arquivo de texto que contém o texto da mensagem. Salve como set_warning.py
-
Execute-o pelo comando
python3 /path/to/set_warning.py
Notas
- Por conveniência (e para ter controle sobre o layout do texto),
o texto é retirado de um arquivo de texto externo. Devoluções, etc. serão
copiado exatamente do arquivo de texto para sua mensagem. Desde o
A opção
--no-wrap
do zenity é usada, você precisa para usar o
retorna, ou sua mensagem será excessivamente ampla.
- A maneira como a mensagem aparece pode ser "ajustada" com outras opções do zenity.