Does not use dbus, this is a choice keeps the option of portability by not using the abstract namespace. Might be a good idea to be more clear about why not using D-Bus is a caveat. (It's hard to get "per desktop session" operation for uniqueness and IPC unless you use D-Bus.) D-Bus gets session-scoped by having its socket path stored in an environment variable in the session startup scripts, but not much else I can think of that's usable for IPC has that kind of setup on your average X11 desktop. The only other "per-session" option that readily comes to mind as working out of the box would be to generate a randomly named domain socket then store the name to it in a property on the X11 root window so other things in the same session can find it.

> Does not use dbus, this is a choice keeps the option of portability by not using the abstract namespace. Might be a good idea to be more clear about why not using D-Bus is a caveat. (It's hard to get "per desktop session" operation for uniqueness and IPC unless you use D-Bus.) D-Bus gets session-scoped by having its socket path stored in an environment variable in the session startup scripts, but not much else I can think of that's usable for IPC has that kind of setup on your average X11 desktop. The only other "per-session" option that readily comes to mind as working out of the box would be to generate a randomly named domain socket then store the name to it in a property on the X11 root window so other things in the same session can find it.