aboutsummaryrefslogtreecommitdiff
path: root/shellrc-desktop.d/desktop
blob: 64f0431f04ab08cf2c5ae3ca09fc3c13f872484c (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
# vim: ft=sh:
# This is handy only on desktop and is useless on server

alias sdcv='sdcv -c'

# Following section is applicable for any desktop but only for graphics##########
# TODO add check for wayland
[ -z "$DISPLAY" ] && return

alias feh='feh --conversion-timeout 10 -.'


# This function should not be called externaly
# It expects PID of surf instace as first argument and all other arguments should
# be command to be called before kill is sent.
__insurf_callback() {
	local SPID=$1
	shift
	"$@"
	echo kill $SPID SIGHUP
	kill -s SIGHUP $SPID || exit 1
}

# Same as inrun but it opens first argument it founds in surf and then reloads
# that instance automatically.
insurf() {
	(
	set -e
	# Run surf
	surf "$1" &
	local SPID=$!
	trap "kill $SPID; trap '' EXIT; exit 0" EXIT INT QUIT TERM ABRT
	# Insert our callback
	local ISFIRST=true
	for ARG in "$@"; do
		if $ISFIRST; then
			shift $#
			ISFIRST=false
		fi
		set "$@" "$ARG"
		if [ "$ARG" = "--" ]; then
			set "$@" "__insurf_callback" "$SPID"
		fi
	done
	# Run inrun
	inrun "$@"
	)
}