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.sh24
1 files changed, 24 insertions, 0 deletions
diff --git a/.i3/scripts/start_pidgin.sh b/.i3/scripts/start_pidgin.sh
new file mode 100755
index 0000000..5fbee02
--- /dev/null
+++ b/.i3/scripts/start_pidgin.sh
@@ -0,0 +1,24 @@
+#!/bin/zsh
+#
+# Start Pidgin and make sure, that the buddylist is shown.
+#
+
+# test for pidgin already running
+(( `pgrep -xc pidgin` )) && return
+
+# start pidgin in background
+pidgin &
+
+# wait for the DBus-Service to be available
+# we use '--profile' because it renders nicer output
+coproc dbus-monitor --profile "interface=im.pidgin.purple.PurpleInterface"
+
+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
+ [[ $line =~ 'GtkblistUnhiding$' ]] && return
+done
+
+# if we are here, pidgin is running and the blist is not yet visible
+exec purple-send-async PurpleBlistSetVisible int32:1