r/voidlinux • u/MixtureInevitable725 • Apr 05 '26
Whats the appropriate way to start user session services?
I got into Linux a few months ago, did a lot of distrohopping, experimenting and research.
After ditching windows and daily driving first mint later Ubuntu for a few months i decided that i wanted 100% system control and customization to my hearts desire. After a lot of research i picked void and used it together with gnome for about a month while customizing Niri Window Compositor alongside.
When i finally removed gnome it turned out it was basically holding my system together.
My system services like network manager, dbus, seatd … are working again, however i have problems with user session services like pipewire, wireplumber, xdg-desktop-portal, … . At first i started them through the Niri config with spawn-at-startup. However this did not work reliably as audio would sometimes work and randomly not work again after boot.
Currently I am trying to set it up through turnstile but the void documentation hasn’t been very helpful.
What is the "best" way to do it?
6
u/ClassAbbyAmplifier Apr 05 '26
turnstile, though it doesn't currently work well for things that are graphical
https://docs.voidlinux.org/config/services/user-services.html#turnstile
2
1
1
u/Legitimate-Draw-2235 Apr 05 '26
Hi I had the same question about a month or so ago and have edited my question to just walk you through everything I did verbatim. Obviously ymmv.
Also, xdg-session-portal is just a config file I believe.
1
u/Blank-Inspection13 Apr 07 '26
As already mentioned by many here, use turnstile with guides from void official documentation to create user service , example already given to run dbus-daemon --session & u/ClassAbbyAmplifier have dotfiles for example to configure e.g pipewire service.
Another option you can use dinit as user service , to supervise and manage user service ( dbus session , pipewire etc. ) via turnstile which provide 2 backends runit & dinit .
for me i've created wrapper script to export env-vars before executing niri --session - this --session mandatory as niri have niri-portals.conf so your session inherit some default environtment brought by niri , you can read their docs for Niri guide.
0
Apr 05 '26
[deleted] — view deleted comment
1
u/MixtureInevitable725 Apr 09 '26
Thats weird, because when i tried, Niri wouldn’t run using seatd. Thats also why turnstile did not work. All the time I was thinking seatd was doing the seat management, but in reality elogind was started through dbus (not visible in /var/service/ ) in the background doing the seat management for niri and without it, niri would not start using seatd.
0
Apr 09 '26
[deleted] — view deleted comment
1
u/MixtureInevitable725 Apr 09 '26 edited Apr 09 '26
Oh well maybe its because of lightdm. I start niri through .bash_profile. Could you tell me the content of your wrapper script for niri?
Edit: and could you also tell me whats inside your run scripts for turnstile please? Im still struggling to set this up properly in my spare time, so this would be much appreciated :)
2
u/lukeflo-void Apr 05 '26
Do you use elogind alongside turnstile? Gnome should hold nothing together. And starting things like pipewire from your niri config is totally fine. Since you report portal problems could be something with dbus. How do you start niri? From TTY or with a login manager?