Показывать диалоговое окно после периода бездействия

Хорошей отправной точкой может быть Ubuntu Wiki. Особенно для Unity взгляните на проект Ayatana

https://wiki.ubuntu.com/Ayatana

[EDIT] Если вам нравится Python, также взгляните на Quickly

https://wiki.ubuntu.com/Ayatana

Это система управления проектами с некоторыми специальными функциями, такими как упаковка и распространение исходного кода на launchpad.net , что также является хорошим местом для поиска информации

1
задан 13 April 2017 в 15:24

2 ответа

Если вы запустите следующий сценарий в фоновом режиме, он будет проверять время простоя каждые 5 секунд. Если время простоя превышает заданный промежуток времени (в минутах), появится сообщение, определенное в текстовом файле. (через окно 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)

Как использовать

install xprintidle:
sudo apt-get install xprintidle
Скопировать сценарий в пустой файл, установите время простоя (t) в минутах и ​​установите путь к текстовому файлу, содержащему текст сообщения. Сохраните его как set_warning.py Запустите его командой
python3 /path/to/set_warning.py

Как использовать

установить xprintidle:
sudo apt-get install xprintidle
[ ! d6] Способ отображения сообщения может быть «изменен» с другими параметрами zenity.
3
ответ дан 24 May 2018 в 04:40
  • 1
    +1 за «Если ваш учитель просит кофе, немедленно принесите его ему» :-) – Parto 15 August 2014 в 15:20

Вот что я сделал:

xautolock -time 15 -locker "zenity --text='<text here>' --warning"

Я добавил эту строку в качестве записи в сессионных приложениях учетной записи, которая была софт связана с /etc/guest-session/skel, поэтому она будет запускаться каждый раз, когда начинается гостевая сессия.

1
ответ дан 24 May 2018 в 04:40
  • 1
    1. Я не уверен, что это плохая практика – Dollynho 15 August 2014 в 19:36
  • 2
    2. Как заставить параметр --text читать текст из файла? – Dollynho 15 August 2014 в 19:37
  • 3
    2: Попробуйте $(cat someTextFile) вместо исходного текста. – Seth♦ 15 August 2014 в 20:21
  • 4
    @Seth на самом деле это \ " $ (cat someTextFile) \ " (спасибо @ EliahKagan в чате) – Dollynho 15 August 2014 в 21:17

Другие вопросы по тегам:

Похожие вопросы: