On 02/03/2014 02:41 PM, Slávek Banko wrote: > Outside of that was found in tdebase, XDG_SESSION_COOKIE is used in kpowersave > and tdepowersave (will be fixed after commit patch from bug 1597). This is > good news - on the ConsoleKit no more dependent - only TDM. In other words, > it should be enough to add support for SystemD session into TDM. I will try > to assess how difficult this task is... > > Slavek That is good news! Also, at least for tdebase, the preprocessor checks already exclude the console kit code when not defined. Checking the running processes, it looks like everything required from Arch is already started and running: /sbin/init /usr/lib/systemd/systemd-journald /usr/lib/systemd/systemd-udevd /usr/lib/systemd/systemd-logind /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation /sbin/agetty --noclear tty1 /opt/trinity/bin/tdm \_ /usr/bin/X -br -nolisten tcp :0 vt7 -auth /var/run/xauth/A:0-LI4Qla \_ -:0 \_ /bin/sh /opt/trinity/bin/starttde \_ /opt/trinity/bin/tdeinit_phase1 \_ kwrapper ksmserver --windowmanager twin /usr/bin/gpg-agent --daemon /usr/bin/ssh-agent -s dcopserver [tdeinit] --nosid --suicide kded [tdeinit] --new-startup start_tdeinit --new-startup +kcminit_startup All we need is to provide is the minimum porting requirements: Minimal porting (without multi-seat) requires the following: 1. Remove/disable all code responsible for registering your service with ConsoleKit. 2. Make sure to register your greeter session via the PAM session stack, and make sure the PAM session modules include pam_systemd. Also, make sure to set the session class to "greeter." This may be done by setting the environment variable XDG_SESSION_CLASS to "greeter" with pam_misc_setenv() or setting the "class=greeter" option in the pam_systemd module, in order to allow applications to filter out greeter sessions from normal login sessions. 3. Make sure to register your logged in session via the PAM session stack as well, also including pam_systemd in it. 4. Optionally, use pam_misc_setenv() to set the environment variables XDG_SEAT and XDG_VTNR. The former should contain "seat0", the latter the VT number your session runs on. pam_systemd can determine these values automatically but it's nice to pass these variables anyway. In summary: porting a display manager from ConsoleKit to systemd primarily means removing code, not necessarily adding any new code. Here, a cheers to simplicity! It looks like #2 is where the work is. Coding wizard like you - no sweat.. -- David C. Rankin, J.D.,P.E.