;;; thanos-elfeed.el --- elfeed configuration -*- lexical-binding: t; -*- ;; Copyright (C) 2023 Thanos Apollo ;; Author: Thanos Apollo ;; Keywords: extensions ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮ ;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯ ;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮ ;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫ ;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃ ;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯ ;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃ ;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯ ;;; Code: (require 'elfeed) (require 'elfeed-goodies) (setf elfeed-feeds '(("https://hackaday.com/blog/feed/" hackaday linux) ("https://protesilaos.com/news.xml" protesilaos) ("https://protesilaos.com/codelog.xml" proetesilaos) ("https://guix.gnu.org/feeds/blog.atom" gnu guix) ("https://thanosapollo.com/posts/index.xml" thanos) ("http://nullprogram.com/feed/" emacs linux) ("https://drewdevault.com/blog/index.xml" sourcehut drewdevault) ("https://spacepub.space/feeds/videos.xml?videoChannelId=2" drewdevault video) ("https://odysee.com/$/rss/@DistroTube:2" video dt) ("https://www.youtube.com/feeds/videos.xml?channel_id=UC7YOGHUfC1Tb6E4pudI9STA" video mental) ("https://www.youtube.com/feeds/videos.xml?channel_id=UCAiiOTio8Yu69c3XnR7nQBQ" video daviwil) ("https://videos.lukesmith.xyz/feeds/videos.atom?sort=-publishedAt&isLocal=true" video luke) ("https://www.youtube.com/feeds/videos.xml?channel_id=UCrc2iv2-G1FZ3VscM3zu2jg" video zoogirl) ("https://www.youtube.com/feeds/videos.xml?channel_id=UC0uTPqBCFIpZxlz_Lv1tk_g" video prot) ("https://www.youtube.com/feeds/videos.xml?channel_id=UCq6VFHwMzcMXbuKyG7SQYIg" video moist) ("https://www.youtube.com/feeds/videos.xml?channel_id=UC05XpvbHZUQOfA6xk4dlmcw" video djware) ("https://archlinux.org/feeds/news/" ArchLinux Latest) ("https://www.youtube.com/feeds/videos.xml?channel_id=UCsBjURrPoezykLs9EqgamOA" fireship video) ("https://www.youtube.com/feeds/videos.xml?channel_id=UCl-J-ovSJhA3or73Q2uVpow" medicosperf video) ("https://www.youtube.com/feeds/videos.xml?channel_id=UCSuHzQ3GrHSzoBbwrIq3LLA" naomi video) ("https://www.youtube.com/feeds/videos.xml?channel_id=UCqYPhGiB9tkShZorfgcL2lA" WhatIveLearned video) ("http://wikileaks.org/feed" wikileaks) ("https://hackernoon.com/feed" hackernoon) ("https://sachachua.com/blog/feed/" sacha emacs) ("https://www.youtube.com/feeds/videos.xml?channel_id=UCtMVHI3AJD4Qk4hcbZnI9ZQ" video OrdinaeryGamers) ("https://www.youtube.com/feeds/videos.xml?channel_id=UCl2mFZoRqjw_ELax4Yisf6w" video Louis) ("https://www.youtube.com/feeds/videos.xml?channel_id=UC1yNl2E66ZzKApQdRuTQ4tw " video sabine) ("https://bits.debian.org/feeds/feed.rss" debian linux) ("https://torrentfreak.com/feed" torrentfreak) ("https://www.youtube.com/feeds/videos.xml?channel_id=UCM6SlP9fiwPIjhkWmbg8Ojg" video liberated-programmer) ("https://odysee.com/$/rss/@seytonic:c" video seytonic) ("https://www.youtube.com/feeds/videos.xml?channel_id=UC1yNl2E66ZzKApQdRuTQ4tw" video sabine) ("https://wp.medscape.com/cx/rssfeeds/2700.xml" med medscape) ("https://nyxt.atlas.engineer/feed" nyxt) ("https://www.science.org/action/showFeed?type=etoc&feed=rss&jc=sciimmunol" science))) (defun elfeed-v-mpv (url) "Watch a video from URL in MPV" (start-process-shell-command "elfeed-video" nil (format "mpv \"%s\"" url))) (defun elfeed-view-mpv (&optional use-generic-p) "Play video link with mpv." (interactive "P") (let ((entries (elfeed-search-selected))) (cl-loop for entry in entries do (elfeed-untag entry 'unread) when (elfeed-entry-link entry) do (elfeed-v-mpv it)) (mapc #'elfeed-search-update-entry entries) (unless (use-region-p) (forward-line)))) (setf elfeed-goodies/entry-pane-size 0.55) (elfeed-goodies/setup) (setf eshell-visual-commands '()) (eat-eshell-mode 1) (define-key thanos/applications-map (kbd "f") 'elfeed) (define-key elfeed-search-mode-map (kbd "v") 'elfeed-view-mpv) (define-key elfeed-search-mode-map (kbd "U") 'elfeed-update) (define-key thanos/applications-map (kbd "f") 'elfeed) (provide 'thanos-elfeed) ;;; thanos-elfeed.el ends here