Saturday, May 31, 2008

"I miss the applet which shows system usage"

...is one of the comments on Sune's blog. "I won’t call it a a must-have, but I’d love to have it back :D". Well, I call it a must have, that's why I've ported it to KDE4 a week ago:The code is not in svn yet (here is the code for now). I still had issues with correct resizing and believe there was also a bug in the plasma lib when I developed it which seems to be fixed now. I didn't have time for more testing, but finally this has to go in for KDE 4.2 :)
Besides that, I'm not yet content with how the data engine publishs data. The situation is that all system monitor data is extracted in one tick, but I still would like to publish it in three categories: cpu, mem and swap. But if I do so, an applet's dataUpdated() function is called 3 times and that's not what I want. So for now I put the data into the category systemmonitor and named the items cpu-total, cpu-kernel, ..., swap-total, swap-used, mem-total, mem-kernel, mem-cached, ... However the other way of categorization would be better :) Any ideas?

10 comments:

BCMM said...

Definitely a must-have. Thanks for porting it!

Gilles said...

How does it work with multiple CPUs ?

Is it possible to have 1 "bar" for each CPU (AFAIK this is not possible with the KDE3.x version) ?

Aaron J. Seigo said...

wheeee! one of my favourite kicker applets! (seriously)

looking at the code, i noticed that the dataengine sets a polling interval on its own. it would probably make more sense to allow the applet to define this itself and let DataEngine schedule the calls.

the connection in the applet would then be:

dataEngine("systemmonitor")->connectSource("systemmonitor", this, 500);

this would allow for much more flexible usage of the engine and more plasmalike control from the applet.

in any case, there's already a systemmonitor dataengine in playground/base/plasma/engines that uses ksysguard's library and is pretty complete.

it has all the entries needed, including per-cpu numbers even =) maybe you would want to look into that...

that engine needs some clean up as well, however; e.g. it probably shouldn't have separate sources for each aspect of cpu (total, sys, wait, user, idle)

also, the painting of the bars could be made to be more beautiful/sexy. i could whip that into shape if you aren't against having something prettier than straight blocks of colour; in fact, with a QLinearGradient it should be possible to paint each bar in one go =)

it may even make more sense to use something like Plasma::Meter for this, though that it would probably require adding a bit of API to Plasma::Meter to allow assigning colours to different entires in the data map to turn it into a "multi"-meter

dhaumann said...

Gilles: Right now it can only do the same as the KDE3 version. But I plan to extend it to support multiple CPUs, maybe off by default. Especially for developers this would be useful.

Aaron: Thanks a lot for your information. Then I think the right way to go is to use the already existing data engine. I've just checked out the code and will have a look during the next days :)
I agree that the painting can be improved, that's where I hope the artists will step in ;) Besides that, I liked the very simple appearance so far. Let's see...!

Bille said...

This is the single biggest moment in my life since KDE 4.0 was released. Get that thing in SVN now!

Bille said...

Oh by the way: I'm for an uglifying of the appearance. I've had a patch for the KDE 3 version for ages which allows me to fill the bars with a QBrush monochrome pattern.

Rich said...

That's great! That's one plasmoid I don't want to be without when I switch to KDE 4 after lenny is released.

I found a similar project at
http://kde-look.org/content/show.php/System+Status?content=74891
Is it possible to avoid duplication of efforts?

andreja said...

Great, the simple, no-bullshit monitor is back! Many thanks!

Jano said...

Must have also here. I've been using xfce as of late in another computer and there is a complete suite of monitors using bars with unified appearance: cpu, memory, swap, network use, space left on devices, wireless quality... We don't have all of these in kde but this is a good start.

dhaumann said...

I have no idea why planetkde.org suddenly shows my blog from 7 months ago, but this reminds me of indeed pushing this into playground. After all, it's something I finally want in my KDE4 desktop ;)