GSoC/GCI Archive
Google Summer of Code 2013


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.


  • [digiKam] Port Showfoto Thumb bar to Qt4 Model/View porting showfoto to Qt4 Model/View,Making a new class depends on KUrl class, and adding some new functions like drag and drop and a right click menu
  • [Plasma/KWin] Shell switching and conditional component loading Dynamically loading shells and components based on the environment (device capabilities, properties, input devices...)
  • A New Query Parser and Auto-Completed Input Field for Nepomuk The Nepomuk query parser is responsible for parsing a user-entered query into a query tree that can be translated to a SPARQL query. The current version of this parser uses regular expressions and doesn't allow the implementation of an auto-completed input box. It is not able to parse human date and times. This proposal is about implementing a real parser, having a syntax tree that enables auto-completion. It will be able to parse human date-times.
  • Adding Friction force and Pulley-cord Object in STEP The KDE Physics Simulator-STEP, currently does not support pulley-cord objects, and there is no way to simulate situations involving Friction. The frame is fixed during simulation to Ground-Frame and hence it is not possible to observe relative-motion between bodies Variable density of mass and charge cannot be created. My proposal is to implement these things in STEP.
  • Amarok MTP Collection Rewrite With Emphasis on Android Device Support MTP is the official way to manage files on millions of recent Android devices. The MTP support in Amarok will be completely rewritten under this project, drastically simplifying the design, using up-to-date technologies and future-proofing the support with recent advances of Linux MTP stack in mind. It will also allow for a deprecated framework to be removed from Amarok and will add new features like on-the-fly transcoding.
  • Amarok: Audio СD collection refactoring. Main goal of this project is to re-implement AudioCd support in Amarok, since current implementation suffers from bunch of drawbacks.
  • Animation support in Krita This proposal discusses the scope of animation in Krita and how it can be implemented.
  • Assisting in the first release of Artikulate While attempting to learn a new language, the most basic and common problem that an individual faces is of speaking the language with fluency and proper pronunciations. Artikulate, a pronunciation trainer, aims at improving and perfecting the pronunciation skills of the user, thereby helping in speaking foreign languages with ease.
  • Better touchpad support Currently KDE doesn't have any built-in tools to configure touchpad. It's strange when even lightweight desktops like XFCE can at least configure touchpad without any third-party applications. I want to implement: 1) System Settings module for touchpad configuration 2) Plasmoid that will allow enabling/disabling touchpad 3) Daemon that automatically disables touchpad when external mouse is plugged in
  • Collaborative text editor based on KTextEditor and kde-telepathy Collaborative editing currently suffers from two main problems: 1) Setup difficulties. Many existing applications require you to open a port on your system, which can be difficult for various reasons. 2) Editor application insufficiencies. Existing applications tend to focus on the "collaborative" part of "collaborative editor", and are often not very suitable text editors. This project aims to solve both problems by implementing a collaborative text editor built on telepathy and KTextEditor.
  • digiKam - Tag Manager Pack all tag options in one powerful tool for managing tags and improve user experience.
  • digiKam:Cloud Integration Export Plugin Proposal for a digiKam KDE project:cloud integration export plugin.Adding export plugins for dropbox and google-drive into digiKam
  • Enchantments to Bodega Content System The proposal is about adding some enchantments to the bodega content system. My proposal contains(in short) the below tasks * implement the ratings functionality for the assets in the bodega-server (1) * implement a comment system for the bodega system (2) * add support in our clients(bodega-client and bodega-webapp-client) for the collections. (3)
  • Exiv2 "Cloud Ready" Project Exiv2 reads and writes files on the local file system. These files can be memory mapped if this feature is supported by the host OS. With the increasing interest in "cloud" computing, it's become ever more common for files to reside in remote locations which are not mapped to the file system. The proposed implementation provides bi-directional support (both read and write) with read-access being the first priority.
  • Extending Muon to different platforms This proposal is about supporting Muon on more platforms, which means writing backend plugins for it using PackageKit and akabei. While it will give basic support for a lot of distributions, we will discuss, review and improve the current backend abstraction. I will also develop another abstraction layer for creating simple notifiers on whether a system needs to be updated, which can be used e.g. in a plasmoid.
  • HDR Composer for Digikam Digikam is one of the major photo editing and management softwares available in KDE. This project aims to extend its current ExpoBlending tool which merges and blends bracketed exposures, into an HDRI( High Dynamic Range Imaging) creation tool .It aims to provide the professional as well as non-professional photographers a tool that would give an HD view to the blended image of the stack of bracketed exposures captured through a camera .
  • Image Quality Sorter for digiKam When we organize a large collection of pictures, we often come across both good and bad quality ones. These pictures can be computationally separated to provide better workflow.This project aims to integrate Image Quality Sorting capability into digiKam, so that we can focus on good quality pictures.
  • Implement Change Tracking Backend Implement an operational transformation backend for change tracking purposes and integrate the Text Shape with it.
  • Improve Cantor Backend for Scientific Programming in Python This proposal aims to improve the backend to python scientific programming in Cantor, using numpy, scipy and matplot libraries.
  • Improve ePub support for Okular Improve ePub rendering and some usability enhancements in Okular
  • improve keyboard layout preview. This year’s kde’s Gsoc theme is “KDE++ ie to improve the ui and polish everything” and I like to work on the an efficient keyboard layout preview dialog box. The aim is to write a parser for geometry files which parses geometry and layout files and display the keyboard preview in efficient manner.
  • Improvements and enhancements for Plasma Media Center Plasma Media Center is an innovative step in redefining the user experience where media - such as photos, videos, songs etc. are combined in one KDE application. Users can view pictures, watch movies and listen to their favourite sound tracks all at one common place. No more hassle of choosing different apps to enjoy the multimedia files. Recently Plasma Media Center’s very first version was released. Built on Plasma and KDE technologies it is designed to offer a rich experience to media enthusiasts. This project offers to make Plasma Media Center even better with improvements in the existing features as well as enhancements to this powerful application. One such major proposed addition is to layout a keyboard navigation scheme so that each part of PMC can be usable by the keyboard alone. Features such as addition of Dropbox plugin and polishing of existing online services are also proposed.
  • Improving polkit integration in KDE Preparing the polkit agent and wrapper libraries in KDE/Qt for future Qt5 usage and making it fit better in the KDE Plasma Workspaces
  • Improving the filter module of Krita and adding more filters to it Krita currently has a limited set of classic filters . However there are problems with the current filter implementations, for instance in the edge-detection filters. Also, there are some important filters which are absent and need to be implemented in Krita like Color Balance, Spot Blur, Match Color, Wavelet Decompose Filter, Screen Gradient.
  • Integrate Android with KDE The goal of this project is to add some communication between your Android phone and your KDE desktop. This way we can, for example, show a desktop notification when you receive a new message, or pause the music automatically during a call.
  • Integrate Trojita to KDE Trojita is fast IMAP email client written in pure Qt. So integrate it into Kontact/KDEPIM/KDE like email client KMail.
  • Keyboard Layouts Project: Provide "in-line" keyboard layout indicator People which have multiple keyboard layouts in their system usually wants to know which layout is set currently. My GSoC 2013 project is to realize in-line keyboard layout indicator to let people know keyboard layout easily and without system tray because it can be hidden. I have 2 ways to realize it: simply changing carret icon in the focused text field or inserting country flag in the text field.
  • KMix2 Sound Menu KMix2 is mostly ready for daily use. However, the system tray popup is nothing special. A long time ago, KMix started to include Ubuntu's Sound Menu design. Development stalled, and a new rewrite of KMix is around the corner. Ubuntu's Sound Menu concept condenses all your multimedia controls into one notification area icon: volume, playlists, now playing, pulseaudio controls, etc.
  • KStars GSOC: data pipelining and OpenCL KStars has many powerful features, but it's slow and does not deal well either with drawing large catalogs, or with normal-sized catalogs on low-end machines suitable for field use. The goal of the project is to rewrite KStars' data-processing code to both be parallel and to make efficient use of the hardware available, whether they have a single x86 core, multiple cores, a discrete or embedded GPU, or a system-on-a-chip like the Exynos 5. There are three main areas of improvement: 1. Computation speed; 2. Memory access patterns; 3. Parallelism. Currently, KStars does poorly at all of these; by the end of the GSoC project, all of them will be improved.
  • Local Adjustment Tool in digiKam digiKam features an existing graphical interface tool "image editor" to make manipulations and user defined edits in an image. Apart from the local contrast tool, these edits apply to the entire image. The local adjustment tool would be similar to the one present in the existing commercial software Nikon Capture NX-2 ™. In more detail, this tool would help users to make user defined selections in the image, based on the color of a point selected and a circle encircling the region identifying the region of interest of the user.
  • Localization team management Tool A web application that handle all the localization (translation) team management (apps booking, and review process).
  • Make the Create > Play > Discuss workflow work in Gluon Porject I'll take all the pieces made in those years, make them complaints to OCS and the gluon OCS server, and therefore able to work together. My goal is to launch Gluon to the public as a usable set of tools, from Creator to Player to the website.
  • Marble KML Map Editor One of the most important file formats that Marble regularly interacts when displaying map data is KML (Keyhole Markup Language). However, at the time being Marble can only display and write KML files and the user is not offered a simple graphical way of editing them. This proposal focuses on adding this feature, keeping in mind the fact that this could provide the basis of an editing mode capable of supporting many other file formats that internally get handled as KML.
  • Marble meets ownCloud Marble, the Virtual Globe, currently lacks the ability to synchronize content between devices or share resources. This project intends to enhance Marble with syncing capabilities by integrating it with ownCloud, the personal cloud platform.
  • Marble: An OpenGL SceneGraph for Marble Marble Virtual Globe is a nice project for working with maps. The software rendering is smart and works very well. However, there are some limitations with the software rendering that hardware accelerated graphics (like OpenGL) solves. I am working on a SceneGraph structure that will allow for abstracting the actual graphics scene from the rendering backend within Marble as well as grouping and rendering objects in 3D space.
  • ownCloud storage and synchronization for Marble Marble is very successful at displaying maps that you like and helping you find your way. And ownCloud is the project that lets you liberate your cloud data and bring it to under your control. This project aims to marry these two projects and let Marble users store their data on their own cloud servers and synchronize them across all devices they run Marble on.
  • Polish Kontact Touch “Mail” to fit Plasma Active UI / UX Kontact Touch was originally designed to offer Kontacts features on an N900(-like) phone. This makes it look and feel like it does not belong when using it on Plasma Active. I want to polish “Mail” of Kontact Touch by giving it a UI/UX rework to make it a true PA Application. This means: 1.) Port Mail of Kontact Touch to Plasma Components 2.) Rework the interaction design of Mail in the process
  • Polishing Calligra (Sheets) As the title Suggests, the aim of the project is to improvise the existing features built by me and others. My previous Summer of Code resulted in Pivot Tables. So the aim is to improve User Interface for Pivot Tables by making it more intuitive and easy to use. Subsequently, to enhance the use of Pivot Tables, Pivot Charts will be developed to better visualize the summarized data. Thirdly,features like Rich Text editing in Cells, Undo/Redo Command for Insertion/Deletion for Rows/Columns, Prediction based Autocomplete feature would be added to save a lot of time while entering & editing data in sheets. Fourthly, the above features would also be tried to be implemented in Kexi as it has some similarities with Sheets and can support Pivot Tables, Pivot Charts and Autocompletion.
  • Polishing file structure, Application Actions and UI features in Khipu. Khipu is an advanced mathematical function plotter application which uses Analitza library of the KDE Education Project. Khipu is in playground now. The aim of this proposal is to polish necessary features of Khipu. This proposal includes improvement in the basic and necessary features which are some Application Actions, Persistence file and Plot Dictionary support as well as improving UI of Khipu. Khipu contains a lot of commented code so I will be also removing unnecessary code portions and modifying the necessary part of codebase so that Khipu can be releasable at the end of GSoC.
  • Port a KDE game to QML/QtQuick The main aim of the project is to port existing KDE game to use QML/QtQuick instead of QGprahicsView. I mean to port KReversi game.
  • Port Image Editor Canvas Classes to Qt Model/View for digiKam Image Editor is one of the many reasons making digiKam such a cool application. Its core components for previewing images, ImageRegionWidget and Canvas, depend on Q3ScrollView, which is based on Qt3Support class. In the next Qt5, Qt3Support class will disappear. So it is necessary to port these classes to Qt4 model/view. Besides, this project can bring some new features of Qt4 model/view which will make Image Editor new features implementation a lot easier.
  • Port libqzeitgeist to libzeitgeist2 Just recently, Zeitgeist released libzeitgeist2, which includes direct database access as a performance boost. libqzeitgeist is still using the raw DBus API which is slower.
  • Porting plasmoids to plasma2 A great advantage in porting it is reduce the code maintenance effort for the KDE community.
  • Reimplement Amarok importers on top of StatSyncing framework, add Amarok 2.x and Rhythmbox as synchronization targets. Amarok has the ability to import personal track metadata (playcounts, ratings, played time) from Amarok 1.4 and iTunes databases. The StatSyncing framework has since been added to the codebase and serves as a perfect base for a rewrite of importers, offering significant advantages over the old implementation. The main goal of this proposal is to rewrite Amarok 1.4 and iTunes importers to use StatSyncing framework and to implement two new importers - for Amarok 2.x and Rhythmbox.
  • Revamp Amarok Scripting Interface My proposal aims at revamping the Amarok scripting interface, and adding new scripts demonstrating the new scripting API while also adding cool new features to Amarok. This involves getting rid of dangerous and obsolete methods, and adding accessors for some the new features added to Amarok over the years. Every major type will have a QtScript object representation, allowing unparalleled scripting flexibility. All the scripting API code will be fully documented, and Doxygen will be used for automatic generation of the Amarok Scripting API documentation for reference by script developers. I also plan on writing unit tests to allow automated testing of the Amarok scripting API. All of this will lead to a cleaner and more feature rich well-documented scripting API hopefully generating new interest in Amarok scripting. Other features I plan to work upon, if time permits, are allowing users to terminate long running or stuck scripts instead of forcing a restart and creating a new, feature-rich Script Console in C++.
  • Rewrite KWin Desktop Effects (kcmkwincompositing) The goal of this project is to rewrite the KWin Desktop Effects from scratch. The new Version will be written on QML2 and it will include the Qt Quick Controls and various other compomenents from the QML Multimedia
  • Send SMS messages using ModemManagerQt and Telepathy To upgrade ModemManagerQt to use the newer SMS sending API in ModemManager and to implement a GUI for sending/receiving SMSs and managing SIM card contacts using Telepathy.
  • Touchscreen friendly NetworkManager applet and network settings module Create a new NetworkManager applet for Plasma active including a setting module for creating and configuring connections. Both parts will be optimized for touchscreen devices.
  • Video Metadata Write support for Digikam Since most of the modern Cameras support short video recording capabilities,It was decided that video management is under the scope of Digikam just like photo management except video editing possibilities.Currently Digikam manages videos by its metadata for most of the common video formats and preview them as well.Its quite important that Digikam should also have ability to add custom tags to videos and edit the tags so that user will have more possibilities to manage videos by tags.With this project Digikam could edit tag and create custom tags through Exiv2 methods.
  • Web interface plus service - Simple Project Report This project aims to provide insight about KDE projects from one place instead of having to go through 4 different sources. The web service should be able to fetch data from these sources and show them in one place, with the ability to view statistics and graphical reports. It should also contain API to provide the same functions as the graphical interface.