Is there such a thing as list of available D-Bus services? I've stumbled upon a few, like those provided by NetworkManager, Rhythmbox, Skype, HAL.

I wonder if I can find a rather complete list of provided services/interfaces.


On QT setups (short commands and clean, human readable output) you can run:


will list list the services available on the session bus and

qdbus --system

will list list the services available on the system bus.

On any setup you can use dbus-send

dbus-send --print-reply --dest=org.freedesktop.DBus  /org/freedesktop/DBus org.freedesktop.DBus.ListNames

Just like qdbus, if --session or no message bus is specified, dbus will send to the login session message bus. So the above will list the services available on the session bus.
Use --system if you want instead to use the system wide message bus:

dbus-send --system --print-reply --dest=org.freedesktop.DBus  /org/freedesktop/DBus org.freedesktop.DBus.ListNames

You could also use DFeet if you prefer a graphical tool (see the other answers for more GUI options).

  • 1
    @don-crissti how to the to list all object-paths under a service with dbus-send or gdbus? – Khurshid Alam Jan 8 '15 at 9:06
  • 1
    @KhurshidAlam - I have added an answer here. – don_crissti May 15 '15 at 23:06

The python way is the beautiful way.

System services:

import dbus
for service in dbus.SystemBus().list_names():

Session services:

import dbus
for service in dbus.SessionBus().list_names():
  • Upvoted. I asked a follow-up question to your answer. unix.stackexchange.com/questions/203410/… – user768421 May 15 '15 at 1:58
  • I have a question, in a Plasma 5 desktop environment, the service org.kde.Spectacle is used for taking screenshot (and it's working), but it is neither listed in system bus nor session bus, why is that? – Meow Nov 1 '16 at 12:20
  • To help those who may be looking: for at least python 2.7.13 and 3.6, the package needed for this is dbus-python, installable with pip install dbus-python. The python-dbus package is also available (I was unable to get in working in the 2 minutes I tried). – bschlueter Aug 30 '17 at 5:09

qdbusviewer is your best friend; it allows you to send D-bus messages as well:

qdbusviewer showing the Session Bus tab with three subpanels

  • Seems broken as of 2014. It lists the services but can't send messages.. – Pithikos Nov 6 '14 at 15:49
  • 6
    I can't even start it on Ubuntu 14.04. It fails with: qdbusviewer: could not exec '/usr/lib/i386-linux-gnu/qt4/bin/qdbusviewer': No such file or directory – kasperd Dec 28 '14 at 23:54
  • 4
    @Pithikos d-feet works as of today. – sherrellbc Oct 24 '16 at 7:37
  • 1
    @sherrellbc Please consider adding d-feet as an answer to make it more visible – mivk Feb 12 '17 at 14:18
  • As of Ubuntu 20.04, runs but doesn't list all services – usretc Jan 3 at 11:04

gdbus is part of glib2 and supports Bash completions. Here is how to use it (on Fedora):

bash-4.4$ source /usr/share/bash-completion/completions/gdbus
bash-4.4$ gdbus call --system --dest <TAB><TAB>

This will show all possible destinations. To get a list of the available interfaces DBus exports the org.freedesktop.DBus.ListNames method. You can call it by running:

gdbus call --system --dest org.freedesktop.DBus \
           --object-path /org/freedesktop/DBus  \
           --method org.freedesktop.DBus.ListNames

Unfortunately this leads to unreadable output. Fortunately the output is valid python, so this is possible:

gdbus call --system --dest org.freedesktop.DBus      \
           --object-path /org/freedesktop/DBus       \
           --method org.freedesktop.DBus.ListNames | \
    python -c 'import sys, pprint; pprint.pprint(eval(sys.stdin.read()))'

I don't usually do this, but is a nice trick to keep on sleeve. I use gdbus for introspecting and proving concepts before moving to code. The bash completion saves a lot of typing and avoid typos. Would be nice to have gdbus displaying a nicer output.

  • 1
    Neat tool recommendation; thanks! As of F31 at least note that Bash completions are loaded by default, no need to source them manually. – tne Apr 19 '20 at 8:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.