Although flying well under the radar of the average Linux user, D-Bus has been an integral part of Linux distributions for nearly two decades and counting. Rather than using faster point-to-point interprocess communication via a Unix socket or such, an IPC bus allows for IP communication in a bus-like manner for convenience reasons. D-Bus replaced a few existing IPC buses in the Gnome and KDE desktop environments and became since that time the de-facto standard. Which isn’t to say that D-Bus is well-designed or devoid of flaws, hence attracting the ire of people like [Vaxry] who recently wrote an article on why D-Bus should die and proposes using hyprwire instead.
The broader context is provided by [Brodie Robertson], whose video adds interesting details, such as that Arch Linux wrote its own D-Bus implementation rather than use the reference one. Then there’s CVE-2018-19358 pertaining to the security risk of using an unlocked keyring on D-Bus, as any application on said bus can read the contents. The response by the Gnome developers responsible for D-Bus was very Wayland-like in that they dismissed the CVE as ‘works as designed’.
Whatever i3 is using underneath, somebody put a line somewhere to tell everything where to find the bus.
If you're not using a full desktop environment then you're choosing to cover the features you've opted out of.
I respect that choice, and I'm glad our ecosystem allows it. But also I understand that you're not going to get the full benefits of a desktop environment without the desktop environment.
I mean, I agree completely. I chose i3 back in the day to get tiling windows, but also specifically to get my system as lean as possible to only run the things I needed. So I definitely made a conscious choice. As I did with Niri recently.
I just feel like it should be easier. Like you start the dbus daemon or whatever, and then that's it. That should be it. There shouldn't be anything left to do after that IMO. 😅
But I mean, I know how to search shit on the Internet, and read docs. I made it work. Others might struggle though, coming from Windows e.g. like I did decades ago. I have a big headstart.
I can't argue with that.
With the systemd example, they've put the bus in /run, but with different sessions and slices and environments (which could all be concurrent), they'll spawn a new bus, so there's no general way to tell it which bus you want.
If you have a cron job (sorry, a systemd-timer job) set up to project your mailbox to your bathroom mirror on the hour, you'd want that isolated from your regular user bus.
I love where Plasma is these days (check out the Tiles editor with Meta+T), but I do wish it was easier to pick only the desktop elements I want. It feels like it's all-or-nothing.