GSoC/GCI Archive
Google Summer of Code 2015


License: GNU General Public License (GPL)

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. KDE'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] Rewrite database KIO-slaves as pure Qt5 with multithreading Originally, KIO-Slaves was implemented to run database queries in a separate process to prevent problems with SQlite. Since SQlite support queries from separate threads, KIO-slaves can be dropped, and a new API can be implemented using pure Qt threads API. This will improve digiKam portability, and permit adjusting CPU cores assigned to database processes efficiently.
  • [Kdenlive] - Add support for new Animation capabilities This project aims to upgrade the animation capabilities to allow much simpler, smoother and more general animations than the traditional keyframes technology and also intend to provide new widgets to edit these properties, and eventually evolve on-monitor interactions.
  • [KDevelop] C++ code refactoring (powered by Clang) Ability to easily perform source code refactorings influences approach to software development. We know advantages of IDEs for Java or C# which gives possibility to postpone some decisions and change them later. My proposal is to write refactoring tools based on Clang and integrate them with the KDevelop - probably the most complete open source C++ IDE. With these new features many programmers may choose C++ language for their projects knowing that C++ world competes well with other languages.
  • Adding the Constellation Art Feature in KStars KStars is a desktop planetarium application under the KDE Education Project. The project idea is to add constellation artwork unto the sky map and integrate it into KStars. I propose to implement the 88 modern constellations recognised by the International Astronomy Union (IAU), and the 27 asterisms from the Indian system called Nakshatras. This framework could be extended to support any future sky culture if the images are compatible with KStars.
  • Advanced Metadata Hub of digiKam digiKams strong point is the the ability to organize and manage large collections of photos using metadata stored in files. To perform tasks faster, certain data is stored in the internal database. To keep images and database in sync, digiKam feature basic read and write methods. The goal of this proposal is to extend the current read/write functionality to be more robust and easier to configure.
  • akonadi next settings The core of this proposal is to code the configuration/settings part for the coming iteration of Akonadi (AkonadiNext).
  • Animation in Krita There is a clear demand for raster based software for hand-drawn animation. It is a highly requested feature for Krita, whose powerful drawing and painting tools would offer a great basis for it. Previous attempts at animation plugins have shown that a different approach is needed. Integrating animation deeper will allow better performance, usability and versatility of features. This project aims to integrate a keyframing framework into Krita and create user interfaces needed for animation.
  • Better Tooling for Baloo This project aims to provide better Tooling for Baloo. These tools will include a UI and CLI tools to monitor status of Baloo and UI to visualize which types of files are taking how much of storage, utilizing the data indexed by Baloo.
  • Continue improvement of KDE Reports KDE Reports is the app I started from scratch in GSoC 2013. I'd like to continue improving it and adding more reports.
  • DATAPICKER FOR LABPLOT To develop Datapicker for Labplot, it is a tool which converts an image file showing a graph or map, into numbers.
  • Ekos Scheduler In the following proposal i intend to give an overview regarding the implementation of a simple Scheduler which will be able to automate astrophotography sessions based on some limitations and constraints given by the user.
  • Factorize And Port to KF5/Qt5 Web Import/Export KIPI Tools of digiKam The idea of the project is to port all the web import/export kipi tools to KF5/Qt5 framework and then these tools need to be factored so that we can remove the redundancy in the codes of these tools. These tools will also be grouped into different categories so as to decrease the loading time of digiKam.
  • Finish implementation of an outliner for Calligra Author The main aim of the project is to finish an outliner (special tool to help planning and writing novels) as a part of Calligra Author application using the codebase created last year.
  • Further Clang integration in KDevelop Finish (well, at least fix as many bugs and implement as many missing features, as possible) the kdev-clang plugin to make it an usable replacement for the existing C++ plugin.
  • Improve KDE Connect encryption This project aims to apply modern world cryptography techniques i.e. TLSv1.2 protocol to establish a secure and reliable connection between the devices connected through KDE connect.This will make communication between devices more secure by full packet integration, integrity checks and peer authentication.
  • Improve Marble's OSM vector rendering and printing support The project's main focus will be on polishing various aspects of screen rendering and printing. This includes features like the OSM vector rendering, the printing support, the zoom with the mousewheel, some performance-tuning including patches and bug-fixes, and if possible improving the experimental OpenGL support too. Special focus will be on testing these improvements - especially the printing support -, to ensure compatibility on multiple platforms.
  • Integrate Cantor with LabPlot This project aims to integrate cantor (a front-end to powerful mathematics and statistics packages) with LabPlot (a scientific data plotter application). The expected result is a to use cantor's session data as to plot graphs inside labplot
  • Integration VTK into LabPlot Integrating VTK into LabPlot for 3D data visualization.
  • Introduction of tag, layers and linearization support in okular Okular is a KDE universal document viewer with support for a lot of different formats like PDF, PostScript®, Tiff, CHM, DjVU, Images (png, jpg, etc.) XPS, Open Document (ODT), Fiction Books, Comic Book, Plucker, EPub and Fax. But it currently lacks some of the features currently supported by the poppler ( pdf backend for okular ) such as pdf layers, tagged pdf support and linearized pdf support. This project focus on implementing the missing functionalities.
  • KDevelop - Checker Framework - Alternate version In the following proposal I lay out a plan to implement the checker framework idea, from the ideas page. In this particular version this means: Refactoring, breaking up the current problem reporter plugin's code and moving it into the shell. Reusing the problem model in error checker plugins, and integrating their views on a unified widget. Implementing new error checker plugins with the new framework.
  • kopete - PGP plugin Purpose of this project is to fix or create a new PGP encryption plugin for kopete. Up until now, kopete uses obsolete encryption plugin so it needs polishing or a new encryption plugin from scratch!
  • Kopete: Improved History Plugin Kopete already includes two history plugins. However, these have been found lacking, and there is need for an improved history plugin.This project aims to come up with a new SQL based history plugin, with an improved interface and the ability to import/export chat logs to other IM applications.
  • Make an Editor Library/Plugin for KVTML Files The goal of the project is to separate the built-in editor in Parley into a library and/or plugin and make it available for other applications. This editor library should be made flexible and configurable so that applications with different needs could create an editor which supports the level of sophistication that suits that application best.
  • Offering OpenStreetMap support and improving Edit Mode for Marble Offering OpenStreetMap (OSM) support is crucial for the further development of Marble as it is one of the main geographical data providers out there. It would fill a gap in Marble's reliability and would certainly add one more useful tool to the "Swiss army knife". Moreover, refactoring existing code in Marble’s plugins and libraries is bound to be one essential goal, as it would greatly improve the overall code quality and robustness.
  • Package Install for 3rd Party Applications KDE applications need to install software (extra features) in various places. Most applications don't have an interface wherein one can do so. The task is to implement such an interface for the apps that need it. This has to be done in a way such that it works across all major distributions.
  • Pointing Devices KCM Currently there are separate KCMs for mouse and touchpad. Theoretically, they should have a lot in common. However, they have completely different UI and completely different code. Sometimes they conflict - changes in mouse settings affect touchpad too. The goal of this project is to replace mouse and touchpad KCMs with single "Pointing Devices" KCM.
  • Port Kopete to KF5 The KDE frameworks 5 is the next generation of KDE libraries, modularized and optimized for easy integration in Qt applications. They represent an effort to rework the powerful KDE Platform 4 libraries into a set of independent, cross-platform modules that will be readily available to all Qt developers to simplify, accelerate and the reduce the cost of Qt development.[1]
  • Port KSystemLog to KF5 and use journald as a backend KSystemLog is a tool for viewing log files. It can display system logs, kernel logs as well as logs from various software, such as Apache, Cups, Samba, and others. Traditionally system logs were written to /var/log/syslog, but in a past few years many Linux distributions have switched to systemd. Systemd provides journald [1] - a component which manages system logs. The goal of the project is to port KSystemLog to KDE 5 frameworks and add the support for reading journald logs to KSystemLog.
  • Port of GCompris to Qt Quick Currently GCompris has few activities and is mainly centered in math,fun games and mouse simulations. Looking at the great response from users of GCompris,I think that GCompris should include more activities which will make it more resourceful,usable and popular among young children and teachers .My main goal will be porting some more activities from its existing GTK+ version and introducing something new. I am interested in creating a new section of Science,Environment and Computer Sciences.
  • Port of GCompris to Qt Quick Abstract GCompris is about learning while playing . While being interesting to play, every activity should also add to the knowledge of the children. I propose 3 computer science activities and porting the lang activity. Computer science: In this section there will be some interactive games for kids to that will build their logics and make them familiar to world of computer science. Language learning activities will focus on enhancing the vocabulary of children.
  • Porting Marble to Android platform Nowdays more and more Android devices are being used worldwide as personal devices and in education too. So it will be good if Marble would be available on this platform. I would like to work on porting Marble to Android platform with Qt for Android. This basically means to rewrite the UI and design it for mobile platforms, refactoring the original sourcecode if needed and writeing the Android specific codes. At the end of the summer a working version should be created.
  • Porting of Amarok to Qt5/KF5 Currently, kdelibs is distributed as a single set of interconnected libraries which makes it bulky. Under the KDE Frameworks 5 efforts, these libraries are being remodelled into a set of independent modules enabling the developers to use only the specific parts which they need and avoid pulling unwanted dependencies. Amarok currently uses Qt 4, kdelibs and Plasma 4. This project aims to port amarok to Qt 5 while using KDE Frameworks 5 enabling amarok to derive their benefits.
  • Provide a Plasma "appstore" both desktop and web client == Problem == the ocs -server project it's developing and trying to become Plasma's delivery systembut it lacks a web and desktop client. == Proposed solution== I would like to develop a web client with an easy interface for users to download programs, applications, screensavers, themes etc. giving also the possibility for developers and artists to upload and share their creations.
  • Restructuring content delivery system with ocs-server and Gluon Player Plasma is using kde-look to provide their users a distribution system of custom content, let them be backgrounds, themes, apps etc. This service is beginning to feel the age, is unmantained and isn't directly controlled by KDE because the server-side code that runs the service isn't owned by KDE. This project aims to replace kde-look with an in-house fully open implementation of the software stack used to run the content delivery infrastructure. I will update Gluon Player aswell.
  • Tangent Normal Map Brush Engine for Krita Experimental Tangent Normal Map Brush Engine for Krita. A surface normal is a type of vector used to determine how light bounces off a surface. 3d graphics have has a way to encode these in normal-maps. To the human eye, this encoding looks like a colour. This brush engine takes the tilt sensors of a tablet stylus, and treats it like a surface normal, having it output the correct colour. I think this would be a worthwhile asset to Krita because of the interest in hand-painted textures.
  • TV optimized dashboard support in Plasma Media center During GSoC 2014 PMC was ported to KDE Frameworks 5 and QtQuick2. Also PMC now can be loaded by plasmashell as shell package. This proposal aims to provide TV optimized dashboard support for the PMC. Currently PMC shell package is using desktopcontainment for loading and interacting with plasmoids which is highly dependent on the mouse for its operations. This proposal aims to eliminate this limitation and provide containment interface which can work with remote control/keyboard.