cat /dev/maxilys

A glance in the mind of a KDE/Linux developer to see how ideas turn into code.

2006-06-24

KDE: What's next?

That's it. It's very late or very early in the morning and a new Serenity has landed on KDE-Look. Version 0.9. There is still a few work left for the first non-beta version.

And I found the right color for the scrollbar slider. The scrollbar is now rather monochromatic --except for the HTML pages that set special colors-- so it doesn't look like to have a button in its middle any more. I find it much less distracting than before. While I'm typing here, I almost don't see the slider.

Err... I forgot to change accordingly... or differently the "real" slider (the one that can have tickmarks). One more thing for the next version. :-D

I also implemented a "killer" icon theme for the window decoration. I don't think everybody will call it "killer" but I like it some much that I've already forgotten the formerly beloved Serenity icon theme. I even managed to find very quickly a name for this new theme: Trinary. (And I definitively like this SnowFields colorscheme!) The configuration dialog itself uses the Powder theme as revised for Serenity but look at the preview.

Don't try this at home! ;-) It's a fake actually. Serenity engine produced every pixel that's on the picture but I patched two pictures together to show the two possible locations of the pseudo-tab titlebar with buttons in a practical order for both situations.

One last thing I was thinking about last time I wrote in my blog: The taskbar buttons. They've always been a P.I.T.A. and they're still are because of the way Kicker draws them but --at least-- I did something good for them: I give them the same look than the toolbuttons: No color except the background color that is tinted to show that they are hovered or activated. --I got the impression I already wrote something like that.-- ;-) By the way, I wonder why those eff'ing widgets aren't just plain toolbuttons? What got thru the head of the guy who decided to use QHeader's? That's weird. I'm gonna look in Kicker sources.

While I'll be at it, I'll build diff files for all the cosmetic patches I made to KDE 3.5.3 and I'm gonna send them to the KDE Dev list. Well, I'm gonna first change these patches into real pieces of code to make the difference once for all.

For example, the toolbuttons. KDE decides by itself of the colors to use for the label and the arrow. Wrong approach. That's a job for the style. So, to become a real pieace of code, my patch will delegate everything to the style and I will be able to stop complaining once for all. Well, if I don't forget to let them be more respectful of the reverse layout.

There is also this KTabCtl which made my eyes bleed more than once. My tiny patch must be applied to KDE 3.5.4. That will be the first one I'll send... to test the water. ;-)

There are quite a few backup files in my KDE source tree. It will distract me from Serenity for a while.

Well, it's high time to stop daydreaming and to get to work... err... to bed to "night-dream".

2006-06-17

KDE: Just for fun

Last news from Serenityland. Due to another failure from my regular ISP which hosted Serenity's files, I had to find a webspace and I found a good free one. 200MB for Serenity's Homepage... for nothing and without ads! If you're interested in a free webspace, just go there and change the URL to go to the root of the domain. (www...) Yes, I know this is a kind of ad but when you find good stuff, you must share the info. ;-)

I first made a very quick and dirty homepage then I took the time to re-write it with a nice CSS styling that kinda looks like Serenity widgets style without the round corners... and a logo.

(Serenity logo)


Some people might recognize the logo or have a feeling of déjà-vu. That's normal. I drew it from scratch but it's designed to vaguely mimic the logo of the Serenity spaceship in the eponym movie that concluded the Firefly TV show. It can't stand the comparison because I can't draw... except with geometrical shapes like in a widget style.

On Serenity's homepage, I also put the last version of the sources. I made a slight color change on all the editable widgets like editlines, spin widgets, combobox and the text editor frames. There used to have a very subtle sunken look but it was too subtle. I flattened everything and that's just fine. The widgets are now flat until a mouseover or a focus activation raised an action button and that means no special effect on the edit fields.

The other color change I did is on the toolbuttons. I didn't see why they must have the same color than the buttons. So, they have no color at all. Well, they use the color of their background toolbar which is tinted and raised or sunken on mouseover and on activation. (Please, somebody remind me that I still have to correct the color of the arrow and label.)

I wanted to change the color of the scrollbar slider but I didn't like the result of my various attempts. I just keep the idea in mind for the day I'll find the right color mix.

In the mean time, I played with the window decoration. I still haven't found the killer icon theme for the buttons but I saw a screenshot on KDE-Look.org of Serenity style used with a BeOS-like window decoration. For the youngsters who don't know what it is, that's a windec where the titlebar looks like a tab on top of the window instead of occupying the whole top area. The screenshot used the ugly B2 windec (available in standard KDE) but I liked the concept of an irregular window frame. I just did it. I looked at B2 sources but was too lazy to get accustomed with them so I did it my way.

(Serenity BeOS-like windec)


The titlebar isn't as tight packed as on B2 but you get the general look. I even add the possible to choose where the titlebar pseudo-tab is placed (on the left or on the right). For me, with the closer button on the left, it's better to put it on the left. For the majority of the people, it will be on the right so that the closer button is on the right border of the window. I don't like that but if you maximize the window, the titlebar will expand itself to occupy the whole top area if the windec is configured to have square corners or no frame at all when maximized. I took care of the case when the titlebar is so wide that there is no room left to draw a good empty corner and this setting has become my favorite one.

I'm ready almost ready for a new release. Already! ;-)

2006-06-04

KDE 3.5.3: Everything and more!

That's it, I installed KDE 3.5.3. The dust has even settled down. To be honnest, I was a little afraid I had to downgrade when I just finished the installation. I opened a Konqueror's window and... no background image! I've read something about it somewhere and I thought there was no solution except a patch. In fact, everything was okay once I restarted Xorg. Don't ask what happened. Usually, it's possible to install and keep on working but not this time.

I however found a real bug! No arrow next to the quick browsers icons in my vertical panel. And if I set the panel on the right, it's worst. The arrows are centered on the top of the icons. Weird to say the least. I reported the bug and attached a patch. Already!

This time, I patched Kicker. With KDE 3.5.2, I lived with two annoying visual bugs: The highlighted line on the top of the KMenu and the fact that the menu titles were unnecessarily disabled. The missing arrows were much more problematic. I fixed that, the 2 visual bugs and --while I was at it-- I make the arrows stay instead of appearing only on mouseover. That's better. There are however some side-effects: The search entry line has disappeared from the KMenu --Not important.-- and the entry "Open in terminal" is back in the quick browsers. --Not very useful for me.

I also re-introduced all the patches I made to the GUI in KDE 3.5.2. There was also an highlighted line on top of the popup menu titles. When I started to develop my style, I dug deep to find where I was drawing it... until I dug into the KDE sources to find that it wasn't my fault. Gone! Something that was making my eyes bleed was the ugly framing used around the tab panel (KTabCtl) in KHotNewStuff. Gone! This time, that's a "huge" patch! --Huge for me.-- I had to add an include to be able to ask to the style to draw a regular PE_PanelTabWidget and I removed a tenth of lines. I don't use KHotNewStuff but that KTabCtl is used in the dialog to download wallpapers from KDE-Look.org and it was ugly! It's impossible nobody saw it. Just a few little things like that and KDE looks not so rough on the edges.

Then I had to shake some dust from Serenity too. I knew problems could arise with the QHeaders that could be incorrectly recognized as KMenu titles. I saw such QHeaders in some Kicker's configuration dialog. I had to patch Serenity (again).

I say again because I already made a lot of modifications before to update KDE. An new version should arrive soon.

I started with the comboboxes which are now bicolored, with a slightly darker color behind the arrow. It matches with the spin widgets and the editable comboboxes of which the edit field is in one frame and the controls (1 or 2 arrows) on a flat extention of the frame that raises itself on mouseover. The fun part is that the square wheel I invented for the scrollbars turns out to be rounder than I thought. It fitted perfectly with the spin widgets and the editable comboboxes to achieve the 2 mouseover effects I wanted. The controls are raised when the widget is hovered or has the focus but they are raised and highlighted when an arrow is hovered. The tricky part was the spin widget. It has 2 arrows and it didn't look good to apply any mouseover effect on an arrow that wasn't actually hovered. Any way, I reached my goal with my not-so-square wheel.

(New comboboxes and spin widgets)


The last thing I did what to re-design the progress bars. First, I noticed that Xorg ate up the CPU when a progress bar was on screen. This had nothing to do with the design but the speed. I divided the animation frame rate by 2 and Xorg was using the CPU in a more reasonable way. Now I had some CPU cycles to waste so I could start thinking about fancy patterns. No more stupid vertical bars scrolling in the groove.

(4 pretty progress bars)


I'm not sure I'll keep the glass effect --That's not very serene.-- but you got the idea... in different colors and patterns. The funny part is that the glass effect is the result of an error. I was tuning the sub-routine which "draws" the patterns and I wasn't paying much attention to the part which actually draws the progress bar. Some parameters were set for a previous experiment... and the actual result almost appeared by itself on the screen. I said wow! I corrected the parameters I left aside to do better than the hazard and I was able to say wow again. ;-)

Well, I think I heard cyber-dogs barking at the cyber-postman. I'm gonna check my mailbox...