2017-06-08 11:47:56 +02:00
|
|
|
;;; app/rss/config.el -*- lexical-binding: t; -*-
|
2017-03-06 22:01:37 -05:00
|
|
|
|
|
|
|
;; This is an opinionated workflow that turns Emacs into an RSS reader, inspired
|
|
|
|
;; by apps Reeder and Readkit. It can be invoked via `=rss'. Otherwise, if you
|
|
|
|
;; don't care for the UI you can invoke elfeed directly with `elfeed'.
|
|
|
|
|
2018-02-17 04:55:57 -05:00
|
|
|
(defvar +rss-elfeed-files (list "elfeed.org")
|
2018-02-19 20:20:25 -05:00
|
|
|
"Where to look for elfeed.org files, relative to `+org-dir'. Can be absolute
|
|
|
|
paths.")
|
2017-03-06 22:01:37 -05:00
|
|
|
|
|
|
|
(defvar +rss-split-direction 'below
|
|
|
|
"What direction to pop up the entry buffer in elfeed.")
|
|
|
|
|
|
|
|
|
|
|
|
;;
|
|
|
|
;; Packages
|
|
|
|
;;
|
|
|
|
|
|
|
|
(def-package! elfeed
|
|
|
|
:commands elfeed
|
|
|
|
:config
|
2017-04-17 02:20:07 -04:00
|
|
|
(setq elfeed-search-filter "@2-week-ago "
|
|
|
|
elfeed-db-directory (concat doom-local-dir "elfeed/db/")
|
2017-04-16 20:36:15 -04:00
|
|
|
elfeed-enclosure-default-dir (concat doom-local-dir "elfeed/enclosures/")
|
2018-01-06 03:27:23 -05:00
|
|
|
elfeed-show-entry-switch #'pop-to-buffer
|
2017-04-17 02:17:10 -04:00
|
|
|
elfeed-show-entry-delete #'+rss/delete-pane
|
2017-04-08 01:31:09 -04:00
|
|
|
shr-max-image-proportion 0.6)
|
2017-03-06 22:01:37 -05:00
|
|
|
|
2018-02-17 04:56:16 -05:00
|
|
|
(set! :popup "^\\*elfeed-entry"
|
|
|
|
'((size . 0.75) (side . bottom))
|
|
|
|
'((select . t) (quit) (transient . t)))
|
|
|
|
|
2017-04-16 20:36:15 -04:00
|
|
|
(make-directory elfeed-db-directory t)
|
|
|
|
|
2017-03-06 22:01:37 -05:00
|
|
|
;; Ensure elfeed buffers are treated as real
|
2017-11-10 00:19:04 +01:00
|
|
|
(push (lambda (buf) (string-match-p "^\\*elfeed" (buffer-name buf)))
|
|
|
|
doom-real-buffer-functions)
|
2017-03-06 22:01:37 -05:00
|
|
|
|
2017-05-14 10:12:41 +02:00
|
|
|
;; Enhance readability of a post
|
|
|
|
(add-hook 'elfeed-show-mode-hook #'+rss|elfeed-wrap)
|
2017-03-06 22:01:37 -05:00
|
|
|
|
2017-05-14 10:12:41 +02:00
|
|
|
(map! (:map (elfeed-search-mode-map elfeed-show-mode-map)
|
2018-02-19 20:20:25 -05:00
|
|
|
[remap kill-this-buffer] #'+rss/quit
|
|
|
|
[remap kill-buffer] #'+rss/quit)
|
2017-03-06 22:01:37 -05:00
|
|
|
|
2017-05-14 10:12:41 +02:00
|
|
|
(:map elfeed-search-mode-map
|
2018-02-17 04:56:27 -05:00
|
|
|
:n "q" #'+rss/quit
|
|
|
|
:n "r" #'elfeed-update
|
|
|
|
:n "s" #'elfeed-search-live-filter
|
|
|
|
:n "RET" #'elfeed-search-show-entry
|
|
|
|
:n "M-RET" #'elfeed-search-browse-url)
|
2017-03-06 22:01:37 -05:00
|
|
|
|
2017-05-14 10:12:41 +02:00
|
|
|
(:map elfeed-show-mode-map
|
|
|
|
:n "q" #'elfeed-kill-buffer
|
|
|
|
:m "j" #'evil-next-visual-line
|
|
|
|
:m "k" #'evil-previous-visual-line
|
2018-02-19 20:20:25 -05:00
|
|
|
[remap next-buffer] #'+rss/next
|
|
|
|
[remap previous-buffer] #'+rss/previous)))
|
2017-03-06 22:01:37 -05:00
|
|
|
|
2017-04-08 01:31:09 -04:00
|
|
|
|
2017-03-06 22:01:37 -05:00
|
|
|
(def-package! elfeed-org
|
2018-02-19 20:20:25 -05:00
|
|
|
:when (featurep! +org)
|
|
|
|
:after elfeed
|
2017-03-06 22:01:37 -05:00
|
|
|
:config
|
|
|
|
(setq rmh-elfeed-org-files
|
2017-09-12 14:52:32 +02:00
|
|
|
(let ((default-directory +org-dir))
|
2017-04-17 02:17:10 -04:00
|
|
|
(mapcar #'expand-file-name +rss-elfeed-files)))
|
2017-03-06 22:01:37 -05:00
|
|
|
(elfeed-org))
|