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