JUN
23
2010

Details that sometimes do matter

Some things are really really tiny details, yet they can be annoying in way. Something that's been occassionally bugging me is that fact that KDE uses the same wallpaper as KDM background, the splashscreen background and desktop background, yet depending on the screen resolution it may not be exactly the same background - during login the picture may stretch or shrink at certain points. The times when decent monitor screens had a 4:3 ratio are a thing of the past, starting with LCD makers making 5:4 "narrow-screens", then changing their minds and making 16:10 or 16:9 wide-screens. The choice of screen resolutions is not that limited either and that means that the wallpaper has to be scaled ... and that was the problem. Plasma has code to select how to do the scaling, KSplashX has code for that and KDM has code for that, and yes, you guessed it, it's always a different code. So unlucky resolutions get different wallpapers from different code. Since I actually spent some time in the past trying to make the login as seamless as possible, this indeed made me twitch whenever I saw it.

Seeing this again while testing openSUSE 11.3 made me finally spend the time to patch the openSUSE package to use the same selection code in all the three components. We really lack polish in so many places :(. But now it looks like the change is almost not there - there's just a progressbar and logo shown during startup and that changes to the desktop. With compositing enabled there would be also the fade-in animation.

Seeing that 4.4's KDM had no support for differently sized wallpapers, I was about to submit a copy of Plasma's code there when I noticed that trunk has some code for it. Of course, different from the rest again. Also, the login sequence is basically just lucky to be so smooth. The splashscreen is supposed to stay visible until Plasma is ready with its wallpapers and panel layout. And there is code in KSMServer to ensure this. And Plasma uses it. Yet it's apparently not used properly - during the first login, when there is more setup to be done during login, it's perfectly possible to see how the panels are set up. Well ... maybe in time for openSUSE 11.3 + 1.

Comments

I like such polishing changes. So thanks a lot!
Have you submitted your changes to upstream or did you not because of the KDM code you discovered in Trunk?

I hope much of KDM will be fixed when the KDM-Plasma work lands (hopefully as soon as SC 4.6).

In case you are in the mood to do some other polishing work:
https://bugs.kde.org/show_bug.cgi?id=209454
https://bugs.kde.org/show_bug.cgi?id=221592
https://bugs.kde.org/show_bug.cgi?id=200686

Fixing those is beyond my skill set, but probably easy for a skilled programmer.


By kamikazow at Wed, 06/23/2010 - 22:14

Actually, KDM already supports multiple resolutions for a given image in 4.4 and previous 4.x releases. But yes, the methods are all different. In particular, KDM doesn't figure out on its own which image to scale (at least not in 4.4), you have to give it a farm of symlinks to map the resolutions to one of the available images (whereas KSplash crashes if you symlink an image to a different size as KDM requires it! So you need to do things differently for each).


By Kevin Kofler at Tue, 06/29/2010 - 16:04

Hi,

I'm also glad to see improvement in this code. Currently when I boot suse11.1 using dual monitor, it currently shows some wallpaper starting om my left screen overlapping the right one, and for the rest showing random memory (if I have been logged in before, I can see some dialogs from my previous session, noise otherwise). Would this fix also fix this problem?

Left is a 1280x1024 monitor and right 1680x1050 but the right one is configured as primary. I guess it somehow can't handle this configuration properly, showing the wallpaper designed for the right screen on the left one..

matthias


By mxttie at Fri, 07/02/2010 - 15:34