Yahoo! Weather for KDE Plasma Desktop

04 April 2015 Update: The very first port to Plasma 5 is done and released.

The default weather plasmoid stop working many times. :–( So I just decided to write a new weather widget in QML. Aims to be a fast and reliable alternative.

Yahoo! Weather Widget

Yeah, the name is Yahoo! Weather Widget. Just to clarify that it’s not an official Yahoo! product. It implements Yahoo! Weather RSS API though.

QML is great but lacking of many essential elements in Qt 4. I’ve seen huge improvements in Qt Quick 2.0 which is part of Qt 5. So, hurry up! KDE Frameworks 5 and Plasma 2!

You can check this plasmoid on kde-apps. Please, feel free to comment.

Contribute to

If you speak languages other than Chinese and English, please consider contributing to this widget’s translations.

  1. Download pot file
  2. Rename it to a po file
  3. Edit it using a tool like Lokalize or just a normal text editor
  4. Send it back to me via Email (find it in About) or whatever you like

The best way to contribute to this project is to fork this project on GitHub! Modify and send me pull requests.


Plasma Applet about China Air Quality

Actually I’ve uploaded this plasmoid to kde-apps since about two months ago. The applet does support English and Simplified Chinese. However, the api returns only Chinese strings, which makes this applet looks like Chinese-only.

Thanks for’s free API. Now you can check the city’s air quality index (AQI) in mainland China, just in your favourite desktop environment.

The applet is totally open-source and free for everyone. You can check the source code on Git@OSC.

Radeon Dynamic Power Management Control Plasmoid

After nearly a week silent, I’m back with a new QML plasmoid for your KDE 4.x. Though I regarded it not as very helpful… 🙂

I think you probably know that AMD open-source Radeon driver has already supported dynamic power management (DPM) since kernel 3.11. Like the old lousy power-profile management, it’s controlled by things like echo high > /sys/class/drm/card0/device/power_dpm_force_performance_level. Not a big deal, but inconvenient if you got a laptop and need to control it frequently. Yeah, it won’t automatically switch to performance from battery when your laptop’s ac plugged, or vice versa.

Thus, here is the plasmoid applet I cooked today, it’s premature but capable. Although a few things I should mention here.

  1. Display may be incorrect after switching forced performance level.
  2. Buttons won’t adjust their height, hence it’s ugly if you resize the widget to a taller one.
  3. QML doesn’t support access to external files directly, so the method is dirty and you might not like it.

Well, if you want to know, I’ll talk about the implemention of write and read in QML.


Thankfully, /sys/class/drm/card0/device/power_dpm_force_performance_level is a plain text file, at least it can be treated as one. So I use XMLHttpRequest to read this file. @_@ I told you that you won’t like it.


We tend to use echo to write into DPM files, so just go on, use plasmoid.runCommand to execute echo.

I really appreciated aseigo in #plasma IRC chanel to help me figure this out. Just to blame KDE documentations for putting plasmoid API stuff under Javascript sector so I can’t find these in QML sector.

Before use runCommand, one should add LaunchApp as a required extension in metadata.desktop file.


Basically, plasmoid.runCommand(exec, [,argsList]) equals exec args1 args2 args3 etc.