Новые почтовые уведомления в Gnus для Emacs - PullRequest
10 голосов
/ 27 июня 2009

Я использую 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 ]

6 голосов
/ 29 июня 2009

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

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

3 голосов
/ 25 июля 2011

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

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

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

2 голосов
/ 08 марта 2012
  • Загрузите 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] [работа 8] , как я. И вы можете нажать на ярлык, чтобы перейти к группе. Очень изящный.

...