Since the demise of Google Reader, I've been using Feedly to read my streams. Feedly's a nice product and it's been working well for me for quite some time.
A few days ago, I decided to see what emacs had to offer on the feed reader front. One solution was Gnus but then I've never been able to get my head around Gnus. Another was elfeed.
I thought I'd give elfeed a go.
Combined with elfeed-goodies and elfeed-org it's a pretty nice solution. You can easily search by either keywords or tags and tags are particularly easy to set up with elfeed-org.
If I want to display all the items from the last month, I hit s (for search) and enter the query:
For only unread posts:
For unread posts tagged emacs:
@6-months-ago +unread +emacs
And for everything in the past 24 hours, read or not:
It's pretty easy and pretty slick. The only thing missing is easy single key navigation. There's one solution to that problem over at Pragmatic Emacs and I'll present another one in the next two posts.
I'm using some of the code from pragmatic emacs (the functions that start with bjm) which makes things easier when sharing the elfeed database on Dropbox (see the Pragmatic Emacs post above for details) and also a couple of routines I found via web search).
Here's my basic configuration:
(setq elfeed-db-directory "~/Dropbox/shared/elfeeddb") (defun elfeed-mark-all-as-read () (interactive) (mark-whole-buffer) (elfeed-search-untag-all-unread)) ;;functions to support syncing .elfeed between machines ;;makes sure elfeed reads index from disk before launching (defun bjm/elfeed-load-db-and-open () "Wrapper to load the elfeed db from disk before opening" (interactive) (elfeed-db-load) (elfeed) (elfeed-search-update--force)) ;;write to disk when quiting (defun bjm/elfeed-save-db-and-bury () "Wrapper to save the elfeed db to disk before burying buffer" (interactive) (elfeed-db-save) (quit-window)) (defalias 'elfeed-toggle-star (elfeed-expose #'elfeed-search-toggle-all 'star)) (use-package elfeed :ensure t :bind (:map elfeed-search-mode-map ("q" . bjm/elfeed-save-db-and-bury) ("Q" . bjm/elfeed-save-db-and-bury) ("m" . elfeed-toggle-star) ("M" . elfeed-toggle-star) ) ) (use-package elfeed-goodies :ensure t :config (elfeed-goodies/setup)) (use-package elfeed-org :ensure t :config (elfeed-org) (setq rmh-elfeed-org-files (list "~/Dropbox/shared/elfeed.org")))
Check out elfeed and make sure to go to the links provided on the main elfeed page.
Enjoy. Relevant links:
- Video series overview page: