blob: f155eed9d32855f0227fe37ab26df03f012768d8 (
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
|
# vim: ft=sh:
# This is handy only on desktop and is useless on server
alias mutt='neomutt'
alias sdcv='sdcv -c'
# Following section is applicable for any desktop but only for graphics##########
# TODO add check for wayland
[ -z "$DISPLAY" ] && return
# 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 "$@"
)
}
|