diff options
Diffstat (limited to 'via-open')
-rwxr-xr-x | via-open | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/via-open b/via-open new file mode 100755 index 0000000..6832526 --- /dev/null +++ b/via-open @@ -0,0 +1,56 @@ +#!/bin/bash + +exec &> /dev/null + +while read -r arg; do + # first try matching by filename or pathname + case "${arg,,}" in + w\ *) + target=$(echo "$arg"|cut -d ' ' -f 3-) + wmctrl -a "$target" + ;; + http*) + $BROWSER "$arg" & + ;; + [^/]*) # doesn't start with '/' + sh -c "$arg" + ;; + *.txt) + tabbed -c -r 2 st -w '' -e $EDITOR "$arg" & + # $TERMINAL $EDITOR "$arg" & + ;; + *.pdf | *.epub) + zathura "$arg" & + ;; + *.mp3) + $TERMINAL mpg123 -opulse "$arg" & + ;; + *.od[tsp]|*.doc|*.docx|*.ppt|*.pptx|*.xls|*.xlsx) + libreoffice "$arg" & + ;; + *) + # then try matching by mimetype + mimetype=$(file -Lb --mime-type "$arg") + case "$mimetype" in + text/html) + $BROWSER "$arg" & + ;; + text/* | inode/x-empty | message/rfc822) + tabbed -c -r 2 st -w '' -e $EDITOR "$arg" & + # $TERMINAL $EDITOR "$arg" & + ;; + inode/directory) + cd "$arg" || exit + $TERMINAL & + cd - || exit + ;; + image/*) + sxiv "$arg" & + ;; + *) + exit 1 + ;; + esac + ;; + esac +done |