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

List:       kde-core-devel
Subject:    RFC: KSplash in KDE4
From:       Lubos Lunak <l.lunak () suse ! cz>
Date:       2007-02-28 16:02:44
Message-ID: 200702281702.44282.l.lunak () suse ! cz
[Download RAW message or body]


 Hello,

 two things related to the splashscreen, related to each other:
- I'd like to add a new splash implementation and would like to get feedback
- slightly as a result of above, but not really, like to propose changing some 
things about the splash

 There's branches/work/ksplashx in SVN. It's based on the ksplashx SUSE has 
been using since like 9.3 (I don't really remember). There's a README, but in 
short, add the subdir to kdebase, build it, the current splash theme is 
ported, "ksplashx Default --test" will show it.

 Differences to current (KSplashML) implementation are:
- doesn't link against Qt, uses only few sources from Qt (Qt3 actually, but 
there's no point in porting); as such it's up and running very quickly, 
unlike KSplashML, which links KDE libraries up to libkio, loading of which 
takes ages under realistic conditions during KDE startup
- KSplashML has been unmaintained for quite some time
- I also happen to personally think KSplashML is an overdesigned mess, but I 
guess that doesn't really count when I want to add another implementation 
using Xlib directly :)
- themes are not C++ code but are created using a simple syntax file, with 
slightly limited capabilities (see below); I could even add a script to 
convert KSplashML's Default engine-based themes if wanted

 In practice, most of KSplashML's features shouldn't really matter and the 
only real difference should be almost instant startup. I don't really insist 
on dumping KSplashML if somebody sees a reason for it to live, but then I 
don't see it myself.

 All what KSplashX can do, basically, is just adding images to the splash 
window and overlaying animations. That may not seem much, but that happens to 
be what splashscreens do :). Some seemingly missing features include:

- No text support. Can be still done by preparing images with texts rendered 
into it. There's no i18n support either, but if needed, could be done by 
having extra images per language. However, splashes usually tend to display 
two things, 1) things like "KDE" or "3.5", which are not translated and are 
part of the images, 2) things like "Initializing peripherals" or "Loading the 
window manager", which are rather uninteresting and a lie anyway.

 Our startup sequence has changed quite a lot since the times this was done 
(and will most probably still change a bit for KDE4) and the messages no 
longer match, nor they make that much sense (I still remember the times when 
people complained about KWin starting way too long just because that message 
was shown while something else was hogging the system). I'd like to propose 
to just have, say, 8 or 10 checkpoints at some arbitrary points in the 
startup and just show progressbars or only icons or whatever depending on the 
theme for them (not necessarily always as much as 8 or 10).

- No support for locolor. KSplashML first tries a locolor version of the 
splash for bpp == 8. Do we still need that? Should be simple to add if yes.

- Obviously, since there's no C++ code, there's no way to add arbitrary things 
like icons jumping on the bottom edge of the screen, but do we really need 
that anyway?

 So, comments, objections, flames?


 PS: The "Simple" and "None" splashscreens are definitely going to stay, of 
course :).

-- 
Lubos Lunak
KDE developer
--------------------------------------------------------------
SUSE LINUX, s.r.o.   e-mail: l.lunak@suse.cz , l.lunak@kde.org
Lihovarska 1060/12   tel: +420 284 028 972
190 00 Prague 9      fax: +420 284 028 951
Czech Republic       http//www.suse.cz
[prev in list] [next in list] [prev in thread] [next in thread] 

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