GSoC/GCI Archive
Google Summer of Code 2012


Web Page:

Mailing List:

KDE is an international technology team that creates Free Software for desktop and portable computing. Among KDE's products are a modern desktop system for Linux and UNIX platforms, comprehensive office productivity and groupware suites and hundreds of software titles in many categories including Internet and Web applications, multimedia, entertainment, educational, graphics and software development. KDE software is translated into more than 60 languages and is built with ease of use and modern accessibility principles in mind. KDE4's full-featured applications run natively on Linux, BSD, Solaris, Windows and Mac OS X. Due to our commitment to our technology platform and to our open-source heritage, KDE libraries are available under the LGPL versions 2 and 3 at a minimum, and KDE applications are available under the GPL versions 2 and 3 at a minimum.


  • A feed aggregator for ownCloud The goal of this project is to create an ownCloud application for reading and managing RSS/Atom feeds. As opposed to most of the aggregators existing on the web, the ownCloud aggregator will give the user full ownership and control over the data, which is in the general philosophy of ownCloud. The aggregator will have a web user interface and will integrate with other applications in the ownCloud suite. Moreover, it will provide a web API for synchronization with mobile and standalone desktop feed readers, KDE Akregator above all.
  • A sandpainting brush for Krita Sandpainting is the art of rearrange powdered pigments onto a surface to make an unfixed, or fixed, granular painting. Unfixed sand paintings have a long established cultural history in numerous social groups around the globe. This project propose a simple unfixed sand brush to the digital painting software Krita, based on grain particle simulations inspired by two dimensional Distinct Element Modelling methods.
  • Add an Infinite Canvas / Wraparound mode for Krita Krita focuses on texturing, matte painting and comics drawing. For texturing, the Krita image model needs to be expanded in two ways: First, the canvas needs to be made infinite, so the user can paint textures of any size without stopping, and second, a mode for creating tileable textures where painting strokes that go off the canvas, wrap over on the opposite side avoiding texture seams along the edges. Panning in this mode would essentially work just as an offset for the whole canvas to wrap around, allowing artists to check tiled textures for seams.
  • Advanced features and enhancements for Plasma Media Center After the release of Plasma Media Center 0.9 recently, this project aims at adding advanced features to it, such as tagging, online services etc.
  • Amarok will shine like new. «Amarok + QML = Love». Amarok's context view has always been, for historical reasons, an half-baked technology. However, after 2008 new technologies have arisen which could make the user experience in Amarok much smoother.
  • An OpenGL Mode for Marble This project is about adding an OpenGL ES mode for Marble. Users should be able to choose between the classic software-based rendering mode, which should remain the default for now, and the new OpenGL mode. The major goal is to get basic features of maps, such as textures, float items and geo-located items, displayed using OpenGL.
  • Asynchronous errors handling during file transfer It is a continuation of my work by making error handling during files copying (or moving) asynchronous. I’ve implemented this functionality in KIO and created a dialog to represent process to user. But since many users considered dialog to be too overloaded, I started to work on completely new design together with Björn Balazs. Now mock-up is almost ready. Also I will re-implement directories creating phase (which is a bit tricky) and create a lot of tests to cover all possible use-cases.
  • Bibliography engine integration and UI to manage citations in Calligra Words Currently Calligra Words can add/remove citations and bibliographies. But it doesn't store citations for future use and doesn't have any interface for bibliography engines. The aim of this project is to provide a user interface which will let the users manage and organize citation database and to provide an interface for bibliography engines which allows them to insert citation and bibliography in Words.
  • Bullet Integration Into Gluon As the Gluon wiki describes it "Gluon is a cross-platform free and open source 2D game engine from KDE. It aims to make life easier for game developers by providing a simple but powerful API to handle 2D objects, sounds and inputs.", Gluon will be a revolution in the way we've seen 2D game creation. People will be able to create new games in a more flexible manner, while the Gluon web content system will allow them to earn rewards. Integration of Bulletphysics to Gluon is a huge addition in this direction. Since the gaming world has entered the rage of Good effects and better look(better Graphics) ,the integration of Bullet physics to Gluon engine provides game developer to create games with clear effects such as collision detection, collision response etc.. in Gluon. This will be huge advantage to develop modern graphics games through Gluon.
  • Digikam - Video Slide Show Generator People wish to have a tool to export images as video slideshow. This is what tools like man2dvd,imagination, image2mpeg does, or we can use command line tools of imageMagick and mjpegtools to export images as video slideshow with required transitions. However the powerfullness of these tools come at a price: complexity. The goal of this project is a develop a kipi frontend tool using these tools(imageMagick and mjpegtools) to export images as videoslideshow. This must be able to do authoring with image contents, for example to change order of images, slide time pause, add transition effects, add audio files as a background. This tool must be able to export to video files, as MPEG, AVI DIVX, or to video media, as CD and DVD video. The tool must be portable under Linux, MacOSX and windows. Bug:
  • digiKam: Improve integration of Photivo digikam and Photivo are perfect complements: digiKam is the best photo management software I have ever known. The raw file developing tool Photivo offers a remarkable feature set, high quality of processing and an optimized workflow. My motivation is to make digiKam and Photivo nicely integrate into each other in order to combine the best out of both applications.
  • Face Recognition for Digikam Digikam is a very nice photo management program. This project will add face recognition feature in digikam and will make it more user-friendly. The target is to implement a efficient face recognition algorithm and a nice user interface for the user so that they get a nice feeling using it and the user can train the system with their interaction.
  • Facebook Integration for Choqok This proposal desribes the motivation for integrating Facebook into Choqok, the KDE microblogging client. It also outline the implementation details and the tentative schedule
  • Focus Tracking in KWin / KMagnifier Currently the KWin zoom plugin and KMagnifier implement focus tracking using Kaccessible which only works for Qt/KDE applications. In this project I will change the existing code in the KWin zoom-plugin and KMagnifier to use DBus to connect with AT-SPI2 and fetch needed information about focused widget. Also I will identify and fix cases where common applications are not sending the focus events and correct accessibility problems in Qt's widgets as they emerge, for example Qt's tree-views.
  • Further Improve Kate's Vi Input Mode Fix various bugs in the vi mode, improve the integration between selections, folded code and ex commands, and revamp the repeat system.
  • Gluon: Implement Saving/Loading Gluon Engine's Game State The task at hand is to implement a system to enable saving and loading of game-states in games created using Gluon. Additionally, speeding up of the same process is to be implemented.
  • Implementing hard disk health monitoring and improving ISO file management features in KDE To create a library exposing SMART HDD health data as a part of kdelibs with multiple backends. Then create a KDE application for viewing SMART hard disk health status, viewing relevant data and for running self tests,etc., with a focus on having a user-friendly interface; along with a HDD health plasmoid,etc. A streamlined application for burning ISOs and copying disks in as few clicks as possible, will be created and integrated with other parts of KDE. Mounting and creation of ISOs too will be implemented as simple tasks run from within dolphin. Overall focus will be on complete integration
  • Import Tool Revamp in digiKam digiKam features a graphical interface to access and download pictures from digital cameras. Code is rather old, using Qt3Support classes for the icon view, the UI code intermangled deeply with backend code, and has not seen very much care and love for some years. This project would involve taking the old code apart, rewriting a clean code base backend and front-end, but also adding user interface elements to make the most important everyday task as easy as possible.
  • Improve KDevelop Ruby Support Work on the experimental Ruby language support, offer basic navigation, code completion and DUChain integration features.
  • Improve OpenFormula-support Calligra Tables supports the OpenFormula-specification to implement formula functions. To fully support all of the defined heighest level 4 we need to add support for following 18 formulas which are missing at the moment in Calligra Tables; averageif, averageifs, b, chisqdist, chisqinv, countifs, critbinom, dde, external, forecast, hyperlink, legacychitest, linest, logest, networkdays, percentrank, prob, sumifs. Every of those 18 formula should come with unittests to prove that the formula is working as expected. Also every of the formula needs to have documentation so it can be added/edited from within the UI.
  • Improve saving of charts to OpenDocument in Calligra The Calligra chart plugin makes it possible to load, display, edit and save charts within Calligra. It can be used in all Calligra applications including Words (the word processor), Tables (the spreadsheet application) and Stage (the presentation application). While loading and displaying Microsoft Word, Powerpoint and Excel 2000/2003/2007/2010 files and ISO OpenDocument ODT, ODS and ODP files works very well, it is rather bad at saving them back. In lot of cases charts are basically lost after loading+saving a file. The goal of this project is to fix that and improve the current situation.
  • Improve the Formula Shape Improve the Formula Shape for Calligra in the areas of drawn formula components, basic math utilities, inline editing, general layout of formulas and fonts and provide support in MathML for 'XML entities'. Formula shape would definitely need these features to be complete. Many of the users would love to have formula shapes improved and I feel these are great enhancements.
  • Improving Data Storage, Logs and adding DSO catalogs to KStars My proposal aims at improving the way the data is handled inside KStars. All user data which is currently being fed by multiple text files can be consolidated into a SQLite database which also makes the data more manageable and resolves many issues. This will also let me improve drastically on the ability to create portable logs about sky objects with a detailed interface and storage. However, in cases where reading the text files (comma/space/colon delimited) is necessary, I shall create separate provisions for processing them which is robust, tested and reliable. I shall also target the way the sky objects are stored and referenced and transfer all those objects to another SQLite database to make the data more manageable.
  • Integrate kwin with Plasmate SDK Right now Plasmate SDK doesn't provide any kind of support for kwin. The goal of my proposal is to add kwin support inside the Plasmate SDK.
  • Integrate Spotify into Amarok This project is to integrate Spotify collection and music streaming into Amarok. So that users can login into Spotify, access their playlists and stream & play music through Amarok.
  • Inter-ownCloud Instance Collaboration ownCloud is an open source PHP based software which allows cloud based storage service when installed. It's being actively developed and has come a long way in very short period of time. One feature it lacks is sharing files between different installations of ownClouds on different servers. My idea is to allow two different ownCloud instances to connect and collaborate.
  • Introduction of Context Action Based Layout and UI Improvements in Gluon Creator Gluon Creator, as we all know is that wonder pen, that allows a gaming freak to wield his magic with click-and-go! The craze for game development has grown exponentially in terms of popularity in the last few years.For an open source lover, an obvious choice to start with is Gluon Creator. It would be so awesome, if everyone, from a novice to a professional feels elated and at ease while dealing with creator. The project not only caters to this, but also aims at introducing a Game Distribution Wizard, that will reform the way users can share and enjoy games! Finally, I will reform many parts of Gluon Creator's current UI layout, so that it is more informative and usable :)
  • Kate Part - Script IDE In this project i am aiming at making Kate Parts scripting possibilities more user friendly. The planned improvements include features such as auto-completion and debugging. I will also try to make scripting available for other applications via the KTextEditor interface.
  • Make KStars more usable to beginner astronomers by adding “What's Interesting...” feature to KStars and by making “Star Hopping” feature user-configurable. Often beginner astronomers of KStars open up KStars, look around a bit, but then can't figure out what to do next. This project aims to make KStars more beginner friendly through a new feature called "What's Interesting..." This feature will consist of a QML based easy-to-use user interface that will suggest sky objects currently visible in the sky taking into account the equipment-wise and location-wise limitations/availability of the user. The user's experience level and interest in astronomy will also be taken into account, thus providing the beginner/intermediate user a more personalised experience. Also this project aims to make the star hopping feature of KStars more usable by giving the user the option to specify equipment and location conditions.
  • Make plasmate ready for release Plasmate is the Plasma's Project SDK. The proposal is about making a first release of it.
  • Message Filtering Plugin System Create a completely asynchronous modular and extensible system that enriches messages before they're dispalyed to the user. These includes embedding images and videos from links, Translating messages, (re)-formatting them nicely, reading out loud etc.
  • Modifying shape animations in Calligra Stage Calligra Suite is a set of applications developed by KDE community. Within this suite there are office applications, as well as Graphic applications. Calligra Stage is the presentation application, aimed to be an easy to use yet still flexible application. At present, Calligra Stage can only show shape animations it loads from the file. It is not possible to add, edit or remove shape animations using Calligra Stage user interface. Animations are an important feature of all presentation suite. Users expect to use animations in order to enhance how their slides look and enforce the message of a presentation. Taking into account the importance of providing future users of Calligra Stage with this feature, the goal of this project is to provide a user interface which let the user to easily add, edit or remove shape animations, manage animation trigger events and change animation parameters. At the end of the project I expect to deliver to the community, an interface to add shape animations to Calligra Stage presentations, taking into account usability and flexibility to future improvements of the animation framework.
  • Modularized, server-aware IRC protocol handling for Konversation Rewrite Konversation IRC's protocol handling to be plugin-based for greater extensibility and intelligent runtime adaptation to different server implementations.
  • Multimodal Accessibility: Using Computer Vision to improve Speech Recognition in Simon A major obstacle for command and control speech recognition systems is to differentiate commands from background noise. Many systems solve this by using physical buttons or certain key phrases to activate/deactivate the speech recognition. This project explores the use of computer vision to determine when to activate / deactivate the sound recognition using visual cues. For a media centre or robot applications, it would make a lot more sense to only activate the recognition when the user is actively looking at the screen/robot and is speaking something. This is strikingly similar to the day-to-day communication between humans! Face recognition can also be employed to provide different speech models for different people. In this way the media centre could adapt to different people in one household. Furthermore, In the current version of simon, users have to activate/deactivate the simon manually or using voice commands. In addition to that we can perform the gestures to control the on/off states of Simon by itself.
  • Natural Earth Vector Map in Marble The current "Atlas map" is based on the MWDB2 dataset. The data is pretty old and the whole implementation that covers the Atlas map still has a few traces of "historic" code. There's a new proposal that would introduce the high quality Natural Earth data. This would require several changes to the Marble code and its data. See
  • New interface for Cantor Currently the interface is one of Cantor's weakest parts. I'd like to write a more flexible and user-friendly interface for Cantor, and once this is done, implement a new input tool using some the newly gained flexibility.
  • OCS specific JSON parser in Attica Attica is a client library for the Open Collaboration Service protocol. Open Collaboration Services (OCS) is a common protocol for providing social networking and collaboration across different services. My task would be to write a JSON parser in Attica, as part of the ongoing process for creating a standardized JSON interface with OCS.
  • OpenStreetMap vector rendering with tiling support for Marble Improve Marble's OpenStreetMap data support by making it able to read from raw .osm data and render it in vectors. The main problems that will have to be faced are developing a new tilling scheme for managing large data amount queries, extract relevant information depending on the zoom level and match the actual Marble's zoom leves with OpenStreetMap's stepped zoom.
  • Perspective Drawing in Krita Krita is a 2D painting tool, but artists often need to give the illusion of depth. Krita has two tools to help the user draw perspective correctly: the perspective grid and the perspective assistant. The latter is more advanced, but needs improvements to become a real star feature. It needs to be expanded by allowing real 3D objects to be important and put into perspective. This means rotation, setting the vanishing point, scaling, and then integration with the paint tools. At the same time, to get into the codebase, the student should implement other missing features in the perspective assistant.
  • Port Plasma Calendar and other widgets to QML The primary goal of this GSOC project is to port Plasma calendar and some other of the existing plasmoids to QML. The primary goal is also to improve the calendar Plasma widget.
  • Porting Games to a More Modern Graphics Framework With this project I aim to port as many games as possible to the new (and mature) version of QGraphicsView.
  • Porting KDiamond (game) to Qt Quick KDiamond is one of the addictive KDE-Games. Whilst the game is very intuitive to play, I feel that the gameplay and the user interactions can be improved to make it more complelling. My proposal is to port KDiamond to Qt Quick - which would allow me to enhance the UI for better gameplay, and with the UI capabilities of QML - give a new feel of the game to the player. I also plan to add some more UI components like - dialogs, particles effect, transitions to the game to to make it more engaging and fun to play!
  • Porting KIPI-Plugins and Libkipi to KDE XML-GUI digiKam has two plugin architectures: one for the Album GUI(which includes Kipi-plugins and which is shared with other kipi-host applications) and one for the image editor(implemented using KDE XML-GUI). The first one was written before the release of the KDE XML-GUI and now is deprecated. It must be rewritten in order to be more flexible and to permit a higher degree of customization of the GUI with less effort using XML configuration files.
  • QML Plasmoid for Plasma NetworkManagement Create a new shiny plasmoid for Plasma NM using QML technology. The backends will remain in C++, just the user interface will be ported to QML. This new plasmoid will make the code simpler and improve its readability and maintainability. Also, QML can support more graphical artifacts than the C++ one.
  • QMLify Plasma widgets The aim of this project is to port some of the plasmoids that are currently written in C++ to QML. A great advantage in porting it is reduce the code maintenance effort for the KDE community. The plasmoids written in QML will have considerably less code as QML allows the creation of fluid UIs in a powerful declarative way.
  • Replacement for KmPlot This project is about to introduce a new application to KDEEdu suite. My application born as a fork from KAlgebra and I've been working on it for almost 2 years. Actually it has many features for drawing math functions (those features doesn't exists in KAlgebra nor KmPlot)
  • Semantic desktop collection in Amarok Nepomuk has been a great semantic framework in recent years with many applications like Dolphin using it for managing metadata associated with its files and resources. But Amarok, still doesn't make use of the existing framework which comes bundled with any KDE distro. So, the objective of the project is to develop a Nepomuk based collection backend for Amarok which is functionally equivalent to the existing embedded MySql backend. An earlier attempt to achieve this was made this in GSoC 2008, but it never went on to be implemented and bundled along with the Amarok package because of reliability and performance issues. This is another attempt to make use of the excellent Nepomuk framework in Amarok and make it more semantic.
  • Simon SPHINX support Creating fully functional Simon using SPHINX including support for (SPHINX) base models.
  • Social Music - Tomahawk features in Amarok Tomahawk is a cross platform, open source social media player that allows users to share music seamlessly and listen to it anytime, anywhere. Specifically, one of the key features of Tomahawk is the ability to connect to other's music collections. Providing that Tomahawk has gracefully demonstrated how wonderful could be if people were socially connected by their music, it would be a great idea to follow their path. Unfortunately, Amarok doesn’t have this ability yet, but this could be solved by making the use of some Tomahawk code in order to support the creation of a new Amarok service. This service would make possible to share user’s music files with online friends, thereby allowing them to listen to one another’s tracks. All that with the necessary precautions to maintain compatibility with Tomahawk network protocol.
  • Social services integration with KDE Workspaces (Plasma Desktop & Active) KDE Workspaces still miss strong integration of popular social networks and services like Facebook, Twitter and others. This project aims at bringing the social experience right to the desktop (and tablets, too).
  • Solid API extension for partitioning, and a Dolphin plugin to use it Extending Solid to support partition management operations and developing a Dolphin plugin that uses this new API in order to provide an easy partitioning interface to users.
  • Statistics synchronization for pluggable devices and Amarok can maintain useful per-track play statistics and meta-data such as: play count, first/last played date, rating and labels; these are tracked for each collection separately. This project will implement statistics synchronization between all collections that support them (local, iPod) in its first part. Second part is to implement synchronization of the statistics from scrobbling services such as to Amarok. (other way around already partially works)
  • SUPPORT FOR PIVOT TABLES IN CALLIGRA SHEETS Pivot Tables will be a data summarization feature for data visualization application (Calligra Sheets). Users can summarize data (also from ods files) by simply using drag & drop functionality. User has the freedom to choose the interested fields to work with and organize/summarize data as he/she wishes. It gives the user the analytical power by allowing him/her to rotate/transform columns to rows and vice versa and hence called “PIVOT”.
  • Template System for KDevelop A template system for code creation in KDevelop. Such a system currently exists for starting a new project, but I would add similar functionality for individual files, most notably for classes. I would also add an interface for creating and editing these templates. Additionally, users will be able to download and/or share these templates via GHNS.
  • Tile based rendering in Okular page view To display a document, Okular currently renders the entire page at once even when only a section of the page is required. This can lead to a lot of memory consumption specially at high zoom levels. My proposal is to develop a tile based rendering for Okular page view so only those tiles needed will be rendered and shown.
  • UPnP / DLNA plugin for digiKam UPnP is a standard which allows discovery of and access to media contents in a home network. It is supported by many modern TVs and media receivers. With large collections of digital photos presentation on a TV is a natural solution but is not easily possible at the moment. This project will implement an inbuilt plugin in digiKam, which will let the user export her images on her home network and visible on all DLNA compliant devices.
  • Video Metadata Support All recent digital-still camera devices provide video capture. digiKam must be able to manage these files as it do with images. digiKam can already play-back video and register files to the database, but it lack important metadata used to catalogue and sort items (as date, camera name, and all record conditions). To improve video files support, video metadata management done in background needs to be improved. This requires extensive work to be done on Exiv2 shared library, the back-bone of digiKam for photo metadata handling.
  • Website design and implementation for GamingFreedom/Gluon Gluon is a project that aims to deliver a complete framework for creating and playing videogames. In order to give the player a great gaming experience we need to give him also an awesome distribution and feedback service. What's really missing is a cutting-edge website that satisfies players' desires like sharing statistics and games, discuss games with friends and much more. This can also help development allowing developers to receive feedback quickly and respond to it.
  • Write a KDE game using QML/QtQuick This project idea involves porting an existing game from KDE Games to QML/QtQuick, and realizing how libkdegames can be evolved to more support QML games in future. For this purpose, I propose to port KBreakout.