diff options
-rw-r--r-- | emacs/custom/my-elfeed.el | 168 |
1 files changed, 83 insertions, 85 deletions
diff --git a/emacs/custom/my-elfeed.el b/emacs/custom/my-elfeed.el index c774f20..9d4125e 100644 --- a/emacs/custom/my-elfeed.el +++ b/emacs/custom/my-elfeed.el @@ -1,96 +1,94 @@ ;;; my-elfeed.el --- Configure elfeed -*- lexical-binding: t -*- + ;;; Commentary: + ;;; Code: -(require 'use-package) - -(use-package elfeed - :ensure t - :init - (setq elfeed-db-directory (expand-file-name "var/elfeed" user-emacs-directory)) - :config - (eval-after-load 'elfeed-search - '(define-key elfeed-search-mode-map (kbd "*") 'elfeed-toggle-star))) - -(use-package elfeed-org - :ensure t - :config - (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)))) +(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-search-mustread-title-face - '((t :foreground "red")) - "Marks a mustread Elfeed entry.") - -(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)))) - -(define-key elfeed-search-mode-map (kbd "d") 'my/elfeed-youtube-dl) -(define-key elfeed-search-mode-map (kbd "t") 'my/elfeed-eww-open) - -(push '(mustread elfeed-search-must-read-title-face) elfeed-search-face-alist) +(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 |