summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Vink <mike1994vink@gmail.com>2023-06-25 22:59:54 +0200
committerMike Vink <mike1994vink@gmail.com>2023-06-25 22:59:54 +0200
commit7293411a0ff343101ebe0724900c1c5fac75b645 (patch)
treeb326a73c064d5dfe663ba72be4976130af2dbd46
parent5c5520a55aac8cd2244699cfa0e7fd57b88959f6 (diff)
yank some stuff from lukesmit
-rw-r--r--home/newsboat.nix67
-rw-r--r--shell-scripts/linkhandler26
2 files changed, 72 insertions, 21 deletions
diff --git a/home/newsboat.nix b/home/newsboat.nix
index 3b67c0f..4b9b2fd 100644
--- a/home/newsboat.nix
+++ b/home/newsboat.nix
@@ -22,36 +22,61 @@
{url = "https://istio.io/latest/blog/feed.xml";}
];
extraConfig = ''
- # general settings
- cleanup-on-quit no
- max-items 100
+ #show-read-feeds no
+ auto-reload yes
- # unbind keys
- unbind-key ENTER
- unbind-key j
- unbind-key k
- unbind-key J
- unbind-key K
+ external-url-viewer "urlscan -dc -r 'linkhandler {}'"
- # bind keys - vim style
bind-key j down
bind-key k up
+ bind-key j next articlelist
+ bind-key k prev articlelist
+ bind-key J next-feed articlelist
+ bind-key K prev-feed articlelist
+ bind-key G end
+ bind-key g home
+ bind-key d pagedown
+ bind-key u pageup
bind-key l open
bind-key h quit
+ bind-key a toggle-article-read
+ bind-key n next-unread
+ bind-key N prev-unread
+ bind-key D pb-download
+ bind-key U show-urls
+ bind-key x pb-delete
- # solarized
- color background default default
- color listnormal default default
- color listnormal_unread default default
- color listfocus black cyan
- color listfocus_unread black cyan
- color info default black
- color article default default
+ color listnormal cyan default
+ color listfocus black yellow standout bold
+ color listnormal_unread blue default
+ color listfocus_unread yellow default bold
+ color info red black bold
+ color article white default bold
- # highlights
+ browser linkhandler
+ macro , open-in-browser
+ macro t set browser "qndl" ; open-in-browser ; set browser linkhandler
+ macro a set browser "tsp yt-dlp --embed-metadata -xic -f bestaudio/best --restrict-filenames" ; open-in-browser ; set browser linkhandler
+ macro v set browser "setsid -f mpv" ; open-in-browser ; set browser linkhandler
+ macro w set browser "lynx" ; open-in-browser ; set browser linkhandler
+ macro d set browser "dmenuhandler" ; open-in-browser ; set browser linkhandler
+ macro c set browser "echo %u | xclip -r -sel c" ; open-in-browser ; set browser linkhandler
+ macro C set browser "youtube-viewer --comments=%u" ; open-in-browser ; set browser linkhandler
+ macro p set browser "peertubetorrent %u 480" ; open-in-browser ; set browser linkhandler
+ macro P set browser "peertubetorrent %u 1080" ; open-in-browser ; set browser linkhandler
+
+ highlight all "---.*---" yellow
+ highlight feedlist ".*(0/0))" black
+ highlight article "(^Feed:.*|^Title:.*|^Author:.*)" cyan default bold
+ highlight article "(^Link:.*|^Date:.*)" default default
+ highlight article "https?://[^ ]+" green default
highlight article "^(Title):.*$" blue default
- highlight article "https?://[^ ]+" red default
- highlight article "\\[image\\ [0-9]+\\]" green default
+ highlight article "\\[[0-9][0-9]*\\]" magenta default bold
+ highlight article "\\[image\\ [0-9]+\\]" green default bold
+ highlight article "\\[embedded flash: [0-9][0-9]*\\]" green default bold
+ highlight article ":.*\\(link\\)$" cyan default
+ highlight article ":.*\\(image\\)$" blue default
+ highlight article ":.*\\(embedded flash\\)$" magenta default
'';
};
}
diff --git a/shell-scripts/linkhandler b/shell-scripts/linkhandler
new file mode 100644
index 0000000..f62b581
--- /dev/null
+++ b/shell-scripts/linkhandler
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# Feed script a url or file location.
+# If an image, it will view in sxiv,
+# if a video or gif, it will view in mpv
+# if a music file or pdf, it will download,
+# otherwise it opens link in browser.
+
+if [ -z "$1" ]; then
+ url="$(xclip -o)"
+else
+ url="$1"
+fi
+
+case "$url" in
+ *mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtube.com/shorts*|*youtu.be*|*hooktube.com*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*)
+ setsid -f mpv -quiet "$url" >/dev/null 2>&1 ;;
+ *png|*jpg|*jpe|*jpeg|*gif)
+ curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && sxiv -a "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;;
+ *pdf|*cbz|*cbr)
+ curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && zathura "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;;
+ *mp3|*flac|*opus|*mp3?source*)
+ qndl "$url" 'curl -LO' >/dev/null 2>&1 ;;
+ *)
+ [ -f "$url" ] && setsid -f "$TERMINAL" -e "$EDITOR" "$url" >/dev/null 2>&1 || setsid -f "$BROWSER" "$url" >/dev/null 2>&1
+esac