Новые почтовые уведомления в Gnus для Emacs

Я использую Gnus в Emacs в качестве моего почтового клиента. У меня есть мой .gnus.el, настроенный на периодическую проверку почты [1], но прямо сейчас я не знаю, получил ли я новую почту, не переключаясь на буфер группы. Я хотел бы получить уведомление определенного типа, когда у меня есть новая почта в определенной группе или группах. Я нашел gnus-notify.el [2], но мне не удалось заставить его работать (возможно, из-за моего непонимания относительно того, как правильно его настроить - я новичок в Emacs и Gnus). Может ли кто-нибудь предоставить шаги, которые мне нужно предпринять, чтобы заставить gnus-notify работать правильно или предоставить другой способ получить какой-либо новый индикатор почты с помощью Gnus?

[1]

(gnus-demon-add-handler 'gnus-group-get-new-news 2 t)
(gnus-demon-init)

[2] http://www.emacswiki.org/cgi-bin/wiki/gnus-notify.el

Ответ 1

Здесь есть дополнительная информация:

http://www.emacswiki.org/emacs/GnusBiff

Если вы на Mac, вы можете просто использовать команду growlnotify, чтобы получить хорошее оповещение о новой почте. Обновленная функция обновления mac-biff будет выглядеть примерно так:

(defun mac-biff-update ()
  "Read the mail count from Gnus."
  (let ((buffer (get-buffer "*Group*"))
        (count 0))
    (when buffer
      (with-current-buffer buffer
        (goto-char (point-min))
        (while (re-search-forward mac-biff-mail-re nil t)
          (setq count (+ count (string-to-number (match-string 1)))))))
    (if (> count 0)
          (shell-command
            (format "/usr/local/bin/growlnotify -a Emacs.app -m 'You have %d new messages!'" count)))))

Команда growlnotify - это дополнительный пакет, который может быть установлен из полного файла .dmg..md.

Ответ 2

Я могу порекомендовать gnus-desktop-notify

Здесь также приведен пример настройки настройки growl/Mac.

Обратите внимание, что вы проверяете каждые 2 минуты (2 * 60 с, см. gnus-demon-timestep), только для случая, когда вы не хотите прерывать каждые 2 минуты;)

Ответ 3

  • Загрузите gnus-notify.el здесь и поместите его там, где emacs может его найти (я не мог на всю жизнь сделать el-get -installed verion work. Ну, мне все равно пришлось его взломать, читайте дальше).
  • Поместите это в свой .gnus.el:
(setq gnus-parameters
 '(("INBOX"
    (gnus-use-adaptive-scoring nil)
    (gnus-use-scoring nil)
    (visible . t)
    (display . all)
    (modeline-notify . t)
    )))

затем попробуйте M-x gnus-mst-show-groups-with-new-messages, чтобы убедиться, что он правильно установлен.

(Если у вас есть другие определения gnus-parameters, пусть это будет последний)

Обычно вы должны использовать этот параметр для каждой группы, перейдя в буфер *groups*, наведите курсор на группу, нажмите G p, введите (modeline-notify t) (да, без точки на этот раз и окружен другой парой parens, если это единственный параметр для группы - и да, удалите это завершающее "nil" ) и выйдите и сохраните на C-c C-c, но я нахожу это решение более гибким и портативным.

Возможно, вам придется настроить регулярное выражение, отображающее название группы, поскольку оно предназначено для представления alt.comp.sys.amiga как [acsa 2] ( да, это действительно мертво сейчас), чтобы сказать что-то вроде [perso 12] [work 8], как и я. И вы можете щелкнуть ярлык, чтобы перейти к группе. Очень изящный.