< SoK
Revision as of 14:48, 25 September 2020 by Davidedmundson (talk | contribs) (→‎Ideas)


KDE SoK 2020 is over now, but it doesn't mean you can't contribute anymore. Contact the team, ask if they have junior job and can help you get started.

Konqi is giving a lesson!


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, contact the developers and find out more about the particular suggestion you're interested in.

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 in the idea, you can ask questions on the general KDE development list [email protected] See the KDE mailing lists page for information on available mailing lists and how to subscribe.

When your proposal is ready, submit it here: Season of KDE

Sample project

Project type: Coding / Web Development / Promo / Translation

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.

Your Own Idea

Something that you're totally excited about

Project type: Coding / Web Development / Promo / Translation

Brief explanation: Do you have an awesome idea you want to work on with KDE but that is not among the ideas below? That's cool. We love that! But please do us a favor: Get in touch with a mentor early on and make sure your project is realistic and within the scope of KDE. That will spare you and us a lot of frustration.

Expected results: Something you and KDE loves

Knowledge Prerequisite: Probably C++ and Qt but depends on your project

Mentor: Try to see who in KDE is interested in what you want to work on and approach them. If you are unsure you can always ask in #kde-soc on Freenode IRC.


Project type: Coding

Brief explanation: Atelier is the 3DPrinting software built by the KDE Community to help you to control your 3Dprinters from your PC, and hopeful from any device.

Expected results:

What we would like to have:

  • Build a web layer on AtCore(That is the library behind Atelier)
  • Build an interface with QML for mobile/embedded devices.

Knowledge Prerequisite: C++ and Qt.

Mentor: Lays Rodrigues Tomaz Canabrava Chris Rizzitello


Project type: Web Development

Brief explanation: Calligra is an office program developed by KDE for 22 years. Currently, the webpage of Calligra looks very dated and is using old screenshots from the KDE4 era. The task consists of rewriting the website to look similar to kontact.kde.org. Since the code can be reused the task will consist mostly in writing content and taking screenshots.

Expected results:
A beautiful webpage for the promotion of Calligra.

Knowledge Prerequisite: Markdown and some very basic programming. Familiarity with git. Good English knowledge is recommended.

Mentor: Carl Schwan, ping me in https://t.me/KDEWeb or #kde-www in Freenode/Matrix


Project type: Coding

Brief explanation: GCompris is a high quality educational software suite, including a large number of activities for children aged 2 to 10. We recently introduced a multiple level selection. This allows user to choose more closely the competences they want to work on. For example when working on numeration, user can now choose if he wants to learn numbers from 0 to 3 or 0 to 4 or 0 to 5 etc... Contact the GCompris team.

Expected results: The aim of this year is to complete the number of activities including this features. Targeted activities are listed under the following address:


Activities already including the selection level can be found in our git repository under multiple_dataset branch. Activities are smallnumber, smallnumbers2, gletters, reversecount, gletters.

Knowledge Prerequisite:

Be interested in children’s education

Be familiar with GCompris concept and content

Basic knowledge in a programming language (a 1 year school course is enough)

Be able to build the Qt Quick version of GCompris

Application guide: Provide a timeline in your application. If you haven't contributed yet please read http://gcompris.net/wiki/GSOC_newcomers, http://gcompris.net/wiki/An_exercise_for_new_contributors and http://gcompris.net/wiki/Reviewing_an_activity

There are several info in the wiki: http://gcompris.net/wiki/Developer%27s_corner.

Feel free to contact us either on irc or by mail ([email protected])

Mentors: Emmanuel Charruau (IRC: allon), Johnny Jazeix (IRC: JohnnyJ), Timothée Giet (IRC: Animtim)


Project type: Coding

Brief explanation: Write new backend for SessionsModel. We have some code in libkworkspace that is horrible; kdisplaymanager.cpp. Most of it exists based on assumptions 20 years old and we've kept adding stuff on top. The result is both messy and full of blocking calls.

We have split most of it out, but one part remains; listing active sessions running.

Expected results: We get to throw some horrible code from the 90s in the bin and everything still works.

Knowledge Prerequisite: C++, DBus

Mentor: David Edmundson


Project type: Coding

Brief explanation: Improve the timeline clips color palette.

Expected results: To have a better UI/UX by designing a concept on how clips should look in the timeline. Also improve the way audio waves are displayed.

Knowledge Prerequisite: Qt and QML

KDE Connect

Project type: Web Development

Brief explanation: Create a website for KDE Connect for better outreach and visibility.

The current discussion for this project is available here.

Expected results:

  • To have a static website for KDE Connect that allows any user or developer to understand the purpose and features of KDE Connect
  • To provide static link(s) for the various master builds of KDE Connect applications, namely the android application and its desktop counterpart(s).

Knowledge Prerequisite:

  • Basic knowledge of HTML, CSS, JavaScript.
  • Previous static website projects are a nice-to-have.
  • Please do elaborate about how you plan to explain the inner working of KDE Connect in your proposal.



Project type: Web Development / Promo

Brief explanation: We need to update the version of dot.kde.org, blog.kde.org and akademy.kde.org from drupal 7 to drupal 8. We should use this opportunity to create a new theme for those drupal websites.

Expected results:
A more modern webpage for the promotion of KDE and KDE events.

Knowledge Prerequisite: Drupal 8 or good php knownledge. The theme is already provided so you don't need to be a designer ;)

Mentor: Carl Schwan, ping me in https://t.me/KDEWeb or #kde-www in Freenode/Matrix


Project type: Coding / Documentation / Tutorials / Usability

Brief explanation: Krita is a wide-used digital painting application, written in C++ and Qt. Plugins can also be written in Python. If you want to participate in Season of KDE 2020 for Krita, please contact the Krita developers on #krita on irc.freenode.org (there is also a matrix mirror on webchat.kde.org). We prefer students bring their own ideas. Examples of coding projects you can work on are image filters, pixel generators or brush engines. Non-coding project proposals are welcome as well. These could take the form of papercuts inventories, usability surveys or creating tutorials for underdocumented aspects of Krita.

Mentor: Boudewijn Rempt

KDE Developer Portal

Project type: Documentation / Web Development / Marketing

Brief explanation: KDE as a project is lacking a "start here" portal for both internal and external purposes. A developer portal gives a launchpad to both contributors looking to contribute to a project directly as well as third-party developers looking to take advantage of a project's offerings for their own applications.

Mentor: Carson Black (Matrix @appadeia:matrix.org, Telegram @pontaoski)


Project type: Coding

Brief explanation: marK is a machine learning dataset annotation tool which allows users to annotate multiple types of data to help during the training for supervised classification problems. It is currently under development and we are planning to release its beta version soon. We now have a version of marK that was developed with Qt Widgets, but we are planning to port it to QML, as it will provide an easier way to manipulate different types of data and a possible release for mobile devices in the future. More information can be seen in this post: https://caiojcarvalho.wordpress.com/2019/01/29/mark-a-general-purpose-tool-for-data-annotation/

Expected results: Finish porting marK to QML.

Knowledge Prerequisite: Qt and QML

Mentor: Caio Jordão Carvalho


Project type: Coding

Brief explanation: Rocs is a Graph Theory IDE for designing and analyzing graph algorithms. It provides a easy to use visual editor for creating graphs, a scripting engine to execute the algorithms and other tools for experimentation on graphs. The scripting language is Javascript. The UI for Rocs is built with a mix of QWidgets and QML.

Tasks There are multiple tasks; it is not expected that a single student would deal with all of them.

  • Fixing the graph editor view that have some problems related to the placement of the graphs in the view and mouse clicks not working correctly.
  • Improving workflow for graph generation. Generating a (for instance, random) graph is rather tedious, and that workflow can be improved.
  • The UI is not aligned "nicely" and has a lot of internal borders and whitespace that no longer match up with the UI guidelines for KDE projects. It would be nice to simplify and "tighten up" the UI.

Expected results:

  • A graph editor view working correctly.
  • Easier to generate graphs.
  • Looks better and follows the HIG better.

Knowledge Prerequisite: Basic programming in C++ and QML. Familiarity with git. Good English knowledge is recommended.

Mentor: Caio Tonetti, Tomaz Canabrava, Adriaan de Groot

See Also: https://community.kde.org/KDEEdu/Rocs/Todo

Plasma Phonebook Contact Groups

Project type: Coding

Brief explanation: plasma-phonebook is a contacts application for Plasma Mobile and other mobile OS. Goal of this task is to add group management to the app. Contacts can be assigned one or multiple groups and groups can be browsed

Expected results: A basic group management inside the application.

Knowledge Prerequisite: Basic programming in C++.

Mentor: Nicolas Fella

Contact: https://www.plasma-mobile.org/join/

Plasma Mobile Clock application

Project type: Coding

Brief explanation: Plasma Mobile needs a suitable clock application that provides alarms, stopwatch and similar functionality. There is a work in progress that needs expansion (https://phabricator.kde.org/T8904)

Expected results: Basic functionality works

Knowledge Prerequisite: Basic programming in C++.

Mentor: Nicolas Fella

Contact: https://www.plasma-mobile.org/join/

Plasma Mobile: Nextcloud contacts integration

Project type: Coding

Brief explanation: Plasma Mobile is KDE's software stack for mobile devices that includes Plasma phone components, Kirigami and a set of mobile-friendly applications. Plasma Mobile offers the Nextcloud account integration.

Goal of this task is addition of Edit Contact functionality to enable users to edit contacts synced from Nextcloud account using Plasma-Phonebook app.

Expected results: User is able to edit contacts that are synced from Nextcloud account using Plasma-Phonebook app.

Knowledge Prerequisite: Basic knowledge of C++, Qt. Knowledge of Sink is nice to have.

Example code to use sink API for contact synchronization: sink-caldav-example

Mentor: Rituka Patwal

Contact: https://www.plasma-mobile.org/join/

Content is available under Creative Commons License SA 4.0 unless otherwise noted.