New comment by st3r4g on void-packages repository https://github.com/void-linux/void-packages/issues/20930#issuecomment-612682196 Comment: > What other way of setting up `XDG_RUNTIME_DIR` would you suggest? Well, if you want to follow the XDG spec pedantically there is no simple manual way that I know, because iirc it requires login aware stuff like creating the folder at first user login and deleting it after the last log out. But I don't think this actually matters so much for `libwayland`, it's just a way to have a standard path where to put/discover the socket. It's not even a strict `libwayland` requirement, it's just the only convention used in practice. Maybe someone in the future writes a stripped down elogind-like program that only sets `XDG_RUNTIME_DIR`, idk... > And Wayland also requires privileges for DRM master You can actually become DRM master without root privileges, if no one is already master (i.e. you launch from console). But then you can't drop master (don't ask me why... DRM API is like this). So technically it's possible to write such Wayland compositor, but it can't do VT switching. I don't think adding it to each compositor is a lot of duplication, but anyway just my 2 cents let's see other opinions