               (read-from-minibuffer "Filter: " elfeed-search-filter)))
     (elfeed-search-update :force)))
 
+;; Bookmarks
+
+(defun elfeed-search-bookmark-handler (record)
+  "Jump to an elfeed-search bookmarked location."
+  (elfeed)
+  (elfeed-search-set-filter (bookmark-prop-get record 'location)))
+
+(defun elfeed-search-bookmark-make-record ()
+  "Return a bookmark record for the current elfeed-search buffer."
+  (let ((tags (nth 1 (elfeed-search-parse-filter elfeed-search-filter))))
+    `(,(format "elfeed %s" elfeed-search-filter)
+      (location . ,elfeed-search-filter)
+      (tags ,@(mapcar #'symbol-name tags))
+      (handler . elfeed-search-bookmark-handler))))
+
 ;;; elfeed-search.el ends here

(require 'cl-lib)
(require 'browse-url)
(require 'wid-edit) ; widget-inactive face

(provide 'elfeed-search)


  (setq major-mode 'elfeed-search-mode
        mode-name "elfeed-search"
        truncate-lines t
        buffer-read-only t
        bookmark-make-record-function #'elfeed-search-bookmark-make-record)
  (buffer-disable-undo)
  (hl-line-mode)
  (make-local-variable 'elfeed-search-entries)
