RSS/Atom, Emacs and elfeed
Tags: rss, emacs, elfeed
Published: 2022-07-13 16:51:55

---
title: RSS/Atom, Emacs and elfeed
published: true
date: 2022-06-29 19:04:00 UTC
tags: rss,emacs,elfeed
canonical_url: https://blog.dornea.nu/2022/06/29/rss/atom-emacs-and-elfeed/
---

In [my last post](/2022/06/13/rss-and-atom-for-digital-minimalists/) 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](/tags/emacs) (and all the amazing packages) taught me [ORG mode](https://orgmode.org), some basic [Elisp](https://www.gnu.org/software/emacs/manual/html_node/elisp/)and 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](https://github.com/skeeto/elfeed):

> Elfeed is an extensible web feed reader for Emacs, supporting both Atom and RSS. - [Source](https://github.com/skeeto/elfeed)

## Configuration

> My elfeed related configuration is available in [config.org](https://github.com/dorneanu/dotfiles/blob/master/dot_doom.d/config.org#elfeed).

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"))

```

I didn’t like this approach since the initial list was way to big to be managed. Then I came across [elfeed-org](https://github.com/remyhonig/elfeed-org) which lets you organize your feeds in an ORG file.

[![image](https://blog.dornea.nu/posts/img/2022/rss/elfeed-org.png)](/posts/img/2022/rss/elfeed-org.png)
## Workflow

### Daily view

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

[![image](https://blog.dornea.nu/posts/img/2022/rss/elfeed-search.png)](/posts/img/2022/rss/elfeed-search.png)

And this is how I actually consume my feeds:

[![image](https://blog.dornea.nu/posts/img/2022/rss/elfeed-search-workflow.gif)](/posts/img/2022/rss/elfeed-search-workflow.gif)

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](https://getpocket.com) to save links/articles to read later. In `elfeed` I can easily add a link to getpocket (thanks to [pocket-reader.el](https://github.com/alphapapa/pocket-reader.el)). I use these [key bindings](https://github.com/dorneanu/dotfiles/blob/master/dot_doom.d/config.org#elfeed):

```
;; 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)

```

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

## Bookmarks

I use [bookmarks](https://www.gnu.org/software/emacs/manual/html_node/emacs/Bookmarks.html) to specify elfeed filters. This allows me to quickly jump to a certain view without having to change the filter in-between:

[![image](https://blog.dornea.nu/posts/img/2022/rss/bookmarks.png)](/posts/img/2022/rss/bookmarks.png)
## Podcasts

As already described [here](/2022/06/13/rss-and-atom-for-digital-minimalists/#podcasts) I use RSS/Atom feed to regularly check for new podcast episodes. Here’s my workflow:

[![image](https://blog.dornea.nu/posts/img/2022/rss/elfeed-podcasts.gif)](/posts/img/2022/rss/elfeed-podcasts.gif)