Plasma Roadmap Update
With all the buzz in the air about the exciting future of KDE4. I decided to take a moment to post a status update on what is left to be done in order to bring Plasma onto the Linux desktop and how YOU can help!
The SVN Roadmap
Inside the trunk/kdebase/kicker directory of the KDE SVN repository is a file called TODO_KDE4 that sheds some light on where we are in the roadmap. For simplicity I have duplicated it in HTML below:
Itemized list of works need to be done in kicker for KDE4 porting and Plasma framework.
|
|
Accomplished |
|
|
In progress |
|
|
Not started yet |
|
Not determined |
Work:
- Port kicker to KDE4/Qt4
- Get kicker/libkicker building (minimal port)
- Get applets, extensions and menuext building
- Move KPanel* classes from kdelibs/kdeui to libkicker
- Qt4-ize kicker (remove remaining Qt3* classes)
- Make the kicker actually run
- Create Plasma libraries (for applets and extentions)
- Decide what to offer to applets
- Split libkicker to become libplasma and libplasmaext
- Wrappers for common needs (like an html widget)
- Harmonize with superkaramba’s library
- Decide and implement graphics framework
- Create bindings for libplasma
- Revisit KPanel* classes
- Tie the KConfigXT settings into these classes
- Move hiding/etc code from ContainerExtension to KPanelExtension
- Rethink placement code
- Allow for Extentions to communicate the form factor to contained items
- Allow applets to adapt to various form factors with as little code as possible
- Decide what to offer to applets
- Extend kicker to become the plasma manager
- Make plugin, etc. management classes ready for plasma
- Revisit Container* classes
- Removal of cruft
- Implement desktop widgets
- Subclass KPanelExtension
- Start working on a layout and positioning scheme
- Decide on the requirements
(must be easy, must allow autopositioning/growing of applets, etc.)
- Implement new Plasma elements
- Revisit kickertip to make it better
- Agree on a list and overall architecture of the required elements
- Extenders
- New buttons
- New applet management UI (handles on panels, $SOMETHING on the destop)
- ? Interoperability of applets over the network
- Use new Plasma library in applets and extentions
- Port existing applets and extentions
- Create new noteworthy applets and extentions
- ? Build an applet creator/studio for packaging JS/Ruby/Python applets
- Provide a development framework
- Test suite
- Documentation standards
- Diagrams of plasma structure
- API documents for libplasma
- Applet development tutorial
How to Help
The best way you can help right now is by setting up a kdesvn-build environment of KDE4 (see the guides here and here. Once you are all setup and have a working build, try to find some QT3 cruft to remove with a command like “find ./kdebase -name “*.c*” -exec grep -H Q3 {} \; | grep -v svn”. Once you port the old syntax to QT4 (see this guide) do an “svn diff” and post it to the kde-core-devel mailing list. Have fun!
del.icio.us | Digg | Facebook | StumbleUpon