aboutsummaryrefslogtreecommitdiff
path: root/Emacs/.config/emacs
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2025-02-17 22:23:27 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2025-02-17 22:31:40 +0000
commitaca2bcba5a31bdd132b6d29f69b0639ba9972f67 (patch)
treec3932a8794c62f9edbbca5db14bff32d827168f5 /Emacs/.config/emacs
parent08a092bdd53ddf917615b309578f03e988862713 (diff)
downloaddotfiles-aca2bcba5a31bdd132b6d29f69b0639ba9972f67.tar.gz
dotfiles-aca2bcba5a31bdd132b6d29f69b0639ba9972f67.tar.bz2
dotfiles-aca2bcba5a31bdd132b6d29f69b0639ba9972f67.zip
Rework +elfeed/dispatch-entry
Provide a set of possible actions for the user to choose. Currently supported actions are: - yank URL - open in EWW - open in empv
Diffstat (limited to 'Emacs/.config/emacs')
-rw-r--r--Emacs/.config/emacs/config.org32
1 files changed, 21 insertions, 11 deletions
diff --git a/Emacs/.config/emacs/config.org b/Emacs/.config/emacs/config.org
index 2d4cf50..68ef458 100644
--- a/Emacs/.config/emacs/config.org
+++ b/Emacs/.config/emacs/config.org
@@ -3728,19 +3728,29 @@ to elfeed for loading the system.
(with-eval-after-load "evil-collection"
(evil-collection-elfeed-setup))
- (advice-add 'elfeed-search-show-entry :after #'+elfeed/dispatch-entry)
-
- (defun +elfeed/dispatch-entry (entry)
- "Process each type of entry differently.
- e.g., you may want to open HN entries in eww."
- (let ((url (elfeed-entry-link entry)))
- (pcase url
- ((pred (string-match-p "https\\:\\/\\/www.youtube.com\\/watch"))
+ (defvar +elfeed/dispatch-options
+ '(("Yank URL" .
+ (lambda (url)
+ (kill-new url)
+ (message "elfeed: Yanked %s" url)))
+ ("Open via EWW" . eww)
+ ("Play via EMPV" .
+ (lambda (url)
(if (member 'empv features)
- ;; FIXME: This is an internal macro
+ ;; FIXME: Using internal macro
(empv--with-video-enabled
- (empv-play-or-enqueue url))))
- (_ (eww url))))))
+ (empv-play-or-enqueue url))
+ (message "elfeed: EMPV is not available")))))
+ "Options available on entering an elfeed post.")
+
+ (defun +elfeed/dispatch-entry (entry)
+ "Provide some extra options once you've clicked on an article."
+ (let ((choice (completing-read "Choose action: " (mapcar #'car +elfeed/dispatch-options)))
+ (url (elfeed-entry-link entry)))
+ (if-let ((option (cdr (assoc choice +elfeed/dispatch-options #'string=))))
+ (funcall option url))))
+
+ (advice-add 'elfeed-search-show-entry :after #'+elfeed/dispatch-entry))
#+end_src
*** Elfeed-org
#+begin_src emacs-lisp