Hello,
Happy to hear that you’re interested in collaborating on this, thank you.
The work isn’t done or in place upstream yet. I prioritized getting the blog post out first. So please look at Draft: Remove builtin startup (!145) · Merge requests · GNOME / gnome-session · GitLab
I don’t know how Shepherd works, so I can’t really give specific advice. However, you’ll need to replace the following with a Shepherd integration:
- the systemd user service unit files. These are spread across all the different packages: localsearch, gnome-settings-daemon, gnome-disk-utility, and of course gnome-session itself
leader-main.c
, which currently does some basic environment setup and then asks systemd to startgnome-session-${XDG_SESSION_TYPE}@${SESSION}.target
and then handles session shutdown (SIGTERM → tell systemd to stop the service, services stop → quit the leader)tools/gnome-session-ctl
, which is called by various systemd checkpoints to communicate to the service and the leader when things happen
As for userdb, reach out on the systemd mailing list with questions. I’ll be happy to assist there
Best,
Adrian