Autostart apps are currently added through .desktop entries. Said entries work when starting them manually, though fail, since systemd does not use the user defined PATH. That results in unexpected behavior, that's non-obvious to debug. Since fixing the issue may not be feasible - it would at least be nice to have the error info be available in the Autostart config UI.
Thank you for the bug report! Please note that Plasma 5.25.5 is not supported for much longer by KDE; supported versions are 5.24, and 5.26 or newer. If at all possible please upgrade to a supported version and verify that the bug is still happening there. If you're unsure how to do this, contact your distributor about it.
This is a bug in systemd itself which was fixed with https://github.com/systemd/systemd/pull/24658. It wasn't expanding tildes; now it is. In the meantime, you can work around the systemd issue until you get the fix by using the full absolute path (/home/[user]/blabla...)
Thanks for the tip, I'd applied that workaround. The bug should not be related to the tilde expansion though. My path contains the absolute path `/home/[user]/.local/bin`
Can you attach the desktop file for the autostart entries in question that aren't autostarting?
/home/[user]/.config/autostart/workday_timelapse.desktop : ``` [Desktop Entry] Comment[en_US]=A program to make timelapses of your screen(s) automatically Comment=A program to make timelapses of your screen(s) automatically Exec=workday-timelapse /home/[user]/screen_timelapses --log GenericName[en_US]= GenericName= Hidden=false Icon=accessories-camera MimeType= Name[en_US]=Workday timelapse Name=Workday timelapse Path= StartupNotify=false Terminal=false TerminalOptions= Type=Application X-DBUS-ServiceName= X-DBUS-StartupType= X-KDE-SubstituteUID=false X-KDE-Username= ``` workday-timelapse is located in /home/[user]/.local/bin (which is in PATH).
Can you paste the output of running `journalctl -u systemd-xdg-autostart-generator`? And also `/usr/lib/systemd/user-generators/systemd-xdg-autostart-generator`?
For some reason `journalctl -u systemd-xdg-autostart-generator` gave no output, but with `journalctl -b | grep autostart-generator` (filtered only ones referring to workday_timelapse: ное 08 11:45:31 p10-laptop systemd-xdg-autostart-generator[1430]: Configuration file /home/[user]/.config/autostart/workday_timelapse.desktop is marked executable. Please remove executable permission bits. Proceeding anyway. ное 08 11:45:31 p10-laptop systemd-xdg-autostart-generator[1430]: /home/[user]/.config/autostart/workday_timelapse.desktop:15: Unknown key name 'TerminalOptions' in section 'Desktop Entry', ignoring. ное 08 11:45:31 p10-laptop systemd-xdg-autostart-generator[1430]: Exec binary 'workday-timelapse' does not exist: No such file or directory ное 08 11:45:32 p10-laptop systemd-xdg-autostart-generator[1475]: Configuration file /home/[user]/.config/autostart/workday_timelapse.desktop is marked executable. Please remove executable permission bits. Proceeding anyway. ное 08 11:45:32 p10-laptop systemd-xdg-autostart-generator[1475]: /home/[user]/.config/autostart/workday_timelapse.desktop:15: Unknown key name 'TerminalOptions' in section 'Desktop Entry', ignoring. ное 08 11:45:32 p10-laptop systemd-xdg-autostart-generator[1475]: Exec binary 'workday-timelapse' does not exist: No such file or directory ное 08 11:45:32 p10-laptop systemd-xdg-autostart-generator[1475]: /home/[user]/.config/autostart/workday_timelapse.desktop: not generating unit, error parsing Exec= line: No such file or directory
Okay, so here's the problem: > ное 08 11:45:32 p10-laptop systemd-xdg-autostart-generator[1475]: /home/[user]/.config/autostart/workday_timelapse.desktop: not generating unit, error parsing Exec= line: No such file or directory Is `workday-timelapse` available in $PATH? What does `which workday-timelapse` say? If it gives you the expected path, then this is indeed a systemd issue--but a different one! You can file a bug about it at https://github.com/systemd/systemd/issues/. In If it doesn't give you the expected path, then there's a problem with your $PATH variable.
Precisely, the binary is in ~/.local/bin , which is in PATH. As commented here: https://stackoverflow.com/questions/60977834/systemd-user-service-exec-command-not-in-path , systemd does not reslove PATH by default (if the info in the thread is correct). And as per the Arch Wiki: https://wiki.archlinux.org/title/systemd/User#PATH PATH can be substituted for systemd in .bash_profile via `systemctl --user import-environment PATH` (which will affect units started after that point. IDK about the autostart ones). So I might file a bug upstream, but initially it seems to be expected behavior.
Yep, this sounds like a systemd issue indeed.