Configuring DBus for Murmur
Since point-to-point DBus connections don't work in Qt yet, you have two options to configure Murmur for dbus use.
A Windows machine
Since Murmur can't run without an active desktop on windows, you can safely ignore this setup. Just make sure your murmur.ini says
Your own machine with root access
If you own the box you're running murmur on, and you have only one murmur process, you'll want to use the system dbus. The first step is creating a new file called /etc/dbus-1/system.d/murmurd.conf
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> <busconfig> <policy user="mumble"> <allow own="net.sourceforge.mumble.murmur"/> </policy> <policy user="root"> <allow own="net.sourceforge.mumble.murmur"/> </policy> <policy context="default"> <allow send_destination="net.sourceforge.mumble.murmur"/> <allow receive_sender="net.sourceforge.mumble.murmur"/> </policy> </busconfig>
Then restart the system dbus daemon. Please note that this configuration allows anyone with a user on your machine to control the murmur process, so you might want to tighten security slightly.
In your murmur.ini, make sure it says
First, we'll have to start a dbus daemon and place the session info somewhere.
dbus-launch --sh-syntax > ~/.dbus.sh source ~/.dbus.sh
Make sure your murmur.ini has
Since there can be many session busses on a system, you'll always need to specify which one to use. So for every new shell you open, you should always
You should not put the above into your .bashrc or similar, as most X sessions will have their own and separate session dbus.
When using the session bus, only the userid who created the bus can use it. Hence, you have to make sure that any scripts you write run with the same user ID.
Making sure it works
Start murmur with the options -fg -v, which will run it in the foreground with full debugging. You should see the line "DBus registration succeeded".
If your distribution includes the full Qt4 tools package, you'll have a program called qdbus which can be used to inspect the dbus system. Try running
qdbus --system net.sourceforge.mumble.murmur /
or if you're using the session bus:
qdbus --session net.sourceforge.mumble.murmur /
You should see a long list of function names. You can actually use the simpler functions directly from qdbus. For example, you can set a new superuser password with
qdbus --system net.sourceforge.mumble.murmur / net.sourceforge.mumble.Meta.setSuperUserPassword 1 supahsecret