Hi,
Assuming problem 2. will be magically solved for us (see below), we
could nicely rearrange the flow such that SSH_AGENT, DBUS_LAUNCH,
CK_XINIT_SESSION could just use standard constructs
in /etc/X11/xinit/xinitrc.d/.
I actually have that written on my whiteboard as a
TODO when I get time.
Another observation is that only stuff using environment variables
should use /etc/X11/xinit/xinitrc.d/ (some man page should spell this
out) - everything else should use the XDG autostart spec (where we
have UI, e.g. gnome-session-properties).
Also, since we're talking about environment variables, we surely need
to care about the ordering; e.g. we want
00-ck-xinit-session.sh
01-dbus-session-bus.sh
10-ssh-agent.sh
10-seahorse-agent.sh
and so forth. Again, the man page should be clear about this. Also,
there should be a README file in /etc/X11/xinit/xinitrc.d/ that
points to the man page.
Instead of exec'ing gnome-session, we run it in the background. When
we are done we run the same scripts in reverse just with 'stop'
instead of 'start' as the first positional parameter.
Starting to seem a
lot like initscripts... Anyway, definitely could be
improvement here, but I don't think we should promote this directory
too much. We really want apps using the session bus instead of their
own socket protocol and an environment variable to advertise where it
is.
Really this directory is an escape hatch for programs that don't
leverage our platform.
I think this is a pretty small project that could be done in a few
days, maybe a week.
Much bigger, more important fish to fry right now.
--Ray