Category Archives: Gnus

Everything is possible, if you a have an extensible email-reading application, written in one of the most powerful languages of the world:

;; Where to save a copy of all outgoing messages.
;; Save a copy in Gmail's special "Sent Mail" folder
;; and another one in "keramida", so that they appear
;; correctly in searches for "label:keramida" too.
(setq gnus-message-archive-group
(list "keramida" "[Gmail]/Sent Mail"))

Mutt scrolls the index of email folders up or down, one line at a time, with the press of a single key: ‘<‘ or ‘>’. This is a very convenient way to skim through email folder listings, so I wrote a small bit of Emacs Lisp to do the same in Gnus tonight.

;;;
;; Scrolling like mutt for group, summary, and article buffers.
;;
;; Being able to scroll the current buffer view by one line with a
;; single key, rather than having to guess a random number and recenter
;; with `C-u NUM C-l' is _very_ convenient. Mutt binds scrolling by one
;; line to '<' and '>', and it's something I often miss when working
;; with Gnus buffers. Thanks to the practically infinite customizability
;; of Gnus, this doesn't have to be an annoyance anymore.
(defun keramida-mutt-like-scrolling ()
"Set up '<' and '>' keys to scroll down/up one line, like mutt."
;; mutt-like scrolling of summary buffers with '<' and '>' keys.
(local-set-key (kbd ">") 'scroll-up-line)
(local-set-key (kbd "<") 'scroll-down-line))
(add-hook 'gnus-group-mode-hook 'keramida-mutt-like-scrolling)
(add-hook 'gnus-summary-mode-hook 'keramida-mutt-like-scrolling)
(add-hook 'gnus-article-prepare-hook 'keramida-mutt-like-scrolling)

This is now the latest addition to my ~/.gnus startup code, and we’re one step closer to making Gnus behave like my favorite old-time mailer.

Emacs has been in “pretest” mode for quite a while now. I haven’t updated the emacs-devel port of FreeBSD for quite a while, but I plan to roll a new snapshot of the the port, which installs from the official pretest tarball of Emacs 22 this weekend, and then another one which installs from a newer CVS snapshot shortly after. Continue reading →