Archive for April, 2008

GSoC extenders project

April 23, 2008

This week the accepted Google Summer of Code proposals were announced and my proposal got picked! 🙂 I’ll be implementing extenders in plasma, and will be mentored by aseigo. I’ve never really had the urge to blog before, but seeing how I always enjoy reading other kde developers blogs I decided to start one myself. Here I will post any interesting developments on my SoC project.

So who am I? I’m a computer sciences student living in Enschede, The Netherlands. I’ve been very interested in free software for quite some time and recently got involved in the kde project, where I contributed a bit to plasma. Besides some other smaller stuff, I’ve been writing the RSSNOW applet. It’s located on svn in playground if you’re interested. It’s a bit broken at the moment with all the WoC porting and api review going on in plasma, but I might have some time left before SoC coding starts to beat it into shape. If you want to help out, please ping me in #plasma.

… anyway, extenders… what are they? You may have heard of them before, it’s one of the ideas from very early in the design of plasma actually. An extender is a brand new interface element which can make the desktop far more intuitive.
From my proposal:

Extenders are a place for applets where they can put widgets on. If applets live in a panel, extenders will be hidden until the user clicks on the applet or the applet wants attention. When that happens, the extender seems to ‘grow’ out of the panel, extending the space where the applet can display information. Items on an extender can then be detached by dragging them somewhere on the desktop or in a panel, where they live on independently from their source applet. If a lot of applets use extenders, this could revolutionize the work flow of the user.

So why is this great? Well, to start with, it allows for easier customization of the workspace. Think for example of a system monitor applet which shows all kinds of items, like cpu usage, network traffic and cpu temperature. When you have this applet on your desktop it could show you all this info at the same time. When constrained in a panel it could for example only show you cpu usage. The applet could put the other items in an extender. When a user clicks (or hovers?) the applet, the extender would appear to grow out of the panel to show all items. Now the user can drag for example the network traffic to his desktop or panel, where it can exist independent of the source applet.

Other possibilities include a kuiserver applet that shows running file transfers, a system notifier applet that uses exenders so you could for example detach a received email by dragging it and dropping it somewhere else. (hi dimsuz :)) A TODO list applet, that ‘collects’ extender items from other applets by dropping them on it, so you can organize your information in a convenient way. And, since plasma is all about clocks, a clock capable of showing multiple timezones in an extender (something like the gnome world clock, only much cooler ;)). There are lots of possibilities… I’m interested in hearing more suggestions.

Now is the ‘community bonding period’, so I’ll mostly be reading api docs, getting to learn the plasma codebase a bit better, hanging around on irc, stuff like that :). Once I’ve got something interesting to show, I’ll blog again.