Skip to main content
added 827 characters in body
Source Link
Jesse
  • 267
  • 3
  • 10

Edit Nov 11 I changed my function to be like this now:

(defun start-elfeed (&optional frame)
  "This function will start elfeed and update it.  I think it needs FRAME Passed to it."
  (if (not (get-buffer "*elfeed-search*"))
      (progn
    (elfeed)
    (while (not (get-buffer "*elfeed-search*")))
    (switch-to-buffer "*elfeed-search*")
    )))
(add-hook 'server-visit-hook 'start-elfeed)
(add-hook 'after-make-frame-functions 'start-elfeed)

Now it calls (elfeed) but I don't think it is finished when it continues on to the (switch-to-buffer "*elfeed-search*") function. The *scratch* buffer is still the initial buffer but now there is a buffer called *elfeed-search*, with the RSS feeds in it. It seems like the switch-to-buffer call is being skipped over.

Edit Nov 11 I changed my function to be like this now:

(defun start-elfeed (&optional frame)
  "This function will start elfeed and update it.  I think it needs FRAME Passed to it."
  (if (not (get-buffer "*elfeed-search*"))
      (progn
    (elfeed)
    (while (not (get-buffer "*elfeed-search*")))
    (switch-to-buffer "*elfeed-search*")
    )))
(add-hook 'server-visit-hook 'start-elfeed)
(add-hook 'after-make-frame-functions 'start-elfeed)

Now it calls (elfeed) but I don't think it is finished when it continues on to the (switch-to-buffer "*elfeed-search*") function. The *scratch* buffer is still the initial buffer but now there is a buffer called *elfeed-search*, with the RSS feeds in it. It seems like the switch-to-buffer call is being skipped over.

Source Link
Jesse
  • 267
  • 3
  • 10

Startup Emacs Daemon With Elfeed (RSS Feed Reader) Buffer

What I would like to accomplish is this:

  1. Allow emacs daemon to start with my start up applications like normal
  2. When I open an emacs frame I would like only the first one to start with my rss news feed from elfeed
  3. When I open another frame I would like it to just open to the scratch buffer

I start the emacs daemon upon start up on startup with emacs --daemon added to my Autostart list. I have emacsclient -a "" -c "$@" bound to my launcher on my dock.

In my .emacs file I initialize elfeed just fine but my way of trying to start it is:

(elfeed-update) ;; Update elfeed when daemon starts
(defun start-elfeed ()
  "This function will start elfeed and update it."
  (if (not (get-buffer "*elfeed-search*"))
      (progn
       (elfeed)
       (switch-to-buffer "*elfeed-search*")
    )))
(add-hook 'after-make-frame-functions 'start-elfeed)

Now when I start emacs without the daemon it starts up in the scratch buffer and elfeed has not started, even in a background buffer. When I start it with emacsclient -a "" -c "$@" the daemon seems to start but a frame never pops up. In the terminal I get this error:

*ERROR*: Wrong number of arguments: (lambda nil "This function will start elfeed and update it." (if (not (get-buffer "*elfeed-search*")) (progn (elfeed) (switch-to-buffer "*elfeed-search*")))), 1

I am new to customizing emacs with elisp and could use some help here. Does that error mean that my start-elfeed function has the wrong number of arguments or am I using the after-make-frame-functions hook wrong?

Thank you for any pointers here.

Some other info:

  • Distro: Xubuntu 14.04
  • Emacs 24.5