Уведомления о новой почте в 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)
Решение
Здесь есть некоторые дополнительные детали:
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
command - это необязательный пакет, который может быть установлен из полного файла growl .dmg.
Другие советы
Я могу порекомендовать gnus-рабочий стол-уведомлять
Существует также пример настройки growl / Mac setup.
Обратите также внимание, что вы проверяете каждые 2 минуты (2 * 60 секунд, см. gnus-demon-timestep
), просто на тот случай, если вы не хотите, чтобы вас прерывали каждые 2 минуты ;)
- Скачать gnus-notify.el здесь и поместите его туда, где emacs сможет его найти (я ни за что на свете не смог бы заставить работать версию el-get-installed.Ну что ж, мне все равно пришлось это взломать, читайте дальше) .
- Положи это в свой .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.амига как [он же.c.s.a 2] (да, теперь это действительно мертво) сказать что-то вроде [персона 12] [работа 8] как и я.И вы можете щелкнуть по ярлыку, чтобы перейти к группе.Очень изящно.