Вопрос

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top