On my systems I noticed that some services like kglobalaccel are not automatically started when logging into the system. This is on the one hand rather annoying on the other it could indicate a bug in our setup. So this morning I started to look into the issue with kglobalaccel.
Kglobalaccel is a service which is supposed to get started through dbus. My installation prefix is “/opt/kf5” and so the service file gets installed to “/opt/kf5/share/dbus-1/services/org.kde.kglobalaccel.service” – that looks fine. After some investigation I figured out that dbus-daemon looks in $XDG_DATA_DIRS as a search path. Our startkde script adjusts $XDG_DATA_DIRS to include /opt/kf5/share before launching the dbus daemon. But when looking at the environment of the running dbus-daemon one could see the problem: it doesn’t use the set environment variable. The reason is obvious: dbus is nowadays started before the desktop environment gets started.
This means D-Bus doesn’t know where to look for the service files. To fix this create a file “/etc/dbus-1/session.d/plasma-next.conf” with the following content (adjust path as needed):
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> <busconfig> <servicedir>/opt/kf5/share/dbus-1/services/</servicedir> </busconfig>
Save, logout, login and kglobalaccel and others should auto start.
By locking you mean logging, don’t you? 😉
nice catch 🙂
Can’t you update the KDE session manager to use org.freedesktop.DBus.UpdateActivationEnvironment [1]. At least that is what gnome-session does.
[1] http://dbus.freedesktop.org/doc/dbus-specification.html
we are working on it, but to my understanding of the documentation it’s not possible to update where dbus has to look for session files through it.