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