Skip to content

Latest commit

 

History

History
20 lines (12 loc) · 1.43 KB

DBUS.md

File metadata and controls

20 lines (12 loc) · 1.43 KB

D-Bus interface

Ferdium exposes an inter-process communication on Linux systems via D-Bus. This allows integrating Ferdium with your desktop environment by displaying the number of unread notifications in a status area and muting or unmuting notations.

Desktop integration

As an example integration, the docs/dbus folder contains a module for status bars written in Python. To run the example, you'll need Python 3.11 and the dbus-next PyPI package.

The integration uses the ferdium-dbus-py client library, which is an asynchronous wrapper over the D-Bus interface. It illustrates multiple advanced concepts, such as asynchronous communication with Ferdium via asyncio and polling the session D-Bus to see if Ferdium is running.

The ferdium_bar.py implements a bar module to use with status bars such as waybar or polybar. See ferdium_bar.py --help and ferdium_bar.py unread --help for further indications on how to use it.

Low-level API

The low-level API exposed over D-Bus is documented in org.ferdium.Ferdium.xml with standard D-Bus introspection syntax.

Ferdium will take ownership of the bus name org.ferdium.Ferdium and expose and object implementing the org.ferdium.Ferdium interface at the object path /org/ferdium.