Thursday, February 04, 2010

interesting bits in 4.4.0 for plasma-*

With KDE Software Compilation v4.4.0 tagged and going through final release engineering processes, early reviews and discussions about it are appearing around the Internet. It's great to see the interest bubbling around it all.

One interesting meme is that "not much has changed". That sentiment is a sign that things are settling down nicely in KDE 4: things aren't moving around as much and there's a sense of predictability again. This is an important milestone.

However, some people are under the impression that pretty much nothing has been done except "under the hood changes". I think this highlights a challenge for our communication around SC 4.4.0: just because KDE 4 has hit an externally visible stable trajectory and the SC 4.3 -> SC 4.4 jump is smooth, that doesn't mean that there aren't lots of new and exciting things in SC 4.4.0.

Let's take the Plasma Desktop, for example. As can be seen in the 4.4 changelog for libplasa, plasma-desktop, plasma-netbook and krunner, we've been busy doing as much new stuff as refining the existing.

We have added a number of "usual suspect" type things: drag-and-drop for wallpaper plugins, ten new Plasma widgets, one new DataEngine and five new Runner search plugins. Let's not forget, though, the plasma-destop Kiosk lock down features or the brand new Plasma Desktop Scripting tool for sys admins, power users and packagers. This feature is being used in several upcoming distribution releases already and offers something KDE has never provided before. (In fact, does anybody know of any other production system that provides such a system for the desktop shell layout?)

Then there is the first release of Plasma Netbook, which is a whole new shell consisting of a little over 6,700 lines of code that isn't shared with other Plasma apps.

There is also the new mouse actions plugins that let you associate any combination of mouse and meta-key (Control, Alt, etc) on activities with actions. In KDE SC 4.4.0 there are six such plugins included: activity switcher, window list, desktop switcher, default context menu (highly configurable, btw; you can turn on/off pretty much every individual entry via the config UI), paste (e.g. to attach to middle click :) and an app launcher. Sensible defaults are provided for these, and those defaults can be overridden by an libplasma application to suit its needs. Since they are plugins (and the API is part of libplasma, so guaranteed to remain BC from SC 4.4.0 on out), it's also possible for people write new plugins of their own. You aren't limited to menus, either!

We have Plasmoids in the system tray, improved and extended animations and many other improvements. Per-virtual-desktop-activities is very smooth in SC 4.4.0 as well, and there were multi-screen fixes even.

Then there are all the nice improvements in KSysGuard and more than you can shake a stick at in KWin, so if we want to cover the KDE Workspaces we'd have to go on for quite a bit longer than this one blog entry. Then we'd have to move on to all the applications that come with a KDE Software Compilation release, many of which have individually important improvements.

It is quite true, however, that much work did go into refinements, bug fixes and infrastructural improvements. For me, the KDE SC 4.4.0 release is a very well-rounded release in this respect. It is full of new features and capabilities (without becoming a Frankenstein of configuration overhead, either!), but it is also full of good maintenance work. This is why, combined with KDE SC 4.3 being a good predecessor, some aren't noticing the new things we're delivering in this release.

Hopefully we can communicate both the feature adds as well as the refinement work effectively, because that is indeed the whole story.

33 comments:

Todd said...

I would say the new add plasmoid menu is a pretty big improvement as well.

gskbyte said...

You have said it many times before, but do you really think that Qt 4.6 improves Plasma's performance (and the rest of apps, of course)?

Thanks for the great job :)

Aaron J. Seigo said...

@gskbyte: "do you really think that Qt 4.6 improves Plasma's performance"

depends on the application, but for Plasma Desktop and Netbook it isn't even debatable. while we have done some measurements to see how much improvement there has been, it really isn't necessary to know the answer to "has it improved" because the difference is very, very noticeable on many systems, particularly smaller ones (as one would expect when it comes to such optimizations :)

gskbyte said...

That's a very good improvement, especially for netbooks and, in the future, mobile phones :).

I want Nokia to release NOW maemo phones, having KDE (or at least, a part of it) in my pocket would be awesome.

Socceroos said...

How are the pillars of KDE holding up? Supporting the buildings being constructed on top of them?

Also, are there improvements that need to happen to the pillars? I get the feeling that some of these pillars still haven't been used by most of KDE SC?

I remember well your presentation at the Google campus on KDE4 and the promise your platform showed. In your estimation, are you meeting those expectations you set back then? Are there areas/pillars that need some more refinement/integration to really 'lift-off'?

These are honest questions with no baggage attached. =)

Emil said...

@Socceroos: It seems from pillars which were being discussed in pre 4.0 days, the only missing one is Decibel.
Solid and Phonon are heavily used by applications.
in 4.5, the new generation of pim applications based on Akonadi are coming.
Nepomuk is being actively developed. However, applications arent using it as much as they can, yet.

Even, iirc there was a project called 'coolness', which was about to bringing desktop effects to kwin, which is already there. And kwin is the most mature FOSS window manager.

I guess since KDE 4.6 Akonadi will mature and more applications will start using Nepomuk. (also, please note that Akonadi and Nepomuk are already intergrated)

Tom said...

SC 4.4 seems to be mid way between the previous release that delivered the first stable plasma desktop with a decent array of stable applications using the KDE platform, and 4.5 (or perhaps not until 4.6) when users will start to see some really big changes in apps as "pillars" like Nepomuk become visible beyond a slightly complex looking search feature.

All the new stuff looks to be a combination of very welcome polishing of existing features, some apps for very specific user groups (e.g. all that science stuff) and some "social desktop" stuff that needs a good amount more work before it gets people out of their web browser.

Ahmed Kamal said...

KDE 4.3 is usable and rox enough for me, and I'm glad to hear 4.4 is even better. If there's one thing I want improved, it is SPEED. KDE rox, but it just feels slow sometimes. When starting a new application or dialog, I could stair for 2 seconds at a grey box!

Can the kde devs please utilize their ninja skills to make kde not only the most feature rich DE, but also the fastest

Aaron J. Seigo said...

@Socceroos: great questions.

"How are the pillars of KDE holding up? Supporting the buildings being constructed on top of them?"

So much of what we've been able to do thus far simply couldn't have happened without them.

One very trivial example: in Plasma, widgets now often update their information automatically when the network becomes available. Solid is the reason why.

That doesn't mean we can't go further, though:

"are there improvements that need to happen to the pillars?"

Absolutely; Phonon needs more work in the backends and for things like webcam capture. Solid needs (and is getting!) Bluetooth support. The networking stack in Solid is all post-SC-4.0 work as well. Nepomuk is growing by leaps and bounds with each release, at a really staggering rate.

Much of this development is driven by the needs of the applications. As we've started to use the Pillars of KDE more and more we've found new things we've needed ... and in KDE fashion those holes are getting filled at the infrastructure level.

"I get the feeling that some of these pillars still haven't been used by most of KDE SC?"

Depends on which one. As Emil noted, other than the missing-in-action Decibel (which will be filled by Qt4 Telepathy, I think), they are generally being used quite heavily.

Even Nepomuk, which is really getting stronger with each release and lacked a number of features that we have now to really make it useful in apps, has been integrated in a number of apps ranging from the file managers to Plasma Desktop to Bangarang to Akonadi.

StarScream said...

@"Ahmed Kamal" I concur. I know it is fast to load / execute instructions however the way the window draws makes it 'feel' slower. It's difficult to describe but it doesn't seem to be as 'snappy' as the 3.5. I think this is probably more of a QT thing. I know there is the video driver blah blah however I have yet to come accross an Intel, Nvidia or ATI machine that 'feels' ( very subjective I know ) as fast as the 3.5 series. Try right clicking the desktop to change the background. You can literally see the plasma activities window being created.

As I side note, I also remember Zack Rusin appearing on TLLTS saying that kde 4 ( he didn't specify which version) will load (as in kdm to usable desktop) as fast as XFCE. I feel thats probably not going to happen.

All in all though I have to admit 4.4 is nice. It's pretty, the usability enhancements are amazing and really feels very natural.

Diego Calleja said...

One thing I'm missing in Plasma are "plasma themes" - not visual themes, of course, but sets of predefined plasmoids. So I could choose a "theme" and start personalizing my desktop from there.

Aaron J. Seigo said...

@Diego Calleja: we already have patches for this that will be merged for 4.5. it's something we've been talking about doing since 4.0, atually.

yman said...

Am I ever going to be able to have a different set of panels for each activity?

peispud said...

KDE4 is coming along nicely, but we are still waiting to customize fonts on the desktop via desktop settings so they match the theme and wallpaper. Being able to change the God-awful digital clock to AM / PM would be nice as well. Everything else is pretty much spot on .

Aaron J. Seigo said...

peispud : "customize fonts on the desktop via desktop settings"

we default to the application font, except for in folderview which does follow the "desktop" font.

we don't yet have any data that says there's a measurable benefit to having a completely separate "desktop" font for the panel, etc. contents that is separated from the general application font used for menus, etc.

"Being able to change the God-awful digital clock to AM / PM"

it follows your desktop settings. so you can indeed change this.

Plonk said...

Not Plasma related, but the feature that would make me upgrade (from 4.3) is window tabbing.

Matthew said...

""Being able to change the God-awful digital clock to AM / PM"

it follows your desktop settings. so you can indeed change this."

Correct, but this really needs to be a setting you can get to from the clock itself. I've yet to meet a single person who figured out how to change that without resorting to a google search, this is the opposite of a friendly UI.

Petri Järvenpää said...

Those mappable mouse actions are really nice usability improvement! Didn't even know we would be getting them, thanks for that! :)

I for one like my desktop stable and fast and I think most of us do. So under-the-hood changes and improvements beat the new-shiny features any day.

Lucho said...

Thanks for bringing another great release :) KDE is shaping very nicely.

However, I agree with the posts about speed. It really has improved a lot, but it still seems much slower than KDE 3.5. I know that the causes are probably very hard to find, cause there's Qt, X and video drivers involved but i'm sure there's still room for improvement.

Keep up the good work :)

Aaron J. Seigo said...

@Lucho: while we still have places we can optimize in our code (and we are doing so iteratively with each release of both Qt and KDE's SC), the vast majority of "it's soo slow!" problems comes from graphics driver performance issues.

i do not write x.org drivers, nor do i want to. just as the people who write x.org drivers don't write plasma code, nor do they probably want to.

so i really don't encourage you to look to me or my team for fixes to those issues.

our optimizations in Qt and KDE will primarily help those who have a well performing x.org stack on which to run software.

Gabe said...

A great host of improvements! Is there a way to disable tap-to-click yet? Perhaps the new mouse application? This has frustrated me since KDE 4.0, where every other DE I know of, from E17 to gnome to windows, has a way of setting/disabling this. Is there something I'm missing?

Aaron J. Seigo said...

@Gabe: tap to click? you mean for trackpads on laptops? traditionally we've left that to hardware specific tools.

there is this:

http://kde-apps.org/content/show.php/synaptiks?content=114270

no reason, other than the author not being interested or the tool not being generic enough, that that couldn't be folded into the KDE SC releases. but you can grab it directly for now. :)

yman said...

Some suggestions/requests:
1. Take the Desktop Toolbox out of individual containments and make it global/universal like the panels are right now. The situation where different versions of the same containments are maintained solely to get rid of the cashew is ridiculous.
2. Add an option to hide all cashews everywhere. I find it hard to layout my panels to my liking because the panel cashews alter the appearance of the panels. This forces me to lay them out based on memory rather than immediate visual feedback.
3. Please improve the visual integration of Kickoff and the classical menu with the rest of Plasma. Right now they look pretty alien in their environment, especially the classical menu.
4. I'd really, really, really, REALLY like it if I could have a different panel configuration for each activity. It's the first thing that comes to my mind in association with having different activities, and I would find it very useful as it would allow me to break away from "one size fits all" panel configurations and really optimize for each workflow.
5. Not Plasma, but still: The notifications, even the new ones I've seen are huge, and there really out to be a way to control them better. I don't want to be notified by Kopete each time a contact changes his status.

The one thing I absolutely can't give up is Folder View. To me it's the killer feature of Plasma. I'm not going back to gnome-panel, even though from my experience so far with Plasma-desktop, KGet, Kaffeine, and others KDE4 seems less stable than GNOME2. The features are just too great.

yman said...

Sorry about #5. Didn't notice System Settings->Notifications

chimai said...

Following the questions of Socceroos, and although this is slightly off-topic, how is Sonnet going?

I'm a GNOME user, so I may be mistaking, but it seems to me that it isn't implemented yet in KDE SC ? Too bad if it's the case, since providing a single and efficient text-correction tool shared by every application would really be a great step forward!

Anyway, your DE is getting better and better every 6-months, at a quite amazing speed. Reading your blog (and the dot & Planet as well) is a real pleasure, and unlike what you're saying I believe that we all see very clearly all this Shiny-New-Stuff© that comes with each new version, including KDE SC 4.4.

Kudos from a happy Gnome who wish a long life to his neighbours the Kool dragons :)

Aaron J. Seigo said...

@chimai: no, Sonnet is there and the text correction is shared by all apps.

what hasn't made it into Sonnet mainline is proper multi-language-auto-detect for single documents

but Sonnet is there (part of kdecore and kdeui) and actively used.

and cheers back to you, fellow F/OSSer! :)

myonv2 said...

I just gave plasma-desktop scripting a try, but wasn't able to set a widget's geometry. Among other things I tried these:
w.geometry = QRectF(0, 0, 128, 128) // This opens the widget's configuration interface o.O
w.geometry.left = 0 // Does nothing
There's a chance that this has been fixed in RC 3, as I'm still compiling packages, but I believe, I've already upgraded all related components.
Has anyone else observed this behavior?

Aaron J. Seigo said...

"but wasn't able to set a widget's geometry"

yes, this was a copy'n'paste error in the bindings that is already fixed.

yman said...

And thank you for bringing us a desktop that is beautiful by design. My mom loves the look, and so do I since I chose it.

Is there any way to install stuff like widgets and wallpapers system-wide using KGHNS?

Panos said...

Congrats on the new KDE release. Simply amazing technology! Tabbed windows, customizable right-click actions, go figure!!! You KDE guys are real artists! I suppose you brainstorm impossible ideas just for fun ("Hmm, how about letting the user stick his head in the monitor and let him see the other side of the rotating cube from the inside?" --- oops, I may have given you an idea for KDE 4.5), but then some devs get crazy enough to actually start a project and implement it :-).

Seriously, you have fantastic ideas and serious skills guys.

As for the performance issues already mentioned, Seigo speaks the truth. My laptop with intel graphics lags from time to time and generally feels a little slow, but my desktop with nvidia is blazing fast. So, it has to be xorg and related drivers.

Gabe said...

Thanks! That tool worked perfectly! It boggles me how you managed to know exactly what I was looking for. It would be superb to have it folded into a future SC, you're right.

I did some research--apparently you're a very _very_ big name in KDE. It boggles me that you're actually commenting to me directly. Me of all people. XD Last I checked, the community was gigantic...

Anyway, still no going back on the whole "can't change the cube caps" thing or whatever it was? ;)

tomwinkler said...

Hi,

I just updated to 4.4 today and have to say that it looks pretty good. One of the first things I did was trying the plasma scripting console. And I have to say that I love it because it allows me to customize my desktop setup for my different needs (home vs. work). The only thing I could not figure out is how I can run my scripts outside the consoles interactive mode. What I'm looking for is some way to e.g. run my .js script e.g. from some shell script (where I do some other configuration stuff like xrandr setting up my external monitor). The "on first run" and "on update" options probably are not what I need. Is there some functionality (e.g. accessible via dbus) that allows me to run a script?

Thank you,
Thomas Winkler

Aaron J. Seigo said...

for security reasons, there is no automatically-run-a-script feature in 4.4. if we can find a nice way to ensure such a thing wouldn't be abusable by random apps wanting to do things like place ads on your desktop we will add it.

the best we have right now is the ability to load a script from disk into the interactive console.

this can be done from krunner with "desktop console /path/to/script" or via dbus with sth like "qdbus org.kde.plasma-desktop /MainApplication loadScriptInInteractiveConsole /path/to/script"