12

我在 Emacs 中使用 Gnus 作为我的邮件客户端。我已将 .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

4

3 回答 3

6

这里有一些额外的细节:

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命令是一个可选包,可以从完整的咆哮 .dmg 文件安装。

于 2009-06-29T03:38:41.877 回答
3

我可以推荐gnus-desktop-notify

还有一个配置咆哮/Mac 设置的示例。

另请注意,您每 2 分钟检查一次(2 * 60 秒,请参阅gnus-demon-timestep),只是为了您不想每 2 分钟被打断一次;)

于 2011-07-24T22:18:12.333 回答
3
  • 在此处下载 gnus-notify.el并将其放在 emacs 可以找到的地方(我一辈子都无法让 el-get-installed 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]和我一样。并且您可以单击标签跳转到该组。非常漂亮。

于 2012-03-08T00:58:17.110 回答