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/+tools/elfeed
syl20bnr 5a061b3813 core: new layer files packages-config.el and packages-funcs.el
Start to isolate the list of packages. Also we want to define packages
function at the top level of an elisp file in order to not prevent
emacs from knowing where the functions are defined.

This commit has a POC made with elfeed and elixir layers.
2016-01-31 00:03:04 -05:00
..
img add elfeed layer 2015-12-03 21:25:50 -05:00
config.el Deprecation of extensions and <pkg>-excluded-packages variables 2016-01-17 22:06:04 -05:00
packages-config.el core: new layer files packages-config.el and packages-funcs.el 2016-01-31 00:03:04 -05:00
packages.el core: new layer files packages-config.el and packages-funcs.el 2016-01-31 00:03:04 -05:00
README.org Update install layer section in REAMDE.org files 2016-01-06 00:21:55 -05:00

Elfeed layer

/TakeV/spacemacs/media/commit/204b6af424ab84f68327517ae51e67415fb8d242/layers/+tools/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)