[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: How does ksmserver start applications?
From:       Roland Seuhs <roland () hasos ! com>
Date:       2002-08-27 17:02:17
[Download RAW message or body]

Am Dienstag, 27. August 2002 18:17 schrieb Lubos Lunak:
> On Tuesday 27 August 2002 14:14, Roland Seuhs wrote:
> > > > > On Tuesday 27 August 2002 12:26, Lubos Lunak wrote:
> > > 
> > > Yes, it's handled by KWin. KWin asks X to redirect window mapping to
> > > KWin, and before the window is actually shown, KWin applies geometry,
> > > etc. saved from the session. And no, your application cannot do the
> > > same, it'd have to ask KWin to do it (e.g. now placing windows of newly
> > > started app on the desktop they were started on is handled this way -
> > > but I guess it refuses to use non-existing virtual desktop).
> > 
> > I don't understand, why can't my app tell KWin?
> 
> Since right now there's no such support for it in KWin. 

Does KWin only accept these commands during start-up?

If ksmserver can issue these commands, every app should be able to, no?

> I'd say it's actually the system (kernel etc.) itself that should handle
> it (and that's why we have kdeinit and other hacks, right? :-/ ).

Well, the kernel simply can't handle it.
Most apps load configuration files on startup, they load icons, pictures, etc.
I don't see any other way of caching all that.

> > If I can somehow overcome the focus-problem, I think this app will make
> > KDE usable for many users which find KDE currently too slow. A KDE/Linux
> > system caches data on so many levels (CPU, disk-cache in RAM, disk-cache
> > on HDD) why not cache whole apps to eliminate start-up time once and for
> > all? Also, my app doesn't interfere with any other things in KDE.
> 
> Well, I personally don't like these details:
> - this hidden app(s) will most probably get session managed just like
> others, so it will make KDE startup time even longer (which is for many
> people actually the reason they say KDE is slow).

Come on, this is really a non-issue. A smart implementation (for example a simple \
"sleep(120)" before you start loading the apps and "sleep(5)" in between starting the \
apps) will not get noticed. (I know sleep() is not pretty, but who cares?) You could \
also check if there is enough RAM available to decide wether to cache an app or not.

BTW, I think ksmserver should try to start one app after another and not all \
simultaneously. My machine crawls during startup.

> - the hidden app may eat some CPU time (not that much though I guess)

I agree 100% that you shouldn't use ktop with it.

> - it's not going to work reliably for all apps (they may e.g. popup a modal
> dialog sometimes, which would look strange since the app is not "running")

If you can somehow get all window-ids for an app, this can be made to work.
Otherwise just don't use it with that app.

> - technically it's probably better to avoid hacks like 'hidden desktop 16',
> and hide the window completely instead

Maybe. But also a lot more complicated if I'm not completely wrong.

> - this all will be IMHO just one big ugly hack

Well, I really don't want to argue that because yes it probably is. However unlike \
many other hacks it is totally unrelated to the main project, so it won't be a \
problem for anybody and won't have any adverse effects on KDE's codebase. No \
developer will have to go through the pain to understand this hack. It's just that in \
some cases it will be useful, ugly hack be damned. It doesn't have any adverse \
effects to the codebase and you freely choose which apps start normally and which \
using the tool.

> Hmm, ok. Looks like nothing really preventing you from doing it :).

If I can't get around the focus-issue, it is preventing me from doing it :-(

> For
> the focus problem, you can for now probably use doNotManage() from KWin's
> DCOP interface, the argument is regexp for window title, first matching
> window won't be shown. In case your utility shows to be really useful,
> there can be written something better in KWin than this ugly (yes, you
> guessed it) hack doNotManage().

When the window already has a name, the focus is already stolen, so I don't see how \
that can possibly work.

Roland

-- 
Facts do not cease to exist when they are ignored.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic