LINUX.ORG.RU

[emacs] appt-add не работает

 


0

1

Напоминания не выводятся. Например, в 18:00 добавляю оповещения:

M-x appt-add RET 18:01 RET text RET
M-x appt-add RET 18:06 RET text2 RET
Жду до заданного времени - ничего не выводится. Если не ждать, а вызвать appt-check, то напоминание происходит.

Настройки appt:

(setq
 appt-message-warning-time 5 
 appt-display-mode-line t)

(appt-activate 1)

В чем может быть дело и как это исправить?

P. S. Если поставить (setq appt-message-warning-time 15) все работает (за 15 минут, за 10 и за 5 до начала Emacs напоминает о «text»).



Последнее исправление: ipc (всего исправлений: 4)
Ответ на: комментарий от ipc

А это «To enable appointment notification, you must enable the time display feature of Emacs, M-x display-time» есть?

anonymous
()
Ответ на: комментарий от Zubok

anonymous

А это «To enable appointment notification, you must enable the time display feature of Emacs, M-x display-time» есть?

Есть.

$ grep display-time .emacs
'(display-time-24hr-format t)
(display-time)                 ;; time display is required for this...
Appt-часть .emacs полностью:
(defun djcb-popup (title msg &optional icon sound)
  "Show a popup if we're on X, or echo it otherwise; TITLE is the title
of the message, MSG is the context. Optionally, you can provide an ICON and
a sound to be played"

  (interactive)
  (when sound (async-shell-command
               (concat "mplayer -af volume=30.1:1 -really-quiet \"" sound "\" 2> /dev/null")))
  (if (eq window-system 'x)
      (shell-command (concat "notify-send "

                             (if icon (concat "-i " icon) "")
                             " '" title "' '" msg "'"))
    ;; text only version

    (message (concat title ": " msg))))

;; the appointment notification facility
(setq
 appt-message-warning-time 5 ;; warn 15 min in advance

 appt-display-mode-line t     ;; show in the modeline
 appt-display-format 'window) ;; use our func

(appt-activate 1)              ;; active appt (appointment notification)
(display-time)                 ;; time display is required for this...

;; update appt each time agenda opened
(add-hook 'org-finalize-agenda-hook 'org-agenda-to-appt)

;; our little façade-function for djcb-popup
(defun djcb-appt-display (min-to-app new-time msg)
  (djcb-popup (format "Appointment in %s minute(s)" min-to-app) msg 
              "/usr/share/icons/gnome/32x32/status/appointment-soon.png"
              "~/telephone-ring-1.mp3"))
(setq appt-disp-window-function (function djcb-appt-display))

Zubok

Ну, странно. У меня работает нормально. Emacs 22.2

GNU Emacs 23.2.1. Чему у тебя равно appt-message-warning-time?

ipc
() автор топика
Ответ на: комментарий от ipc

GNU Emacs 23.2.1. Чему у тебя равно appt-message-warning-time?

Проверил с твоими параметрами, прописав в ~/.emacs

(setq appt-message-warning-time 5
      appt-display-mode-line t)

(appt-activate 1)
Zubok ★★★★★
()
Ответ на: комментарий от anonymous

>Попробуй оставь только те настройки, которые ты указал вначале.

Перепроверил, запустив emacs -q (т. е. без загрузки .emacs) и «вычислив» только приведенные в начала темы настройки с добавлением (display-time).

Результат, при добавлении оповещения:
1) на текущее_время + 1 минута - выдает его в указанное время;
2) на текущее_время + 6 минут - выводит сообщение за 5 минут и за 2 минуты до срока (_во время_ ничего не отображая).

При этом в строке в Mode Line «App't in _ min» стабильно показывает время, на минуту отстающее от текущего (если до срока по $ date осталось 2 минуты, Emacs выводит все 3). А вот в часах (display-time) там же время правильное.

Заглянул в appt.el.gz и понял почему (см. 2) и appt in _ min): таймер, по которому проверяется время до оповещения, работает с интервалом 60 секунд (жестко прописанном, без возможности customize), и, естественно, периодически перескакивает через точное время. Причем в часах time.el.gz (т. е. display-time) тоже 60 секунд интервал и им это не мешает.

P. S. Перекрыл функцию (appt-activate) своей, с установкой интервала таймера на 10 секунд. Работает, отображая предварительные (appt-message-warning-time) оповещения несколько раз в минуту, что меня больше устраивает. Не понимаю, как люди им (appt) пользуются и до сих пор ничего не поменяли (впору вместо точного времени в appt ввести слова «позже», «попозже» и «еще позже»).

ipc
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.