< Marble
Revision as of 15:51, 6 February 2009 by Tampakrap (talk | contribs)


Scripting Marble from the shell using D-BUS

MarbleWidget and MarbleMap provide their full amount of methods as a D-BUS Interface. Therefore you can easily create a shell-script to control Marble using the qdbus command line tool.

Before you start you need to find out the PID of the Marble process: In your script you can do it like this.

marble_pid="$(pidof marble)"

Then you can pass this PID to the actual qdbus call

qdbus org.kde.marble-$marble_pid /MarbleWidget

This call returns a list of all the methods that MarbleWidget supports. From this list you can choose the one that you'd like to call, e.g.

qdbus org.kde.marble-$marble_pid /MarbleWidget org.kde.MarbleWidget.zoomIn

to zoom into the map. Note that for function calls you shouldn't pass the brackets "()".

As a convenient tool you can use qdbusviewer to get a graphical list of the interfaces and methods that get provided through D-BUS.

This article is a stub, please extend it.

Content is available under Creative Commons License SA 4.0 unless otherwise noted.