#!/bin/zsh # # Start Pidgin and make sure, that the buddylist is shown. # # 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 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