The D-Bus setup in Chimera is different from a typical non-systemd distribution, so it is documented here separately.
System and session bus
A typical system, regardless of service manager, will have two buses.
The system bus runs as
root and is shared, while the session bus
runs as user and is specific to some vague session.
D-Bus services can utilize the system bus or session bus depending on what they are handling. A lot of desktop thíngs utilize the session bus.
Regadless of system or session, a bus has a Unix domain socket somewhere.
Things using the bus connect to this socket internally. The path to the
session bus socket is in the user’s environment, under the variable
Typical non-systemd distribution
In a usual non-systemd distro, the D-Bus session bus is launched either explicitly, or by the desktop environment. That means things using the session bus for example within an X11 instance will see the bus, but if you switch tty and log in, nothing in that tty will be able to. The variable may look like this:
When using Systemd, the situation is quite different. You have the
logind daemon tracking the session and the session is shared for
all logins regardless of virtual terminal. And Systemd also manages the
session bus for you, thanks to user services, so regardless of the virtual
console or X11 or Wayland desktop or whatever you go to, you will always
get the same session bus socket, and it will look like this:
This is very practical, and solves many gotchas.
In Chimera, things work quite similarly to Systemd. Since Chimera comes with implicit support for user services, it can also afford to handle this.
When you install the
dbus package in Chimera, you will typically get
-dinit subpackage with the service files, as well as
which contains default service links for both the system and session bus,
in form of system and user service links respectively.
That means D-Bus handling in Chimera is completely out of box by default. You simply install it, and Dinit will activate it, both for system bus and for user logins, and there is absolutely nothing to do from the user’s side.
Of course, if that for some reason does not work for you, you can mask
dbus-dinit-links package, and manage things however you want.