Новые почтовые уведомления в 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

3 ответа

Решение

Здесь есть некоторые дополнительные детали:

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

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

(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 Команда - это необязательный пакет, который можно установить из полного файла Growl.dmg.

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

Есть также пример для настройки Growl/Mac.

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

  • Загрузите gnus-notify.el здесь и поместите его там, где его сможет найти emacs (я не мог заставить себя установить el-get-verion. О, мне все равно пришлось взломать его, читайте дальше) .
  • Поместите это в свой.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) (да, без точки на этот раз и в окружении другой пары символов, если это единственный параметр для группы - и да, удалите этот завершающий 'nil') и выйдите и сохраните, C-c C-c Но я нахожу это решение более гибким и портативным.

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

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