summaryrefslogtreecommitdiff
path: root/.local/bin
diff options
context:
space:
mode:
Diffstat (limited to '.local/bin')
-rwxr-xr-x.local/bin/linkhandler37
1 files changed, 37 insertions, 0 deletions
diff --git a/.local/bin/linkhandler b/.local/bin/linkhandler
new file mode 100755
index 0000000..f641419
--- /dev/null
+++ b/.local/bin/linkhandler
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+note()
+{
+ command -v notify-send > /dev/null &&
+ notify-send " linkhandler" "$1"
+}
+
+main()
+{
+ [ -z "$1" ] &&
+ exec "${BROWSER:-firefox}"
+
+ case "$1" in
+ *mp3|*flac|*opus|*mkv|*webm|*mp4|*youtube.com/watch*|\
+ *youtube.com/playlist*|*youtu.be*|*bitchute.com*|*videos.lukesmith.xyz*|\
+ *piped.kavin.rocks*|*inv.vern.cc*|*yewtu.be*)
+ note "streaming media"
+ exec mpv -quiet "$1" > /dev/null 2>&1
+ ;;
+ *.png|*.jpg|*.jpeg|*.gif|*.webp|*.pdf|*.cbz|*.cbr)
+ note "processing file"
+ curl -sL "$1" > "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" &&
+ exec xdg-open "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" > /dev/null 2>&1 &
+ ;;
+ *.cpp|*.c|*.sh|*.txt)
+ note "processing text"
+ curl -sL "$1" > "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" &&
+ exec "$TERMINAL" -e xdg-open "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" > /dev/null 2>&1 &
+ ;;
+ *)
+ exec "$BROWSER" "$1" >/dev/null 2>&1
+ ;;
+ esac
+}
+
+main "$@"