summaryrefslogtreecommitdiff
path: root/via-open
blob: 0da2642f2d6d615ea8450873775839f4b640771c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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 $TERMINAL -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 $TERMINAL -w '' -e $EDITOR "$arg" &
                    $TERMINAL $EDITOR "$arg" &
                    ;;
                inode/directory)
                    cd "$arg" || exit
                    $TERMINAL &
                    cd - || exit
                    ;;
                image/*)
                    sxiv "$arg" &
                    ;;
                *)
                    exit 1
                    ;;
            esac
            ;;
    esac
done