On Thu, Jul 25, 2024 at 10:42 AM Vladimir Panteleev <git@xxxxxxxxxxxxxxxxxxxxx> wrote:
It looks like "systemd-path systemd-search-user-unit" isn't accurate
or does not correspond to the list of paths that systemd is looking
in.
The paths for user units and other user configuration depend on your XDG_{CONFIG,DATA}_{DIRS,HOME} environment variables.
Since systemd-search-user-unit is running as part of your interactive session (and under your interactive shell) whereas systemd --user itself is not, they will likely have different lists of environment variables, especially if you have Nix set up a custom XDG_* through /etc/profile or similar.
While systemd --user has a few ways to push environment variables into the services it starts, those all happen after initialization; there's no good equivalent for providing envvars for systemd itself. You would need to `sudo systemctl edit user@$UID` and add some [Service] Environment= definitions there.
(In the early days I used to edit the user@.service to invoke `ExecStart=/bin/sh -l -c "exec systemd --user"` so that it would go through the shell's ~/.profile processing, but I'm not sure if that works these days.)
--
Mantas Mikulėnas