Search code examples
gnome-3gjsgnome-shell-extensions

How to get Empathy contact list in GNOME shell extensions?


I am trying to build a GNOME shell extension. How can I get Empathy contacts list in GNOME shell extensions?


Solution

  • The Empathy-IM tool is a reference-implementation of the "Freedesktop Telepathy"-specification. From Wikipedia:

    How Telepathy works

    Protocol implementations provide a D-Bus service called a connection manager. Telepathy clients use these to create connections to services. Once a connection is established, further communication happens using objects called channels which are requested from the connection. A channel might be used to send and receive text messages, or represent the contact list, or to establish a VoIP call.

    Applications

    • Empathy
    • [...]

    Therefor, you can use the DBus interface to communicate with it. Gnome-Shell offers a Gjs/GnomeShell-Extension binding, which is explained nowhere, but example code is available: