commit 1688ee78986af9f069da864779db7cdf4f707b7d
parent 6a55b05eb1433f7d95b324b7bf740fa470d53c60
Author: KΓ©vin Le Gouguec <kevin.legouguec@gmail.com>
Date: Sat, 1 Oct 2022 11:55:29 +0200
Use my/centered-mode instead of relying on Gnus layouts
Lots of commands in Gnus buffers try to reinstate the setup defined in
gnus-buffer-configuration, so when eg drafting a message with the
original article displayed on the side, and using P or N to move
around the thread, there ends up being some friction in window
management.
So stop using the Group buffer as a way to left-pad articles; it
doesn't even look good on half-width frames anyway.
Diffstat:
| M | .emacs | | | 10 | ++++++---- |
| M | .gnus | | | 23 | ++++++++++------------- |
2 files changed, 16 insertions(+), 17 deletions(-)
diff --git a/.emacs b/.emacs
@@ -126,6 +126,7 @@
(message "changed from %s to %s" old-width new-width)))
(defvar-local my/centered-width 'fill-column)
+(defvar-local my/centered-set-right-margin nil)
(define-minor-mode my/centered-mode
"Update margins to keep content centered."
@@ -150,11 +151,12 @@
(adjustable-width
(- (window-total-width window)
(+ (fringe-columns 'left) (fringe-columns 'right))))
- (target-margin
+ (left-margin
(when (> adjustable-width target-body-width)
- (/ (- adjustable-width target-body-width) 2))))
- ;; Only set left margin, so that long lines are not truncated.
- (set-window-margins window target-margin))))
+ (/ (- adjustable-width target-body-width) 2)))
+ (right-margin (and my/centered-set-right-margin
+ left-margin)))
+ (set-window-margins window left-margin right-margin))))
(defun my/kill (stuff)
(kill-new stuff)
diff --git a/.gnus b/.gnus
@@ -53,6 +53,16 @@
. "%b %d")
(t
. "%F")))
+
+(add-hook 'gnus-summary-mode-hook
+ (lambda ()
+ (setq fill-column 120)
+ (my/centered-mode)))
+(add-hook 'gnus-article-mode-hook
+ (lambda ()
+ (setq fill-column 80
+ my/centered-set-right-margin t)
+ (my/centered-mode)))
;;; Summary tweaks.
@@ -86,19 +96,6 @@
(setq-local message-subject-re-regexp
my/gnus-summary-normalize-subject)))
-(gnus-add-configuration
- '(summary
- (horizontal 1.0
- (vertical 40 (group 1.0))
- (vertical 1.0 (summary 1.0 point)))))
-(gnus-add-configuration
- '(article
- (horizontal 1.0
- (vertical 40 (group 1.0))
- (vertical 1.0
- (summary 0.25 point)
- (article 1.0)))))
-
(let* ((initials (mapconcat (lambda (s) (substring s 0 1))
(split-string user-full-name)
nil))