SYSTEMD-...GENERATOR(8)

โœจ SYSTEMD-XDG-AUTOSTART-GENERATOR(8) โœจ

okay bestie, so you know how this is a section 8 manual page for systemd-xdg-autostart-generator? yeah. that one. from the systemd-xdg-autostart-generator corner of the systemd universe. let's get into it ๐Ÿ’…


๐ŸŒธ NAME ๐ŸŒธ

systemd-xdg-autostart-generator โ€” a user unit generator for XDG autostart files. that's the whole vibe. it makes units. for autostart stuff. slay.


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

/usr/lib/systemd/user-generators/systemd-xdg-autostart-generator

that's it. that's the whole path. she lives there. no flags, no args, just vibes.


๐Ÿ’– DESCRIPTION ๐Ÿ’–

so, systemd-xdg-autostart-generator is a generator โ€” and what it does is create .service units for XDG autostart<sup>1</sup> files. why tho? so that desktop environments can delegate the startup of these applications over to systemd(1). handing off the aux cord, basically. iconic behavior honestly.

the units that systemd-xdg-autostart-generator creates can be started by the desktop environment using "xdg-desktop-autostart.target". if you want the full lore on that, go read systemd.special(7). it's giving very much "required reading".

now here's the tea โ˜• โ€” XDG autostart can be conditionalized using both standardized and non-standardized keys. because of course it can. to handle all of that mess, the generator may create one or more ExecCondition= entries. for the non-standardized keys, it uses well-known helper binaries that get provided by Desktop Environments. and listen: all external helpers must detect their corresponding desktop environment, and they must return success when they're run in a different environment. this is highkey important, because every single ExecCondition= directive has to succeed for an application to actually be started. no pressure or anything ๐Ÿซถ

๐Ÿฆ‹ Special XDG desktop file entries that get processed ๐Ÿฆ‹

  • Hidden=, X-systemd-skip= โ€” if it's set to true, no service will be generated. like, none. she's not coming. ๐Ÿ’€
  • OnlyShowIn=, NotShowIn= โ€” handled with an ExecCondition= that uses systemd-xdg-autostart-condition
  • TryExec= โ€” if the binary doesn't exist, or it can't be executed, then no service will be generated. sorry babe.
  • AutostartCondition= (the GNOME extension one) โ€” handled with an ExecCondition= that uses gnome-systemd-autostart-condition
  • X-GNOME-Autostart-Phase= โ€” if it's set to any value at all, no service will be generated. any value. zero tolerance. ๐Ÿ™ˆ
  • X-KDE-autostart-condition= โ€” handled with an ExecCondition= that uses kde-systemd-start-condition

and for the record: systemd-xdg-autostart-generator implements systemd.generator(7). so if you wanna know what being a generator even means, that's your page, bestie.


๐ŸŒˆ SEE ALSO ๐ŸŒˆ


โญ NOTES โญ

  1. XDG autostart โ€” https://specifications.freedesktop.org/autostart-spec/autostart-spec-latest.html

okay so that's the whole page, you ate that ๐Ÿ’… this was brought to you by systemd 262.1, no cap, and the SYSTEMD-...GENERATOR(8) energy is strong. go forth and autostart responsibly, bestie โœจ๐ŸŽ€๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from
  • arch rolling: systemd 262.1-1 ยท LGPL-2.1-or-later AND CC0-1.0 AND GPL-2.0-or-later AND MIT-0
  • ๐Ÿ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms