#!/bin/sh DOUBLE_CHECK=y SESSION_FILE=$HOME/.dbus/default_session if [ "$*" ]; then eval "$("$0")" "$@" exit fi dbus_available() { dbus-send \ --session \ --dest=org.freedesktop.DBus \ --type=method_call \ /org/freedesktop/DBus \ org.freedesktop.DBus.ListNames >/dev/null 2>&1 } dbus_available && exit if [ -r "$SESSION_FILE" ]; then . "$SESSION_FILE" if dbus_available; then cat "$SESSION_FILE" exit fi fi mkdir -p "$HOME"/.dbus dbus-launch --sh-syntax > "$SESSION_FILE".$$ || exit mv "$SESSION_FILE".$$ "$SESSION_FILE" || exit if [ "$DOUBLE_CHECK" ]; then . "$SESSION_FILE" dbus_available || exit fi cat "$SESSION_FILE"