Run everything under `upstart --user`
We will have to do this anyway to support Unity 8/Mir** so it makes sense to implement it now. Ubuntu's implementation of the user upstart daemon is kind of ugly. They run it by execing in /etc/X11/Xsession.d/99upstart. This bypasses any further commands that are supposed to run, such as the original gnome-session command. When upstart finishes starting up, it will take the responsibility of launching gnome-session, unity-settings-daemon, Unity itself, etc. To prevent unity-settings-daemon and other services from being started twice (and failing), Ubuntu's packages install a file to /usr/share/upstart/xdg/autostart/ to override the original /etc/xdg/autostart/* file.
This will have no effect on another other DE's since none of this upstart stuff will be started unless the user logs into the Unity session.
Work is being done on the upstart branch.
** Unity 8 uses upstart for more than just starting processes. From what I can see, it relies on upstart's event mechanism.
Is this an option on the greeter screen, or is this something we have to do via command line? I'm not exactly sure of what needs to be done. BTW, thanks for starting work on Unity-for-Arch again! I tried to edit the pkgbuilds for the newer files, but I could never get everything working the way it was supposed to work. It's good to see you back!