aboutsummaryrefslogtreecommitdiff
path: root/.local/bin/linkhandler
diff options
context:
space:
mode:
authorawy <awy@awy.one>2025-07-29 03:42:18 +0300
committerawy <awy@awy.one>2025-07-29 03:42:18 +0300
commitef6dff4cce15186a66ba34cdd7bd39958ebf7f58 (patch)
treefcfa61164ca6e79c900b5d11f6afc6b46aaccb84 /.local/bin/linkhandler
downloadhyprdots-ef6dff4cce15186a66ba34cdd7bd39958ebf7f58.tar.gz
first commit
Diffstat (limited to '.local/bin/linkhandler')
-rwxr-xr-x.local/bin/linkhandler32
1 files changed, 32 insertions, 0 deletions
diff --git a/.local/bin/linkhandler b/.local/bin/linkhandler
new file mode 100755
index 0000000..cb12bf9
--- /dev/null
+++ b/.local/bin/linkhandler
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# Feed script a url or file location.
+# If an image, it will view in swayimg,
+# 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="$(wl-paste)"
+else
+ url="$1"
+fi
+
+# Check if the URL is from inv.nadeko.net and adjust it for YouTube
+echo "$url" | rg -q 'inv.nadeko.net/watch'
+if [ $? -eq 0 ]; then
+ url="https://www.youtube.com/watch?v=$(echo "$url" | sed 's/.*inv\.nadeko\.net\/watch?v=\([^&]*\)/\1/')"
+fi
+
+case "$url" in
+ *mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtube.com/v/*|*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|*webp)
+ curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && swayimg "/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