Re: Q: What is the correct way to use `xdg-desktop-autostart.target` with window managers?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 19.07.2024 16:52, WieeRd wrote:
I'm trying to use systemd as a XDG Autostart manager for WMs that does not
provide builtin support for autostart entries. At first, I simply tried to
`systemctl --user start` the target inside the window manager. However, it
quickly turned out that the target cannot and not meant to be manually
started and instead should be specified as a `Wants=` dependency.

But how exactly?

1. Which unit should be linked to the autostart target as `Wants=`
dependency?

It is entirely up to your desktop environment. Only DE knows where autostart fits in its startup sequence.

Should the user /  WM author create / provide another user unit just so
that it can pull in the autostart target?


Assumption is that your desktop environment is using systemd user instance to manage its services already. In which case you already have at least one systemd unit which is launched when you start this desktop environment.

2. Looking at the source code, it seems that `OnlyShowIn=` detection relies
on the $XDG_CURRENT_DESKTOP environment.
Whose responsibility is it to set this variable? Display manager? Window
manager? Or by the user?


As the name likely comes from the session desktop file, I'd say display manager. GDM sets it for sure.

The man pages of `systemd.special` and `systemd-xdg-autostart-generator`
were the only documentations I could find about this feature, and I'm still
not sure what I'm supposed to do.

It was never considered as a standalone feature, rather as a helper to migrate autostarted processes to systemd units for better manageability. But e.g. KDE is explicitly using transient units for this purpose and so does not use or need x-d-a.t at all.



[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux