summary refs log tree commit diff
path: root/emacs/custom/my-elfeed.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/custom/my-elfeed.el')
-rw-r--r--emacs/custom/my-elfeed.el34
1 files changed, 34 insertions, 0 deletions
diff --git a/emacs/custom/my-elfeed.el b/emacs/custom/my-elfeed.el
index 7bca54f..c774f20 100644
--- a/emacs/custom/my-elfeed.el
+++ b/emacs/custom/my-elfeed.el
@@ -18,6 +18,40 @@
   (elfeed-org)
   (setq rmh-elfeed-org-files (list (expand-file-name "etc/elfeed.org" user-emacs-directory))))
 
+(defun copy-elfeed-link-title-to-org (entry)
+  "Copy the ENTRY title and URL as org link to the clipboard."
+  (interactive)
+  (let* ((link (elfeed-entry-link entry))
+         (title (elfeed-entry-title entry))
+         (titlelink (concat "[[" link "][" title "]]")))
+    (when titlelink
+      (kill-new titlelink)
+      (x-set-selection 'PRIMARY titlelink)
+      (message "Yanked: %s" titlelink))))
+
+(defun elfeed-show-quick-url-note ()
+  "Fastest way to capture entry link to org agenda from elfeed show mode"
+  (interactive)
+  (copy-elfeed-link-title-to-org elfeed-show-entry)
+  (org-capture nil "n")
+  (yank)
+  (org-capture-finalize))
+
+(defun elfeed-search-quick-url-note ()
+  "In search mode, capture the title and link for the selected
+entry or entries in org aganda."
+  (interactive)
+  (let ((entries (elfeed-search-selected)))
+    (cl-loop for entry in entries
+             do (elfeed-untag entry 'unread)
+             when (elfeed-entry-link entry)
+             do (copy-elfeed-link-title-to-org entry)
+             do (org-capture nil "f")
+             do (yank)
+             do (org-capture-finalize)
+             (mapc #'elfeed-search-update-entry entries))
+    (unless (use-region-p) (forward-line))))
+
 (defalias 'elfeed-toggle-star
   (elfeed-expose #'elfeed-search-toggle-all 'star))