Michał Sapka's website

Moving My RSS Reading to Emacs With Elfeed

Since Emacs became my shell of choice1, I am abandoning more and more dedicated applications in favor of different packages. As it turns out, Emacs packages are very feature rich. This time: I moved my RSS reading from newsboat2 to elfeed3.

Elfeed has very simple keybindings:

One huge upside of elfeed compared to newsboat is image support. Emacs is a GUI application, so all images are present in their glory!


My setup is near stock. I have a few dozen feeds that are auto-tagged. Three essential tags are “important”, “news”, and “company”. I want to read each “important”, then I want to see all normal, and finally I can just skim “news” and “company”. Adding auto-tagging is very simple: just define the tag when defining the RSS feed list:

("https://rubenerd.com/feed/" blog important)
("https://www.pine64.org/feed/" company)

Now, each new article will be tagged with matching tags. Elfeed allows to define of custom faces that will be applied to items matching tag5:

(defface important-elfeed-entry
  '((t :foreground "#f77"))
  "Marks an important Elfeed entry."
  :group 'elfeed)
(defface nonimportant-elfeed-entry
  '((t :foreground "#C0C0C0"))
  "Marks an nonimportant Elfeed entry."
  :group 'elfeed)

(push '(important important-elfeed-entry)
(push '(company nonimportant-elfeed-entry)
(push '(news nonimportant-elfeed-entry)

Now important items will be dark red, while company & news will be dark gray

No important things to read at this moment.
No important things to read at this moment.

Elfeed has a few packages expanding its functionality, but I found the default behavior to be exactly right.

  1. Emacs as a Shell ↩︎

  2. Newsboat homepage ↩︎

  3. Elfeed repository on Github ↩︎

  4. The “r” key messes with my muscle memory, as notmuch6 uses “ku” for the same action while “r” will start composing a reply. ↩︎

  5. my elisp-fu not good ↩︎

  6. Posts tagged about notmuch ↩︎