diff options
Diffstat (limited to 'gnus-conf.el')
-rw-r--r-- | gnus-conf.el | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/gnus-conf.el b/gnus-conf.el index 39a211a..689a2fa 100644 --- a/gnus-conf.el +++ b/gnus-conf.el @@ -15,6 +15,36 @@ ;; (nnimap-server-port 143)) )) +;;; display using display-buffer + +(defun durand-display-gnus (&rest _args) + "Display the group buffer using display-buffer." + (cond + ((null (get-buffer "*Group*")) + (user-error "No group buffer!")) + (t + (quit-window) + (display-buffer (get-buffer "*Group*"))))) + +(advice-add #'gnus :after #'durand-display-gnus) + +(defun durand-gnus-kill-tab (&rest _args) + "Kill the tab when exiting Gnus." + (cond + ((durand-member "email" + (mapcar (lambda (tab) (cdr (assq 'name tab))) + (funcall tab-bar-tabs-function)) + #'string=) + (tab-bar-close-tab-by-name "email")))) + +(defun durand-gnus-quit () + "Quit and kill tab at the same time." + (interactive) + (bury-buffer) + (durand-gnus-kill-tab)) + +(add-hook 'gnus-exit-gnus-hook #'durand-gnus-kill-tab) + ;;; repunctuate sentences (add-hook 'gnus-part-display-hook 'gnus-treat-repunctuate) @@ -148,7 +178,7 @@ ;;; exiting -(define-key gnus-group-mode-map (vector ?q) #'bury-buffer) +(define-key gnus-group-mode-map (vector ?q) #'durand-gnus-quit) (define-key gnus-group-mode-map (vector ?x) #'gnus-group-exit) ;;; agent key bindings |