diff options
Diffstat (limited to 'emacs/custom')
-rw-r--r-- | emacs/custom/my-elfeed.el | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/emacs/custom/my-elfeed.el b/emacs/custom/my-elfeed.el new file mode 100644 index 0000000..7bca54f --- /dev/null +++ b/emacs/custom/my-elfeed.el @@ -0,0 +1,62 @@ +;;; 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)))) + +(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) + +(provide 'my-elfeed) +;;; my-elfeed.el ends here |