From 04cbee7c294553daf439bb94c3a35f0b28127d34 Mon Sep 17 00:00:00 2001 From: jao Date: Sat, 27 Apr 2024 03:46:24 +0100 Subject: wee gnus clean-ups --- custom/jao-custom-gnus.el | 87 ++++++++++++++++++++++++----------------------- 1 file changed, 44 insertions(+), 43 deletions(-) diff --git a/custom/jao-custom-gnus.el b/custom/jao-custom-gnus.el index bc7ce51..b7eb851 100644 --- a/custom/jao-custom-gnus.el +++ b/custom/jao-custom-gnus.el @@ -1,6 +1,6 @@ ;; gnus configuration -*- lexical-binding: t -*- -;;; Feature switching vars +;;; features (defvar jao-gnus-use-local-imap nil) (defvar jao-gnus-use-leafnode nil) (defvar jao-gnus-use-gandi-imap nil) @@ -9,15 +9,7 @@ (defvar jao-gnus-use-nnml nil) (defvar jao-gnus-use-maildirs nil) (defvar jao-notmuch-enabled nil) - -;;; Startup and kill -(setq gnus-interactive-exit t) - -(defun jao-quit-gnus () (gnus-group-exit) t) - -(add-hook 'kill-emacs-query-functions #'jao-quit-gnus) - -;;; Directories +;;; directories (defun jao-gnus-dir (dir) (expand-file-name dir gnus-home-directory)) @@ -36,10 +28,9 @@ nndraft-directory (jao-gnus-dir "drafts") nnrss-directory (jao-gnus-dir "rss")) -;;; Verbosity +;;; looks +;;;; verbosity (setq gnus-verbose 4) - -;;; Looks ;;;; geometry (defvar jao-gnus-use-three-panes t) (defvar jao-gnus-groups-width 50) @@ -54,10 +45,12 @@ ;; (dolist (m '(calendar-mode org-agenda-mode gnus-group-mode)) ;; (add-to-list 'display-buffer-alist `((major-mode . ,m) (dedicated t)))) + (setq calendar-left-margin 6) + (let ((side-bar '(vertical 1.0 ("inbox.org" 0.4) ("*Org Agenda*" 1.0) - ("*Calendar*" 9))) + ("*Calendar*" 8))) (wide-len jao-gnus-wide-width) (groups-len jao-gnus-groups-width) (summary-len (- jao-gnus-wide-width jao-gnus-groups-width))) @@ -97,7 +90,7 @@ (advice-add 'gnus-mode-line-buffer-identification :override #'identity) (setq gnus-mode-line-image-cache nil) -;;; Search +;;; search (setq gnus-search-use-parsed-queries nil gnus-search-notmuch-raw-queries-p nil gnus-permanently-visible-groups "^nnselect:.*" @@ -139,7 +132,7 @@ ;; (add-to-list 'gnus-parameters '("^nnselect:.*" (nnselect-rescan . t))) -;;; News server +;;; news (defvar jao-gnus-leafnode-spool "/var/spool/news/") (setq gnus-select-method (cond @@ -171,7 +164,7 @@ (dolist (p jao-gnus-leafnode-group-params) (add-to-list 'gnus-parameters p t))) -;;; Mail +;;; mail ;;;; nnmail (setq nnmail-treat-duplicates 'delete nnmail-scan-directory-mail-source-once nil @@ -297,9 +290,8 @@ (add-to-list 'gnus-secondary-select-methods '(nnimap "gandi" (nnimap-address "mail.gandi.net")))) -;;; Groups -(setq gnus-group-line-format - " %m%S%p%3y%P%* %~(pad-right 30)G %B\n" +;;; groups +(setq gnus-group-line-format " %m%S%p%3y%P%* %~(pad-right 30)G %B\n" ;; " %m%S%p%P:%~(pad-right 35)c %3y %B\n" ;; " %m%S%p%3y%P%* %~(pad-right 30)C %B\n" gnus-topic-line-format "%i[ %(%{%n%}%) -- %A ]%v\n" @@ -310,7 +302,7 @@ (add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp) (add-hook 'gnus-group-mode-hook 'gnus-topic-mode) -;;; Summary +;;; summary ;;;; configuration (setq gnus-summary-ignore-duplicates t gnus-suppress-duplicates t @@ -503,7 +495,7 @@ (goto-char (point-max)) (org-capture nil "X")) -;;; Article +;;; article ;;;; config, headers (setq mail-source-delete-incoming t) (setq gnus-gcc-mark-as-read t) @@ -560,8 +552,8 @@ (gnus-article-remove-images))))) (jao-gnus-browse-html))) -;;;; format From: -(require 'shr) +;;;; format from: + (defvar jao-gnus--from-rx (concat "From: \\\"?\\( *" jao-gnus--news-rx "\\)")) @@ -608,7 +600,28 @@ (eval-after-load "message" '(setq message-draft-headers (remove 'Date message-draft-headers))) -;;; Add-ons +;;; daemon and exit +(setq gnus-interactive-exit t) +(defun jao-quit-gnus () (gnus-group-exit) t) +(add-hook 'kill-emacs-query-functions #'jao-quit-gnus) + +;; daemon config +(setq mail-user-agent 'gnus-user-agent) +(setq gnus-asynchronous t) +(setq gnus-use-article-prefetch nil) +(setq gnus-save-killed-list nil) +(setq gnus-check-new-newsgroups nil) + +(require 'gnus-demon) + +(defun jao-gnus--scan () + (let ((inhibit-message t)) + (gnus-demon-scan-news) + (jao-gnus--notify))) + +(gnus-demon-add-handler 'jao-gnus--scan 5 1) + +;;; add-ons ;;;; notifications ;;;;; minibuffer (defvar jao-gnus-tracked-groups @@ -664,22 +677,6 @@ (add-hook 'gnus-summary-exit-hook #'jao-gnus--notify) (add-hook 'gnus-after-getting-new-news-hook #'jao-gnus--notify) -;;;;; daemon config -(setq mail-user-agent 'gnus-user-agent) -(setq gnus-asynchronous t) -(setq gnus-use-article-prefetch nil) -(setq gnus-save-killed-list nil) -(setq gnus-check-new-newsgroups nil) - -(require 'gnus-demon) - -(defun jao-gnus--scan () - (let ((inhibit-message t)) - (gnus-demon-scan-news) - (jao-gnus--notify))) - -(gnus-demon-add-handler 'jao-gnus--scan 5 1) - ;;;;; agenda updates (add-hook 'gnus-summary-exit-hook #'jao-org-agenda) @@ -724,6 +721,10 @@ (add-hook 'jao-afio-switch-hook #'jao-gnus--on-afio-switch) +(defun jao-gnus-refresh-workspace () + (interactive) + (save-window-excursion (calendar) (jao-org-agenda))) + ;;;; gnus-icalendar (require 'ol-gnus) (use-package gnus-icalendar @@ -753,7 +754,7 @@ (with-eval-after-load "consult-recoll" (add-to-list 'consult-recoll-open-fns '("message/rfc822" . jao-gnus-goto-file)))) -;;; Keyboard shortcuts +;;; keyboard shortcuts (define-key gnus-article-mode-map "i" 'jao-gnus-show-images) (define-key gnus-summary-mode-map "i" 'jao-gnus-show-images) (define-key gnus-article-mode-map "\M-g" 'jao-gnus-follow-link) @@ -763,4 +764,4 @@ (define-key gnus-summary-mode-map "X" 'jao-gnus-arXiv-capture) (define-key gnus-summary-mode-map "e" 'jao-gnus-open-enclosure) (define-key gnus-summary-mode-map "\C-l" nil) -(define-key gnus-group-mode-map (kbd "A") 'nil) +(define-key gnus-group-mode-map "a" 'jao-gnus-refresh-workspace) -- cgit v1.2.3