Hey Jean,
I was kind of hoping you would leave a word on this ;D
Look I'm up to something here.
It's all about $(dbus-launch)!
The only bit of info I needed was that .zprofile file is used by SDDM instead.
Absolutely no user tree is required to get inside of a basic Plasma desktop environment from SDDM. I will have to see how much KDE proprietary functionality is provided.
Feel free to try this out yourself:
- Install minimal Obarun
- Install the most minimal X (xorg-server), Plasma (plasma-desktop) and SDDM (also sddm-66serv and enable it)
- Do not bother to install or enable dbus-66serv, not for root, not for any user, or even create a scandir for your user!
- Only write this into users directory .zprofile file:
export $(dbus-launch)
- Reboot, wait for SDDM to pop up and log in...
I am writing right now from within Plasma on Obarun. My user has
no scandir and therefore not a single service enabled. Root has
not enabled dbus (root dbus service would be needed for shutdown/reboot to work from within the DE though). Absolutely no additional service is needed to get into the desktop (Let's not yet talk about proprietary functionality). You only need to export that environment variable before being able to launch Plasma like any other DE...
Edit/Follow Up
Oh my, one just has to read the
arch wiki on ConsoleKit really...
To launch an X session with ConsoleKit, append the following to the exec statement in ~/.xinitrc e.g.:
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session openbox-session
This starts Openbox with proper environment variables so it and its children are able to use ConsoleKit
SDDM is capable of detecting ConsoleKit and launching ck-launch-session automatically. This is coded in /usr/share/sddm/scripts/Xsession which is the default script called by SDDM after passing valid user credentials.
So for my own convenience I cloned this script, renamed it to /usr/share/sddm/scripts/ConsoleKit and just edited the last part where it calls ck-launch-session to add the mentioned arguments from the wiki, including dbus-launch.
For even more convenience I then copied the default /usr/lib/sddm/sddm.conf.d/sddm.conf to /etc/sddm.conf.d/sddm.conf and in the [X11] section edited this line:
# Path to a script to execute when starting the desktop session
SessionCommand=/usr/share/sddm/scripts/ConsoleKit
Now I don't even need a .zprofile file anymore, or any line in any profile file for that matter. No scandir. No services. Just a working desktop.
Edit2
Since this is between X and ConsoleKit wouldn't it be a wise thing to do to implement this correctly in the Obarun images? Rewrite "exec ck-launch-session sessionname" to include the above arguments?