doomemacs/modules/app/rss/config.el

72 lines
2.3 KiB
EmacsLisp
Raw Normal View History

;;; 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")
"Where to look for elfeed.org files, relative to `org-directory'. 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/")
elfeed-enclosure-default-dir (concat doom-local-dir "elfeed/enclosures/")
elfeed-show-entry-switch #'pop-to-buffer
elfeed-show-entry-delete #'+rss/delete-pane
shr-max-image-proportion 0.6)
2017-03-06 22:01:37 -05:00
(set-popup-rule! "^\\*elfeed-entry"
:size 0.75 :side 'bottom
:select t :quit nil :ttl t)
(make-directory elfeed-db-directory t)
2017-03-06 22:01:37 -05:00
;; Ensure elfeed buffers are treated as real
(defun +rss-buffer-p (buf)
(string-match-p "^\\*elfeed" (buffer-name buf)))
(add-to-list 'doom-real-buffer-functions #'+rss-buffer-p nil #'eq)
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)
(add-hook! '(elfeed-show-mode-hook elfeed-search-mode-hook)
(add-hook 'kill-buffer-hook #'+rss/quit nil t))
2017-03-06 22:01:37 -05:00
;; Keybindings
(after! elfeed-show
(define-key! elfeed-show-mode-map
[remap next-buffer] #'+rss/next
[remap previous-buffer] #'+rss/previous))
(when (featurep! :feature evil +everywhere)
(evil-define-key 'normal elfeed-search-mode-map
"q" #'kill-this-buffer
"r" #'elfeed-update
"s" #'elfeed-search-live-filter
(kbd "RET") #'elfeed-search-show-entry
(kbd "M-RET") #'elfeed-search-browse-url)
(evil-define-key 'normal elfeed-show-mode-map
"q" #'elfeed-kill-buffer)
(evil-define-key 'motion elfeed-show-mode-map
"j" #'evil-next-visual-line
"k" #'evil-previous-visual-line)))
2017-03-06 22:01:37 -05:00
2017-03-06 22:01:37 -05:00
(def-package! elfeed-org
:when (featurep! +org)
:after elfeed
2017-03-06 22:01:37 -05:00
:config
(setq rmh-elfeed-org-files
(let ((default-directory org-directory))
(mapcar #'expand-file-name +rss-elfeed-files)))
2017-03-06 22:01:37 -05:00
(elfeed-org))