From 4f51322552da0f1c4bb9b0ae58daef643f2a331d Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Tue, 23 Jul 2013 15:13:58 -0400 Subject: Add keybinding for level 1 gnus start or switch Create a function that always fetches a specified level even if gnus is already started. This is different from the behavior of both `gnus' and `gnus-other-frame' (although I might be missing a gnus function that already does this). I'm fine frequently fetching level 1 because I reserve this for mail groups (which are local). --- init/km-gnus.el | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'init') diff --git a/init/km-gnus.el b/init/km-gnus.el index 53077ba..d1f53f3 100644 --- a/init/km-gnus.el +++ b/init/km-gnus.el @@ -130,3 +130,20 @@ (setq notmuch-fcc-dirs nil) (setq footnote-section-tag "") + +(defun km/gnus-other-frame-always-fetch (arg) + "Run `gnus-other-frame' and always fetch level ARG. +The default behavior of `gnus-other-frame' is to fetch level ARG +only if gnus is not yet started. Otherwise, it will just switch +to a gnus frame. This function calls `gnus-other-frame', but +fetches level ARG regardless of whether gnus was already running" + (interactive "P") + (let ((need-fetch (gnus-alive-p))) + (gnus-other-frame arg) + (when need-fetch + (gnus-group-get-new-news arg)))) + +;; only check level one (mail) +(global-set-key (kbd "C-c m") '(lambda () + (interactive) + (km/gnus-other-frame-always-fetch 1))) -- cgit v1.2.3