summaryrefslogtreecommitdiff
path: root/.i3/scripts/start_pidgin.sh
diff options
context:
space:
mode:
Diffstat (limited to '.i3/scripts/start_pidgin.sh')
-rwxr-xr-x.i3/scripts/start_pidgin.sh10
1 files changed, 8 insertions, 2 deletions
diff --git a/.i3/scripts/start_pidgin.sh b/.i3/scripts/start_pidgin.sh
index 6fb144b..8261113 100755
--- a/.i3/scripts/start_pidgin.sh
+++ b/.i3/scripts/start_pidgin.sh
@@ -6,13 +6,19 @@
# test for pidgin already running
(( `pgrep -xc pidgin` )) && return
+# start dbus-monitor
+coproc dbus-monitor --profile "interface=im.pidgin.purple.PurpleInterface"
+dbus_pid=$!
+
+# kill it on exit
+TRAPEXIT() { kill $dbus_pid }
+
# start pidgin in background
pidgin &
# wait for the DBus-Service to be available
# we use '--profile' because it renders nicer output
-dbus-monitor --profile "interface=im.pidgin.purple.PurpleInterface" |
-while read line; do
+while read -p line; do
[[ $line =~ 'UpdateIdle$' ]] && break
# if the blist is automatically shown, we exit
# else we would move the focus, which is bad