diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-02-17 22:23:27 +0000 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-02-17 22:31:40 +0000 |
commit | aca2bcba5a31bdd132b6d29f69b0639ba9972f67 (patch) | |
tree | c3932a8794c62f9edbbca5db14bff32d827168f5 /Emacs | |
parent | 08a092bdd53ddf917615b309578f03e988862713 (diff) | |
download | dotfiles-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')
-rw-r--r-- | Emacs/.config/emacs/config.org | 32 |
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 |