summaryrefslogtreecommitdiff
path: root/via-open
blob: 0ed23c01e98a0777c678f2708a0f77e2a830d843 (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" &
			;;
		*)
			$TERMINAL $EDITOR "$arg" &
			;;
		esac
		;;
	esac
done