diff options
author | Michał M. Sapka <michal@sapka.me> | 2023-05-06 19:51:42 +0200 |
---|---|---|
committer | Michał M. Sapka <michal@sapka.me> | 2023-05-06 19:51:42 +0200 |
commit | a9bab9ba1ed253573c38c619ac8c117585424c4c (patch) | |
tree | e3f0a36a455ea63720f0499a7f9ef28b029c5295 /content | |
parent | e3cc74c4b20169e6346f701192e9b0d7f5a3f692 (diff) |
feat: article for 2023-05-06
Diffstat (limited to 'content')
-rw-r--r-- | content/2023/moving-my-rss-reading-to-emacs-with-elfeed.md | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/content/2023/moving-my-rss-reading-to-emacs-with-elfeed.md b/content/2023/moving-my-rss-reading-to-emacs-with-elfeed.md new file mode 100644 index 0000000..de5bff4 --- /dev/null +++ b/content/2023/moving-my-rss-reading-to-emacs-with-elfeed.md @@ -0,0 +1,61 @@ +--- +title: "Moving My RSS Reading to Emacs With Elfeed" +category: "software" +abstract: It's even better now than it newsboat. +date: 2023-05-06T19:44:40+02:00 +year: 2023 +draft: false +tags: +- Emacs +- elfeed +- RSS +- newsboat +--- +Since Emacs became my [shell of choice](/2023/emacs-as-a-shell/), 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 [newsboat](https://newsboat.org/) to [elfeed](https://github.com/skeeto/elfeed). + +Elfeed has very simple keybindings: +- g will refresh the items list +- G will refresh the items list and fetch new items +- r will mark currently selected item is read (remove unread tag) +- b will open item in the browser + +The "r" key messes with my muscle memory, as [notmuch](/tags/notmuch/) uses "ku" for the same action while "r" will start composing a reply. + +One huge upside of elfeed compared to newsboat is image support. Emacs is a GUI application, so all images are present in their glory! + +{{<img-center "elfeed-details.png" "Images!">}} + +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 tag: + +``` +(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) + elfeed-search-face-alist) +(push '(company nonimportant-elfeed-entry) + elfeed-search-face-alist) +(push '(news nonimportant-elfeed-entry) + elfeed-search-face-alist) +``` + +Now important items will be dark red, while company & news will be dark gray (please note that my elisp-fu not good). + +{{<img-center "elfeed-list.png" "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. + |