This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+web-services/elfeed/README.org
2016-04-12 23:31:38 -04:00

5.2 KiB

Elfeed layer

/TakeV/spacemacs/media/commit/9fb5086fd12ed29ae3b3412a7b3f0a6c07130600/layers/+web-services/elfeed/img/elfeed.png

Description

This layer enables Elfeed, a web feeds client which supports both Atom and RSS feeds. It'll optionally enable supporting packages, such as elfeed-web and elfeed-org.

Install

Layer

To use this configuration layer, add it to your ~/.spacemacs. You will need to add elfeed to the existing dotspacemacs-configuration-layers list in this file.

By default, elfeed stores its database under ~/.elfeed.

Setup feeds

With Org

It is recommended to manage your feeds list and tags via org files, this is possible thanks to elfeed-org package. To define a list of org files:

(elfeed :variables rmh-elfeed-org-files (list "~/.emacs.d/private/elfeed1.org"
                                              "~/.emacs.d/private/elfeed2.org"))

Checkout elfeed-org documentation to see the format of that file.

Here is an example of such a file (note the usage of org tags to tag your feeds)

 * Blogs                                                              :elfeed:
 ** entry-title: \(linux\|linus\|ubuntu\|kde\|gnome\)                  :linux:
 ** http://git-annex.branchable.com/design/assistant/blog/index.rss :mustread:
 ** http://feeds.feedburner.com/InformationIsBeautiful
 ** [[http://orgmode.org][Org Mode Links supported as well]]
 ** Software Development                                                 :dev:
 *** Emacs                                                    :emacs:mustread:
 **** http://www.terminally-incoherent.com/blog/feed
 **** http://nullprogram.com/feed
 **** entry-title: \(emacs\|org-mode\)
 **** http://planet.emacsen.org/atom.xml
 *** Web Development                                                     :web:
 **** http://planet.phpunit.de/atom.xml
 **** http://feeds.feedburner.com/symfony/blog
 **** http://feeds.feedburner.com/qooxdoo/blog/content
 *** Eclipse                                                         :eclipse:
 **** http://blog.eclipse-tips.com/feeds/posts/default?alt=rss
 **** http://ed-merks.blogspot.com/feeds/posts/default
 **** http://feeds.feedburner.com/eclipselive
 **** http://www.fosslc.org/drupal/rss.xml                             :video:

Manually

To explicitly setup the list of feeds, set the value of elfeed-feeds variable in your .spacemacs file.

(elfeed :variables
   elfeed-feeds '(("http://nullprogram.com/feed/" blog emacs)
                  "http://www.50ply.com/atom.xml"  ; no autotagging
                  ("http://nedroid.com/feed/" webcomic)))

Check documentation for elfeed-feeds for more information about this variable (SPC h d v elfeed-feeds RET).

Server

Elfeed comes with a simple web interface to browse its database. You can manually start it by calling elfeed-web-start or by setting elfeed-enable-web-interface to t which will start the web automatically when Emacs starts.

(elfeed :variables elfeed-enable-web-interface t)

By default web interface is available on localhost:8080/elfeed. You can change the default port by changing the value of httpd-port.

Key Bindings

Key Binding Description
SPC a f start elfeed

Use SPC ? to discover major-mode key bindings.

Key Binding Description
c compact feed db
gr update all the feeds
gR force refresh view of the feed listing
gu unjam elfeed if it is slow due to slow connection
o load OPML
q quit main window, or item view buffer.
w start web server
W stop web server

In elfeed-show mode, you can use the following bindings:

Key Binding Description
q quit show window
C-j Next entry
C-k Previous entry

Troubleshooting

Database empty at first start

Be sure that you added some feeds first then load your feeds with gr in evilified buffer. Or M-x elfeed-update.

Queue timeout exceeded

If you are getting "Queue timeout exceeded" errors, try increasing the value of url-queue-timeout.

(elfeed :variables url-queue-timeout 30)