summaryrefslogtreecommitdiffhomepage
path: root/custom/jao-custom-gnus.el
diff options
context:
space:
mode:
Diffstat (limited to 'custom/jao-custom-gnus.el')
-rw-r--r--custom/jao-custom-gnus.el87
1 files 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)