Как я устанавливаю основанное на таймере уведомление?

Будучи навязчивым пользователем компьютера, я - перед всем этим день. Я иногда теряю счет времени, когда я работаю над своим аккомпанементом. Мне нужен сервис уведомления для предупреждения меня текущего времени, или раскрывающимся уведомлением или играемым звуком или оба.

Для всплывающего окна я нашел Бесплатный Настольный стандарт уведомления, который использует API DBus.

Я смог создать уведомление с помощью DFeet, графического проводника DBUS. Я использовал следующие аргументы:

"wakeup", 1234, "", "The time is", "9PM", [], [], 1

Это хорошо работает до сих пор, но как я могу взять его далее отсюда?

  • Как я вызываю это от командной строки?
  • Как я автоматизирую эту команду? cron тем не менее рекомендуемый способ автоматизировать основанные на времени действия?
  • Как я играю звуки наряду со всплывающим окном? Или через FreeDesktop API или через медиаплеер?

Полное решение ценилось бы и возможно полезное для других также.

8
задан 16 August 2011 в 08:57

3 ответа

Так как я не мог использовать dbus-send Я записал сценарий Python вместо этого. pynotify модуль внутренне использует dbus API. Для дополнительных ударов я добавил печенье с предсказанием в сообщении. Работы как очарование:

#!/usr/bin/env python
"""python 2.7 script that creates a notification using pynotify. It shows the current time and a small fortune cookie"""
try:
  import pynotify
  import time
  import subprocess
  if pynotify.init("Wakeup service"):
    subprocess.Popen(["paplay", "/usr/share/sounds/ubuntu/stereo/message.ogg"])

    # You can get more stock icons from here: http://stackoverflow.com/questions/3894763/what-icons-are-available-to-use-when-displaying-a-notification-with-libnotify
    timeStr = time.strftime("%I:%M %p %d %b")
    cookie = subprocess.check_output(["/usr/games/fortune", "-s"])
    n = pynotify.Notification(timeStr, cookie, "/usr/share/app-install/icons/ktimer.png")
    n.set_timeout(1)
    n.show()
  else:
    print "problem initializing the pynotify module"
except Exception as exc:
  print "Exception", exc

Я затем запланировал это использование cron. crontab запись похожа:

0,30 * * * * DISPLAY=:0 ./local/bin/notify_new.py

Update:Added метод для проигрывания звукового аудио импульса использования

7
ответ дан 23 November 2019 в 05:33

Можно отправить сообщения с помощью dbus-отправить команды. Посмотрите man:dbus-посылают за большим количеством деталей об этом.

2
ответ дан 23 November 2019 в 05:33

Можно использовать простой сценарий Python, как это:

#!/usr/bin/python
import dbus
import sys

bus = dbus.SessionBus()

notify = bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications')
method = notify.get_dbus_method('Notify', 'org.freedesktop.Notifications')

method("wakeup", 1234, "", "The time is", "9PM", [], [], 1)
4
ответ дан 23 November 2019 в 05:33

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

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