[systemd-devel] A way to pass runtime-defined XDG_CONFIG_DIRS to xdg-autostart-generators

Slava Aseev nullptrnine at basealt.ru
Thu Oct 20 15:06:33 UTC 2022


Hello!

I recently ran into some problem with systemd booted KDE: the autostart 
from KDE related paths doesn't work.
Compounding the problem, there is no way to properly fix that with 
environment generators (or configs for systemd-environment-d-generator), 
because the required XDG_CONFIG_DIRS is set by the startkde application. 
Of course, we can create a config with variables in /lib/environment.d/, 
but this will work for all DEs (not only for KDE) and will also mean 
duplicating variables (which can already be set by the startkde app).

It is also worth noting that the startkde app passes all set XDG_* 
environment variables to systemd (by calling the 
org.freedesktop.systemd1.Manager.UnsetAndSetEnvironment), but systemd 
does not pass them to xdg-autostart-generator (after 
org.freedesktop.systemd1.Manager.Reload). This is because variables 
passed to systemd end up in client_environment (which remain intact 
after Reload), but generators take transient_environment only (which are 
generated on every Reload by environment generators).

So the questions are: Is there a way to pass variables from 
client_environment to transient_environment on Reload? And if not, 
should it exist? (maybe the startkde is doing something wrong and should 
not set variables itself?)

Thanks.

-- 
Best regards,
Slava Aseev



More information about the systemd-devel mailing list