Image of RHCE Red Hat Certified Engineer Linux Study Guide (Exam RH302) (Certification Press)
Image of Modern Operating Systems (3rd Edition)
Image of Linux Kernel Development (3rd Edition)
Image of Beginning Google Maps API 3

Controlling a GNOME Shell or Cinnamon Extension using D-Bus

In this post, I demonstrate how you can add D-Bus support to a GNOME Shell or Cinnamon extension and allow a command line utility to control the operating characteristics of the extension via a command line utility.

D-Bus, Cinnamon and the GNOME Shell

This post discusses the D-Bus interface to the GNOME Shell and Cinnamon and shows you how a simple command line tool called cinnamon-tool can be used to enable or disable Cinnamon extensions via D-Bus.

Retrieving a Property using Python and GDbus

The documentation on retrieving or setting an D-Bus object’s properties using Python is pityful and mostly inaccurate. Recently GDBus has replaced dbus-glib as the preferred way to interface with D-Bus on GNOME platforms. The central concepts of D-Bus are modelled in a very similar way in dbus-glib and GDBus. Both have objects representing connections, proxies and method invocations. However there are some important differences: dbus-glib uses the D-Bus libdbus reference implementation, GDBus does not. Instead, it relies on GIO streams as transport layer, and has its own implementation for the the D-Bus connection setup and authentication. dbus-glib uses the GObject