D-Bus (Desktop Bus) is an inter-process communication (IPC) system that allows applications in Linux to exchange information with each other.
D-Bus is a "internal chat channel" between software, services, operating systems and desktop environments (GNOME, KDE…).
| Scenario | Which applications communicate via D-Bus? |
|---|---|
| When you plug in a USB | File manager receives notifications from udev |
| When you adjust the volume via the media button | PulseAudio/pipewire controls the volume |
| When you open GNOME Settings to turn off Bluetooth | GNOME sends a command to the bluetoothd service |
| When IBus sends input to an application | IBus transmits Vietnamese typing data via D-Bus |
| When systemd sends low battery notification | systemd-logind → notification displayer |
→ Communication between system and applications (e.g. udev, NetworkManager)
→ Communication between user applications (e.g. IBus, notifications, settings…)
# Check current session bus ID
echo $DBUS_SESSION_BUS_ADDRESS
# Scan for running services via D-Bus
busctl --user
dbus, dbus-daemon, dbus-session,...D-Bus is the “backbone” that helps Linux software talk to each other