GSoC application draft: extenders.

Rob Scheepmaker r.scheepmaker at student.utwente.nl
Mon Mar 17 17:48:07 CET 2008


Hello Plasma Devs,

I want to apply for GSoC, and have written this first draft of an
application. I would like some feedback on my proposal. I would also
like to know if there's somewhere where I could find GSoC applications
from last year, so that I could get an idea about what's expected.



Project proposal Google Summer of Code 2008

The Project:

When plasma was designed, one of the groundbreaking concepts was that of
extenders. Unfortunately, this concept isn't implemented in plasma yet.
Extenders would allow for a more intuitive and versatile way of
interacting with the desktop. The idea is that so called 'applets' which
are placed in a panel, and have little room to display all information
they're capable of displaying, could 'extend' the panel when a user
clicks on them, hovers over them, or when the applet wants attention.
These extenders could then be detached by dragging them somewhere else,
so a user could take an item of iterest, and put it somewhere where the
user can easily monitor the item. Because a mockup says more then a
thousand words, here are some links illustrating this concept and
applications that could make use of it.

http://plasma.kde.org/cms/1069 (section 'extenders')
http://kde-look.org/content/show.php/KDE+Extender+Mockup?content=30012
http://kde-look.org/content/show.php/Tasks+Info+in+Less+Windows+(mockup)?content=33673

When plasma provides a flexible, yet easy to use interface to applets,
and even applications, lot's of applets will use this feature, making
the desktop more consistent, intuitive and powerfull.

This project would cover the following:

Design a easy and flexible api for extenders, so that both applets and
applications having a system tray icon could add extender functionality
without much coding effort. This design would of course be made in close
collaboration with the rest of the plasma developers, to be sure it's
flexible enough, and in line with the rest of the plasma api.
Implement extenders. Extenders would probably be specialised applet's or
widgets which will be contained in a special containment. Extenders
should be sortable, detachable, and regroupable.
Polish the visual appearence. Extenders should look like they really
belong to the panel, or whatever other containment they're in. So panel
borders shouldn't be visible between the panel and the extenders and the
border should go around the extenders. Interacting with extenders should
have an organic feel to it, so Phase should be used to animate extenders
growing out of the panel, instead of making them appear out of nothing.
Also, detached extenders might show some form of 'title bar' as shown in
the animated mockup.
Make one, or, if time allows, more proof of concept applets that use
these extenders. Ideas for good proof of concept applets include the
following:
    A kuiserver applet that shows all currently running jobs (file
    downloads, burning of cd's etc.).
    An rss applet that can show items from feeds in extenders, and
    where detaching an item shows the the actual post.
    Extend kopete or konversations, so they use extenders for
    showing incoming messages.

About Me:
I'm a student in computer science at Twente University in the
Netherlands. I'm currently in my third year of studying computer
science. Besides my study I also earn some money building web
applications. I've been interested in FOSS software for quite some time,
but recently I got involved in the KDE project and actually committed a
couple of improvements. I've also been working on a new rss plasmoid.
I've learned basic c++ programming skills on my university, and because
of my recent involvement in KDE I've also learned some basic Qt and
libplasma.

I'm hoping to get accepted for GSoC, so I could get a more thorough
understanding of the inner workings of plasma, and improve my knowledge
of Qt. This would make it easier for me to commit usefull improvements
to plasma in the future. I discovered that writing code for software you
use and love, and being able to share that code with the world is very
satisfying and a lot of fun. And being able to look at the code of other
applications to see how they solve certain problems is a great way to
learn. I'd love to be able to spend more time on writing FOSS software,
and GSoC is an excellent opportunity to be able to do that.

The reason I chose for a KDE project is that I really like the open and
accessible community. I also think that KDE is the most powerfull
desktop environment around, and that it has the real potential to draw
people towards free software. And the first thing people coming from
other platforms will notice is the plasma workspace. Because plasma is
such a visible part of KDE, it should be beautifull, flexible, intuitive
and basically just amaze people. I think that the concept of extenders
could really add to this.




Rob Scheepmaker (pinda)


More information about the Panel-devel mailing list