From f5da2dffd8bfe814e92c143b9ab492d63e1dfa33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Tue, 27 Sep 2022 09:47:42 +0200 Subject: [PATCH] feat(newsboat): add odysee to linkhandler --- configs/newsboat.nix | 33 +++++++++++++++++++++++++++------ packages/scripts/default.nix | 6 ------ 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/configs/newsboat.nix b/configs/newsboat.nix index 104beb8..33797e6 100644 --- a/configs/newsboat.nix +++ b/configs/newsboat.nix @@ -11,7 +11,28 @@ youtube-download = "${pkgs.ts}/bin/ts ${pkgs.yt-dlp}/bin/yt-dlp -f ${ytdl-format} --add-metadata"; newsboat-home = "${config.users.users.me.home}/cloud/Seafile/Documents/newsboat"; - linkhandler-bin = "${scripts.linkhandler}/bin/linkhandler"; + linkhandler = pkgs.writers.writeDashBin "linkhandler" '' + # 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 no url given. Opens browser. For using script as $BROWSER. + [ -z "$1" ] && { "$BROWSER"; exit; } + + case "$1" in + *mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtu.be*|*hooktube.com*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*) + setsid -f mpv -quiet "$1" >/dev/null 2>&1 ;; + *png|*jpg|*jpe|*jpeg|*gif) + curl -sL "$1" > "/tmp/$(echo "$1" | sed "s/.*\///")" && sxiv -a "/tmp/$(echo "$1" | sed "s/.*\///")" >/dev/null 2>&1 & ;; + *mp3|*flac|*opus|*mp3?source*) + setsid -f tsp curl -LO "$1" >/dev/null 2>&1 ;; + *) + if [ -f "$1" ]; then "$TERMINAL" -e "$EDITOR" "$1" + else setsid -f "$BROWSER" "$1" >/dev/null 2>&1; fi ;; + esac + ''; newsboat-config = pkgs.writeText "config" '' auto-reload no @@ -25,12 +46,12 @@ text-width 85 - external-url-viewer "${pkgs.urlscan}/bin/urlscan -dc -r '${linkhandler-bin} {}'" - browser ${linkhandler-bin} + external-url-viewer "${pkgs.urlscan}/bin/urlscan -dc -r '${linkhandler} {}'" + browser ${linkhandler} macro , open-in-browser - macro c set browser "${pkgs.xsel}/bin/xsel -b <<<" ; open-in-browser ; set browser ${linkhandler-bin} - macro v set browser "${pkgs.utillinux}/bin/setsid -f ${pkgs.mpv}/bin/mpv" ; open-in-browser ; set browser ${linkhandler-bin} - macro y set browser "${youtube-download}" ; open-in-browser ; set browser ${linkhandler-bin} + macro c set browser "${pkgs.xsel}/bin/xsel -b <<<" ; open-in-browser ; set browser ${linkhandler} + macro v set browser "${pkgs.utillinux}/bin/setsid -f ${pkgs.mpv}/bin/mpv" ; open-in-browser ; set browser ${linkhandler} + macro y set browser "${youtube-download}" ; open-in-browser ; set browser ${linkhandler} bind-key j down bind-key k up diff --git a/packages/scripts/default.nix b/packages/scripts/default.nix index e8ec18b..a5f13a6 100644 --- a/packages/scripts/default.nix +++ b/packages/scripts/default.nix @@ -278,12 +278,6 @@ in name = "nix-git"; }; - linkhandler = wrapScript { - packages = [pkgs.utillinux pkgs.mpv pkgs.curl pkgs.gnused pkgs.sxiv pkgs.ts]; - script = "${voidrice}/.local/bin/linkhandler"; - name = "linkhandler"; - }; - mansplain = wrapScript { packages = [pkgs.man pkgs.zathura pkgs.dmenu pkgs.gnused]; script = ./mansplain.sh;