<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jun 16, 2016 at 3:32 PM, Patrick Schleizer <span dir="ltr"><<a href="mailto:patrick-mailinglists@whonix.org" target="_blank">patrick-mailinglists@whonix.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Hi!<br>
<br>
I would like to replace some /etc/xdg/autostart/app.desktop files with<br>
systemd --user services. I believe these are better because then systemd<br>
keywords such as 'After=' etc. can be used.<br>
<br>
Is this a use case systemd can be used for?<br></blockquote><div><br></div><div>Mostly, yes. Various services in GNOME 3.20 now show up under `systemctl --user`, in fact.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
Once the user logs in, the systemd --user service should start. Similar<br>
to like /etc/xdg/autostart mechanism works.<br>
<br>
Using Debian jessie (stable) with systemd package version 215-17+deb8u4.<br>
<br>
How to do that?<br></blockquote><div><br></div><div>[Install]</div><div>WantedBy=default.target</div><div><br></div><div>However, making everything start via default.target is not a good idea:</div><div><br></div><div>– The actual login is delayed until default.target finishes; there were suggestions to split it up (making only basic.target the 'blocking' part), but nobody has written the code for that yet. So large services in default.target can make logins slow.</div><div><br></div><div>– When default.target is processed, services don't yet have the necessary environment variables (see below).</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
Is there any difference for a login console and an X session?<br></blockquote><div><br></div><div>Not yet, no. (Also no difference between whether the --user manager was started due to an actual login, or whether it was started on boot due to "enable-linger" configuration.)</div><div><br></div><div>So I would create a separate graphical.target and manually `systemctl start` it via .xprofile or such. (Don't forget, also, that graphical programs usually need $DISPLAY, and this is only imported to the --user manager /after/ default.target has already started.)</div><div><br></div><div>I've heard of some plans to make "logging in to GNOME" start gnome.target, and such, but AFAIK there's nothing concrete yet. (Perhaps when the [kd]bus wars end.)</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
Nowhere on search engines I found how to do that with Debian. I also<br>
asked the Debian systemd package maintainers a while ago [with<br>
instructions what I did], but did not get an answer. [1]<br></blockquote><div><br></div><div>About the same as with other distros. Though it'll work better on stretch than jessie – among other things, you'll probably want the "dbus-user-session" package, which adds dbus.service for apps launched via --user.</div></div><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Mantas Mikulėnas <<a href="mailto:grawity@gmail.com" target="_blank">grawity@gmail.com</a>></div></div>
</div></div>