#+title: My RSS Feeds #+author: Howard Abrams #+date: 2018-08-08 August #+tags: emacs A literate programming file for configuring =elfeed= in Emacs. #+begin_src emacs-lisp :exports none ;;; ha-config --- ElFeed configuration. -*- lexical-binding: t; -*- ;; ;; © 2020-2023 Howard X. Abrams ;; Licensed under a Creative Commons Attribution 4.0 International License. ;; See http://creativecommons.org/licenses/by/4.0/ ;; ;; Author: Howard X. Abrams ;; Maintainer: Howard X. Abrams ;; Created: September 10, 2020 ;; ;; This file is not part of GNU Emacs. ;; ;; *NB:* Do not edit this file. Instead, edit the original literate file at: ;; ~/other/hamacs/ha-feed-reader.org ;; Using `find-file-at-point', and tangle the file to recreate this one . ;; ;;; Code: #+end_src * Configuring Elfeed Let's get our feeds from a collection of org mode files. By default, Doom configures =rmh-elfeed-org-files= to [[file:~/Dropbox/org/elfeed.org][elfeed.org]] in =org-directory=, so that will be fine. #+begin_src emacs-lisp (use-package elfeed :config ;; While I would like to share the /status/ of my reads, so ... (setq elfeed-db-directory "~/dropbox/.elfeed/") ;; Let's limit what is initially displayed, and then expand it: (setq elfeed-search-filter "@6-months-ago +unread -science -funny") ;; While not an elfeed-specific variable, this make reading articles ;; with images easier: (setq pixel-scroll-precision-mode t) (defvar ha-elfeeds-title (concat (all-the-icons-faicon "rss") " Feed Reader")) (major-mode-hydra-define elfeed-search-mode (:title ha-elfeeds-title) ("Feeds" (("U" (elfeed-search-fetch 4) "Refresh Feeds") ("u" elfeed-update "Update Screen") ("f" elfeed-search-live-filter "Filter") ("F" elfeed-search-clear-filter "Clear Filter") ("X" elfeed-unjam "Unjam")) "Entry" (("r" elfeed-search-untag-all-unread "Mark read" :color pink) ("R" ha-elfeed-tag-unread "Mark read/refresh") ("y" elfeed-search-yank "Copy URL")))) (major-mode-hydra-define elfeed-show-mode (:title ha-elfeeds-title) ("Entry" (("n" elfeed-show-next "Next Entry" :color pink) ("p" elfeed-show-prev "Previous Entry" :color pink)) "Read" (("b" elfeed-show-visit "Show in EWW") ("B" elfeed-show-visit-gui "Show in Browser") ("y" elfeed-show-yank "Copy URL")) "Navigation" (("o" link-hint-open-link "Open Link") ("q" bury-buffer "Close") ("Q" delete-window "Close Window"))))) (defun ha-elfeed-tag-unread () (interactive) (elfeed-search-untag-all 'unread) (elfeed-search-update)) #+end_src According to Ben Maughan and [[http://pragmaticemacs.com/emacs/to-eww-or-not-to-eww/][this Pragmatic Emacs essay]], we could easily browse an article in the GUI browser instead of EWW with capital B: #+begin_src emacs-lisp (defun elfeed-show-visit-gui () "Wrapper for elfeed-show-visit to use gui browser instead of eww" (interactive) (let ((browse-url-generic-program "/usr/bin/open")) (elfeed-show-visit t))) #+end_src And some global keys to display them in the =apps= menu: #+begin_src emacs-lisp (ha-leader "a f" `("feed reader" . ,(ha-app-perspective "elfeed" #'elfeed))) #+end_src * The Feeds :elfeed: The [[https://github.com/remyhonig/elfeed-org][elfeed-org]] project configures =elfeed= to read the RSS feeds from an Org file … like this one! #+begin_src emacs-lisp (use-package elfeed-org :after elfeed :config (setq rmh-elfeed-org-files (list (f-join hamacs-source-dir "ha-feed-reader.org"))) (elfeed-org)) #+end_src The feeds that I would to read on Emacs involves longer essays, so I’m decided to trim the list down to avoid duplications with the RSS reader on my phone. ** Software Development :dev: *** Emacs :emacs: **** [[https://planet.emacslife.com/atom.xml][Planet Emacslife]] Currently the best [[https://planet.emacslife.com/][Emacs weblog]] as an aggregator of all things Emacscy. Lots of duplication with what I already follow, so I may have trim things down. **** [[http://planet.emacsen.org/atom.xml][Planet Emacsen]] Was the best overall [[http://planet.emacsen.org/][Emacs weblog]] (in the traditional sense), but has since been replaced. I'll leave it here for a bit. **** [[http://sachachua.com/blog/category/emacs-news/feed][Sacha Chua]] Her curated summary of the world of Emacs is quite helpful (to make sure I don't miss something). **** [[http://www.masteringemacs.org/feed/][Mickey Petersen]] Wrote the wonderful book, [[https://www.masteringemacs.org/][Mastering Emacs]]. **** [[https://www.with-emacs.com/rss.xml][With-Emacs]] Has had some good essays with a bent toward modern updates. **** [[http://emacshorrors.com/feed.atom][Emacs Horrors Blog]] Lovely peelings of the onion's layers. **** [[https://xenodium.com/rss.xml][Álvaro Ramírez]] **** [[http://pragmaticemacs.com/feed/][Ben Maughan]] The /Pragmatic Emacs/ blog. **** [[http://endlessparentheses.com/atom.xml][Endless Parentheses]] Artur Malabarba's blog mostly about Emacs. **** [[http://emacs-fu.blogspot.com/feeds/posts/default][Emacs Fu]] As [[http://emacs-fu.blogspot.com/2008/12/welcome-to-emacs-fu.html][stated here]], a blog mostly dedicated to Emacs tips and tricks. **** [[http://emacsredux.com/atom.xml][Emacs Redux]] Bozhidar Batsov's [[http://emacsredux.com][Emacs-focused blog]]. While it hasn't been updated in about a year (end of 2017), we'll leave it here, as well as his newer, personally-focused blog. **** [[http://nullprogram.com/feed/][Christopher Wellons]] The /null program/ blog, has discussed technical aspects of Emacs, including the use of =elfeed=, which is my current favorite way to read my RSS feeds. **** [[http://www.lunaryorn.com/feed.atom][Sebastian Wiesner]] A personal blog of a Scala engineer that uses Emacs on MacOS. **** [[http://kitchingroup.cheme.cmu.edu/blog/feed/atom][John Kitchin Group]] **** [[http://orgmode.org][Org Mode Announcements]] **** [[http://yqrashawn.com/feeds/lazyblorg-all.atom_1.0.links-and-teaser.xml][infin]] While just starting out, this blogger from China is off to a good start. **** [[http://mbork.pl/?action=rss][Marcin Borkowski]] The Emacs Polish professor and author of =mbork.pl=, and new book on intermediate Lisp programming. **** [[https://irreal.org/blog/?feed=rss2][Irreal]] Jon Sander's blog mostly on Emacs. **** [[https://oremacs.com/atom.xml][(or emacs]] **** [[https://tsdh.org/rss.xml][Tassilo Horn]] A self-proclaimed Emacs addict and Free Software enthusiast from Koblenz, Germany. While the blog is currently short, I have high hopes. **** [[https://emacstil.com/feed.xml][Emacs TIL]] An Emacs-learning blog by Junji Zhi. **** [[https://lepisma.xyz/atom.xml][(car nil)]] Abhinav Tushar's blog is heavily Emacs and org-focused. **** [[https://olddeuteronomy.github.io/index.xml][Emacs Cat]] A new blog about Emacs. **** [[https://tdodge.consulting/blog/rss.xml][Tyler Dodge]] Intrigued with Emacs =org-assistant= project, but a good Emacs blog. *** Programming :programming: **** [[http://swannodette.github.com/atom.xml][David Nolen]] :clojure:clojurescript: While he hasn't updated the blog in a while, keep an eye on his [[http://swannodette.github.com][Github projects]]. **** [[http://gigasquidsoftware.com/atom.xml][Carin Meyer]] :clojure: Thoughtful and inspirational, her creative projects are always fun to explore. **** [[http://blog.fogus.me/feed/][Mike Fogus]] :clojure:clojurescript: /Send More Paramedics/ blog. Wrote /Functional JavaScript/ and, of course, /The Joy of Clojure/. **** [[http://batsov.com/atom.xml][Bozhidar Batsov]] :ruby:cider:emacs: Most prolific engineer, who ran [[http://emacsredux.com][Emacs Redux]], is the principal mind behind the wonderful Cider project. **** [[https://medium.com/feed/@hlship/][Howard Lewis Ship]] :clojure: Personal friend who often has fun interesting projects to keep tabs. **** [[https://cestlaz.github.io/rss.xml][C'est la Z]] Mike Zamansky's posts on Emacs and computer education. ** Role Playing Games :rpg:dnd: Started playing D&D when I was twelve, and while it has a special place in my heart, I actually am *** [[https://www.rascal.news/rss/][Rascal News]] The alternative, independent news about Indie and other RPGs. *** [[https://slyflourish.com/index.xml][Sly Flourish]] The Lazy DM is D&D-focused. *** [[https://dmdavid.com/feed/][DM David]] Generally good DMing advice. *** [[https://soloist.substack.com/feed][The Soloist]] A nice blog about Solo RPGs. *** [[https://solotabletop.blogspot.com/feeds/posts/default?alt=rss][Solo Tabletop Blog]] From the maker of the [[https://www.drivethrurpg.com/en/product/424108/GEMulator?affiliate_id=377194][GEmulator]]. ** Misc :misc: *** [[https://medium.com/feed/the-long-now-foundation][The Long Now]] Always been fascinated with the ideas associated with making a 10,000 year clock. *** [[https://waitbutwhy.com/feed][Wait, But Why?]] Has some good, thought-provoking essays. * Technical Artifacts :noexport: Let's /provide/ a name so we can =require= the file: #+begin_src emacs-lisp :exports none (provide 'ha-feed-reader) ;;; ha-feed-reader.el ends here #+end_src #+description: A literate programming file for configuring elfeed. #+property: header-args:sh :tangle no #+property: header-args:emacs-lisp :tangle yes #+property: header-args :results none :eval no-export :comments no #+options: num:nil toc:t todo:nil tasks:nil tags:nil date:nil #+options: skip:nil author:nil email:nil creator:nil timestamp:nil #+infojs_opt: view:nil toc:t ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js