kdeinit launching in KApplication

David Faure faure at kde.org
Thu Aug 9 21:57:21 BST 2007


On Saturday 04 August 2007, Lubos Lunak wrote:
> On pá 3. srpna 2007, David Faure wrote:
> > On Friday 03 August 2007, Andreas Pakulat wrote:
> > > On 03.08.07 13:36:08, Lubos Lunak wrote:
> > > >  is there any special reason why kdeinit&friends are not automatically
> > > > launched from KApplication ctor like it is in KDE3 (besides this
> > > > feature getting lost while porting to DBUS)? Right now e.g. global
> > > > shortcuts don't work, since they require kded and automatically assume
> > > > it's always there. Are such things now supposed to explicitly launch
> > > > kdeinit if needed, since KApplication is now not mandatory?
> > >
> > > They are launched when they are needed I think. A plain basic kapp
> > > doesn't start it, but it seems its started when needed, for example
> > > kdevelop triggers kdeinit and kded start. So I guess this change is
> > > intentional so not to start uneeded services...
> >
> > Yes it does work; ktoolinvocation and ksycoca start kdeinit when necessary,
> > the "global shortcuts" code should just do the same.
> 
>  It could, but should it? 
Yes :)

>  I'd expect that pretty much every KDE developer  
> simply runs apps inside KDE session, where this magically works, so it's 
> bound to get broken occassionally (or just think porting from KDE3 where it 
> worked everywhere).

I disagree. I often run a KDE app in a ssh -X shell to another computer, or in a
su - testuser session, so the kde application has to autostart kdeinit+klauncher+kded.
And this has worked all the time in kde3, so I don't see why it would break in
unfixable ways now... We even have unit tests which trigger this (unless run
from within a kde4 session of course) :)

>  Using e.g. dbus activation would be safer. I however cannot find where 
> KNotify does this and I also seem to remember there was supposed to be some 
> problem with activation - does somebody know the details?

Autostarting of knotify was broken when I left for vacations, I wonder if it's fixed now.

Personally I trust a longstanding kde3 technology more than dbus activation
which hasn't shown any signs of working yet in KDE (it seems to create install-prefix problems,
we need a way to tell dbus how to look into the kde prefix, iirc thiago had solutions for that
on his plate, but that's what I mean, it's not ready yet ;) ).

> > KToolInvocation::klauncher();  is the magic incantation that ksycoca uses.
> 
>  Yeah, there's nothing like calling klauncher() when one wants kded :).

:-). Well KToolInvocation::ensureKdeinitKLauncherAndKdedAreRunning() is a bit long :)
But for sure when klauncher isn't running, kdeinit is started, which in turn starts klauncher and kded,
so there you go.

-- 
David Faure, faure at kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).




More information about the kde-core-devel mailing list