about summary refs log tree commit diff stats
path: root/gnus.el
blob: 185849b0555b5d9f22c1a598e78c40f4df06f2e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
;;; gnus.el -*- lexical-binding: t; coding: utf-8-unix -*-

;; Author: Case Duckworth <acdw@acdw.net>
;; Created: Sometime during Covid-19, 2020
;; Keywords: configuration
;; URL: https://tildegit.org/acdw/emacs

;; This file is NOT part of GNU Emacs.

;;; License:
;; Everyone is permitted to do whatever with this software, without
;; limitation.  This software comes without any warranty whatsoever,
;; but with two pieces of advice:
;; - Don't hurt yourself.
;; - Make good choices.

;;; Code:

;;; Select Methods
(setq gnus-select-method '(nnnil ""))

(setq gnus-secondary-select-methods
      '((nnimap "fastmail.com"
                (nnimap-address "imap.fastmail.com")
                (nnimap-server-port 993)
                (nnimap-stream ssl)
                (nnir-search-engine imap))
        (nntp "news.tilde.club")))

;;; Gnus UI options
(setq gnus-thread-sort-functions '(gnus-thread-sort-by-most-recent-date
                                   (not gnus-thread-sort-by-number))
      gnus-use-cache t
      gnus-summary-thread-gathering-function #'gnus-gather-threads-by-subject
      gnus-thread-hide-subtree t
      gnus-thread-ignore-subject t)

(when window-system
  (setq gnus-sum-thread-tree-indent "  ")
  (setq gnus-sum-thread-tree-root "● ")
  (setq gnus-sum-thread-tree-false-root "○ ")
  (setq gnus-sum-thread-tree-single-indent "◎ ")
  (setq gnus-sum-thread-tree-vertical        "│")
  (setq gnus-sum-thread-tree-leaf-with-other "├─ ")
  (setq gnus-sum-thread-tree-single-leaf     "╰─ "))

(setq gnus-summary-line-format
      (concat
       "%0{%U%R%z%}"
       "%3{│%}" "%1{%d%}" "%3{│%}" ;; date
       "  "
       "%4{%-20,20f%}"               ;; name
       "  "
       "%3{│%}"
       " "
       "%1{%B%}"
       "%s\n"))

(setq gnus-summary-display-arrow t)

(add-hook 'gnus-group-mode-hook #'hl-line-mode)

;;; Sending mail
(setq send-mail-function #'smtpmail-send-it
      message-send-mail-function #'smtpmail-send-it
      smtpmail-smtp-server "smtp.fastmail.com"
      smtpmail-default-smtp-server "smtp.fastmail.com"
      smtpmail-smtp-service 465
      smtpmail-stream-type 'ssl
      smtpmail-smtp-user "acdw@fastmail.com"
      message-kill-buffer-on-exit t)

;;; Packages

;; searching (?)
(require 'nnir)

;; contacts
(setup (:straight bbdb)
  (require 'bbdb)
  (bbdb-initialize 'message 'gnus 'mail)
  (bbdb-insinuate-message)
  (add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus)
  (:option bbdb/gnus-summary-prefer-real-names t
           bbdb/mail-auto-create-p t
           bbdb/news-auto-create-p t
           bbdb-use-pop-up t
           bbdb-offer-save 1
           bbdb-update-records-p t))