< SoK
Jump to: navigation, search


Information for students

These ideas were contributed by our developers and users. They are sometimes vague or incomplete. If you wish to submit a proposal based on these ideas, you may wish to contact the developers and find out more about the particular suggestion you're looking at.

When writing your proposal or asking for help from the general KDE community don't assume people are familiar with the ideas here. KDE is really big!

If there is no specific contact given you can ask questions on the general KDE development list See the KDE mailing lists page for information on available mailing lists and how to subscribe.

Project: Sample project

Brief explanation:

Expected results:

Knowledge Prerequisite:


When adding an idea to this section, please try to include the following data:

  • if the application is not widely known, a description of what it does and where its code lives
  • a brief explanation
  • the expected results
  • pre-requisites for working on your project
  • if applicable, links to more information or discussions
  • mailing list or IRC channel for your application/library/module
  • your name and email address for contact (if you're willing to be a mentor)

If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.

Project: Live demo for KWin Effects

Brief explanation: The idea is to offer a live demo for the available KWin effects. This would consists of starting a nested KWin instance as a sub-session and completely control it from the outside. E.g. for the Present Windows Effect it would be needed to have several windows open, control the mouse cursor to demonstrate the screen edge activation, support faking keyboard input for the filtering, etc.

The demo mode would have to use the Wayland backend in KWin as that's the only way to get OpenGL in a nested session (Xephyr doesn't reliable support it). This means part of the project would involve implementing missing features in the Wayland backend like for example a windowed mode and the interfaces to fake keyboard input. It also requires to complement the work on running nested KWin instances and better separate it. At the moment it's possible to control the DBus service name, similarly it would be needed to change the config file and kglobalaccel module name, etc.

Expected results: Infrastructure in place and at least one Effect which can be run in a live demo.

Knowledge Prerequisite: C++/Qt, Wayland would be preferable

Mentor: Martin Gräßlin

Project: Adding/porting/improving GCompris activities

Brief explanation: GCompris is a software suite comprising educational software for children aged 2 to 10. It includes many activities and there is room to add many more to the collection.

  • You have to think of some innovative activities that makes children learn a concept as well as having fun. Some initial thoughts of new activities could be Series of numbers, Encoding-Decoding, Puzzles, Arrangements, Blood Relations, Directions, Hindi Alphabets/Vowels (specifically for Indian Users), Squares, Cubes, Prime / Composite, Percentage and Fractions, Simple Interest, Compound Interest, Profit and Loss, Decision Making etc.. Other ideas can be found at:
  • If you prefer to port existing activities of the Gtk version, you can find a list at: telling which activities are still to port.
  • Another way to improve GCompris is to add levels to existing activities in order to complete them and offer more to validate the learning of the child.

Expected results: At the end of the project, the student is expected to create/port, test and merge a couple of new activities to GCompris.

Knowledge Prerequisite: Any structured language, especially basic knowledge in algorithm and object programming. Learning outcome: You will learn Qt Quick, Javascript, Git.

Mentors: Bruno Coudoin, Johnny Jazeix <>

Project: Robust plugin infrastructure for KFileMetaData

Brief explanation: KFileMetadata is a framework used to extract text and metadata from files. It currently only supports plugins in C++. This situation should be improved. There are great libraries for extracting metadata in many different languages.

  • Extend KFileMetaData to allow plugins in python and other languages
  • Extend KFileMetaData's APIs so that we can query which plugins are installed and additional information about them

Additionally, KFileMetadata only supports extraction of metadata. We should be able to easily extend it in order to provide both extraction or writeback of metadata.

Expected results: KFileMetaData gets support for plugins in other languages.

Knowledge Prerequisite: A basic knowledge of C++ with Qt.

Mentors: Vishesh Handa <>

Project: KIOSK Tool

Brief explanation: Back in KDE 3 there was a tool to help administrators to configure the KDE Kiosk framework. The idea of this project is to start working on a new tool. The new application should be developed in close collaboration with the Visual Design Group to get a useful application for the targeted audience.

Expected results: a functional prototype for a new Kiosk tool with a working backend to configure and restrict actions and configuration options.

Knowledge Prerequisite: C++/Qt

Mentor: Martin Gräßlin <>

Project: Fix printer auto-detection

Brief explanation: Printer autodetection, where a printer gets added when you plug it in, works only if you install system-config-printer-gnome. Most distributions don't want to install Gnome dependencies by default so we end up needing to set up printers manually.

Expected results: code to autodetect printers added to print-manager

Knowledge Prerequisite: Python/C++/Qt

Mentor: Jonathan Riddell <>

Project: Port & Polish Khipu

Brief explanation: Khipu is an awesome project that needs love. First step is porting to KF5, then a couple of issues need to be fixed. Khipu is a software designed to target math classes in schools, where the teacher needs to display plots on a projector/whiteboard. See

Expected results: A releasable Khipu.

Knowledge Prerequisite: C++, Qt. Some maths would be nice to fully understand the use-cases.

Mentor: Aleix Pol <>

Project: Fix and polish some Cantor backends

Brief explanation: Cantor has backends for 10 different programming languages. Unfortunately, the most of these backends have not a maintainer. Despite it is not a problem for most of them, for some cases the backends are not working anymore or they are supporting old versions of programming languages. This project aims to fix these problematic backends, solving their bugs and bringing the support to current versions of their programming languages.

Expected results: All Cantor backends working again and supporting current versions of their programming languages.

Knowledge Prerequisite: C++, Qt.

Mentor: Filipe Saraiva <>

This page was last modified on 1 November 2015, at 14:29. Content is available under Creative Commons License SA 4.0 unless otherwise noted.