Новые почтовые уведомления в 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)
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] как и я. И вы можете нажать на ярлык, чтобы перейти к группе. Очень изящно.