summaryrefslogblamecommitdiff
path: root/emacs/custom/my-elfeed.el
blob: 9d4125ed03a8eccd35789cc53d5a17b8172c0b4c (plain) (tree)
1
2
3
4
5
6
                                                                
 
               
 

         









                                                                                                              
 


                                                   





































































                                                                              

                    
 
                          
;;; my-elfeed.el --- Configure elfeed -*- lexical-binding: t -*-

;;; Commentary:

;;; Code:

(require 'elfeed)
(require 'elfeed-org)

(with-eval-after-load 'elfeed-search
  '(define-key elfeed-search-mode-map (kbd "*") 'elfeed-toggle-star))

(add-hook 'after-init-hook 'elfeed-org)

(customize-set-variable 'elfeed-search-filter "@4-months-ago +unread")
(customize-set-variable 'rmh-elfeed-org-files (list (expand-file-name "etc/elfeed.org" user-emacs-directory)))

(defalias 'elfeed-toggle-star
  (elfeed-expose #'elfeed-search-toggle-all 'star))

(defface elfeed-face-tag-mustread
  '((t :foreground "#f00"))
  "This is a custom font face for the `mustread' tag in Elfeed."
  :group 'elfeed)

(push '(mustread elfeed-face-tag-mustread)
      elfeed-search-face-alist)

;; (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))))


;; (defun my/elfeed-eww-open (&optional use-generic-p)
;;   "open with eww"
;;   (interactive "P")
;;   (let ((entries (elfeed-search-selected)))
;;     (cl-loop for entry in entries
;;              do (elfeed-untag entry 'unread)
;;              when (elfeed-entry-link entry)
;;              do (eww-browse-url it))
;;     (mapc #'elfeed-search-update-entry entries)
;;     (unless (use-region-p) (forward-line))))


;; (defun my/yt-dlp-it (url)
;;   "Downloads the URL in an async shell."
;;   (let ((default-directory "~/media/videos"))
;;     (async-shell-command (format "yt-dlp %s" (shell-quote-argument url)))))

;; (defun my/elfeed-youtube-dl (&optional use-generic-p)
;;   "Youtube-DL link."
;;   (interactive "P")
;;   (let ((entries (elfeed-search-selected)))
;;     (cl-loop for entry in entries
;;              do (elfeed-untag entry 'unread)
;;              when (elfeed-entry-link entry)
;;              do (my/yt-dlp-it it))
;;     (mapc #'elfeed-search-update-entry entries)
;;     (unless (use-region-p) (forward-line))))

(provide 'my-elfeed)

;;; my-elfeed.el ends here