DEV Community

Victor Dorneanu
Victor Dorneanu

Posted on • Originally published at blog.dornea.nu on

RSS/Atom, Emacs and elfeed

In my last post I wrote about RSS/Atom and how these technologies can be used to declutter your digital life and reduce your exposure to the attention economy. Emacs (and all the amazing packages) taught me ORG mode, some basic Elispand how to be a minimalist and use just one tool for almost everything.

Staying up-to-date with current technological trends, Security advisories, blog posts from smart people (and many other things) while not having to subscribe to every single newsletter, led me to elfeed:

Elfeed is an extensible web feed reader for Emacs, supporting both Atom and RSS. - Source

Configuration

My elfeed related configuration is available in config.org.

Usually you would organize your feed entries as a list:

;; Somewhere in your .emacs file
(setq elfeed-feeds
      '("http://nullprogram.com/feed/"
        "https://planet.emacslife.com/atom.xml"))

Enter fullscreen mode Exit fullscreen mode

I didn’t like this approach since the initial list was way to big to be managed. Then I came across elfeed-org which lets you organize your feeds in an ORG file.

image

Workflow

Daily view

This is what I get whenever I hit M-x elfeed :

image

And this is how I actually consume my feeds:

image

I usually start with a predefined filter: @1-week-ago +unread +daily -youtube. This gives me all entries:

  • not older than 1 week AND
  • not yet read AND
  • are tagged by daily AND
  • are NOT tagged by youtube

Simple, isn’t it? :) In the gif you can see that I change the filter to also show the entries marked by read. Whenever I want to actually visit an entry link, I press RET to get the excerpt or b to open that specific link in an external browser (or B to open it in an eww buffer).

getpocket integration

If you’ve read my getpocket article last year, you know I use getpocket.com to save links/articles to read later. In elfeed I can easily add a link to getpocket (thanks to pocket-reader.el). I use these key bindings:

;; Define maps
(map! :map elfeed-search-mode-map
    :after elfeed-search
    [remap kill-this-buffer] "q"
    [remap kill-buffer] "q"
    :n doom-leader-key nil
    :n "q" #'+rss/quit
    :n "e" #'elfeed-update
    :n "r" #'elfeed-search-untag-all-unread
    :n "u" #'elfeed-search-tag-all-unread
    :n "s" #'elfeed-search-live-filter
    :n "RET" #'elfeed-search-show-entry
    :n "p" #'elfeed-show-pdf
    :n "+" #'elfeed-search-tag-all
    :n "-" #'elfeed-search-untag-all
    :n "S" #'elfeed-search-set-filter
    :n "b" #'elfeed-search-browse-url
    :n "B" #'elfeed-search-eww-open
    :n "a" #'pocket-reader-elfeed-search-add-link
    :n "y" #'elfeed-search-yank)
(map! :map elfeed-show-mode-map
    :after elfeed-show
    [remap kill-this-buffer] "q"
    [remap kill-buffer] "q"
    :n doom-leader-key nil
    :nm "q" #'+rss/delete-pane
    :nm "a" #'pocket-reader-elfeed-entry-add-link
    :n "B" #'elfeed-show-eww-open
    :nm "o" #'ace-link-elfeed
    :nm "RET" #'org-ref-elfeed-add
    :nm "n" #'elfeed-show-next
    :nm "N" #'elfeed-show-prev
    :nm "p" #'elfeed-show-pdf
    :nm "+" #'elfeed-show-tag
    :nm "-" #'elfeed-show-untag
    :nm "s" #'elfeed-show-new-live-search
    :nm "y" #'elfeed-show-yank)

Enter fullscreen mode Exit fullscreen mode

Whenever I press a in an elfeed related buffer the entries link will be added to getpocket.

Bookmarks

I use bookmarks to specify elfeed filters. This allows me to quickly jump to a certain view without having to change the filter in-between:

image

Podcasts

As already described here I use RSS/Atom feed to regularly check for new podcast episodes. Here’s my workflow:

image

Top comments (0)