[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