GSoC/2025/Ideas: Difference between revisions
No edit summary |
Add Kdenlive idea |
||
Line 373: | Line 373: | ||
'''Mentor:''' Emmanuel Charruau, Johnny Jazeix (contact on Matrix KDE Webchat) | '''Mentor:''' Emmanuel Charruau, Johnny Jazeix (contact on Matrix KDE Webchat) | ||
== Kdenlive == | |||
=== Project: Improving Kdenlive timeline markers === | |||
'''Brief explanation:''' Kdenlive already allows the user to add markers to the timeline and inside clips. The idea is to update the current code to add a duration attribute to the markers. With this change, markers will be able to represent a time range with a start and an end time. | |||
'''Expected results:''' An nice new way to display this time range in the timeline. The marker's time range should also be connected to existing features and extend them, like render a marker's range, or loop inside the marker for example. | |||
'''Knowledge Prerequisite:''' C++, Qt, will also involve some Qml | |||
'''Duration:''' ~175 hours | |||
'''Difficulty:''' Medium | |||
'''Mentor:''' Jean-Baptiste Mardelle (https://matrix.to/#/#j-b-m:matrix.org) |
Revision as of 17:40, 10 February 2025

See also: GSoC Instructions, Last year ideas
Guidelines
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 are urged to contact the developers and find out more about the particular suggestion you're looking at.
Becoming accepted as a Google Summer of Code student is quite competitive. Accepted students typically have thoroughly researched the technologies of their proposed project and have been in frequent contact with potential mentors. Simply copying and pasting an idea here will not work. Neither generating a proposal with ChatGPT or equivalent! On the other hand, creating a completely new idea without first consulting potential mentors rarely works.
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 [email protected]. See the KDE mailing lists page for information on available mailing lists and how to subscribe.
Adding a Proposal
When adding an idea to this section, please 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 (2-5 sentences)
- the expected size of the project (small-90 hours, medium-175 hours or large-350 hours)
- the expected results
- pre-requisites for working on your project (skills required/preferred)
- 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 possible, an easy, medium or hard rating of the project
If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.
Project: Something that you're totally excited about
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
Duration: Mention one of ~90, ~175 or ~350 hours of effort necessary to finish the project. Use only one of these three project classes and don't come up with other numbers here.
Difficulty: Easy, medium or difficult 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:kde.org on matrix.
Ideas
Cantor
Project: Python virtual environments in Cantor
Brief explanation: Cantor is a graphical frontend for different computer algebra systems and programming languages (https://cantor.kde.org/). For the Python backend, it lacks the support for Python virtual environments. The purpose of this project is to implement this missing functionality.
Expected results: Cantor can work with multiple Python virtual environment similarly to how it's possible in other IDEs like Spider-IDE, PyCharm, etc.
Knowledge Prerequisite: C++
Duration: ~350 hours
Difficulty: Difficult
Mentors: Alexander Semke, Israel Galadima (#cantor:kde.org)
Merkuro
Project: Port account management to QML
Brief explanation: Currently Merkuro makes use of QtWidgets dialog for managing the type of resources (accounts), the goal is to port all (or at least a some) of the dialogs to QML
Expected results: Making Merkuro a step closer to be fully usable on mobile
Knowledge Prerequisite: QML and C++
Duration: ~350 hours, but we can discuss to reduce the scopes
Difficulty: Difficult
Mentors: Carl Schwan and Aakarsh MJ. Please contact us on #merkuro:kde.org (Matrix) and not via DM
KArchive
Project: Rewrite Zip backend to use libzip
Brief explanation: Currently karchive uses home grown code to handle zip files. The code is not very good since it gets confused when it finds token markers in what it is actual compressed data. See https://bugs.kde.org/show_bug.cgi?id=450597
Expected results: KArchive uses libzip for handling zip files (and there's no regressions)
Knowledge Prerequisite: C++
Duration: ~350 hours
Difficulty: Difficult
Mentor: Albert Astals Cid <[email protected]>
Internationalization
Project: Move translation files to git
Brief explanation: Translation files currently live in SVN, they are one of the last things in SVN, and the sysadmin team would welcome if we stop using it so they can shut down the server (also some folks have trouble using SVN since it's now starting to become old). The plan is to move files to GIT but we need to make sure the history is preserved and the associated scripts are adapted. See more at https://invent.kde.org/teams/localization/issues/-/issues/1
Expected results: Most/All of what is described above is done.
Knowledge Prerequisite: git/bash/python
Duration: ~350 hours
Difficulty: Medium
Mentor: Albert Astals Cid/Luigi Toscano, talk to us at https://matrix.to/#/#kde-i18n:kde.org
Plasma
Project: Make KWin aware of game controllers
Brief explanation: Plasma could do a lot to improve support for game controllers: gamepads, fight sticks, flight sticks, and more. But before we can work on advanced features like button mapping or mouse emulation, Plasma's Wayland compositor KWin first needs to take control of controller input. The task is to modify KWin so it reads game controller input events and provides it back to games/applications unmodified. Once that's in place, the sky's the limit.
Expected results: KWin has access to game controller input events, games still work, and Plasma does not suspend the system as long as you use the controller (one of our oldest bugs)
Knowledge Prerequisite: C++, a little Qt, patience to dive into KWin and Wayland protocols
Duration: ~350 hours
Difficulty: Difficult
Mentor: Xaver Hugl. Introduce yourself on #kde-input:kde.org (Matrix) and tag user @zamundaaa
Project: Make Plasma Virtual Keyboard production-ready
Brief explanation: Evolve the current proof of concept into a solution that can be shipped with Plasma by default. Currently it's based on the Qt Virtual Keyboard API [1] [2]. It still needs lots of work and polish first though. That's where you come in!
Expected results: A virtual keyboard that works well for different languages and can be shipped with Plasma. It should be usable on phones, tablets and the likes.
Knowledge Prerequisite: C++, a little Qt, understanding of how Wayland works.
Duration: ~350 hours
Difficulty: Difficult
Mentor: Aleix Pol. Introduce yourself on #kde-input:kde.org (Matrix) and tag user @apol:kde.org
Project: Select & use more than one input method
Brief explanation: Different users require different ways to input text. Some will need an on-screen keyboard for their tablet, phone, or laptop touchscreen. Some use fcitx5 or IBus to enter complex characters with their keyboard. Some would like to dictate or generate text with the help of an AI model. Some would like all of the above depending on the situation. Plasma on Wayland currently lets you select one input method as "Virtual Keyboard" in System Settings, but ideally we want many input methods to co-exist peacefully.
Expected results: On the less ambitious end, Plasma and KWin will let you switch between input methods / virtual keyboard on the fly. On the more ambitious end, multiple input methods can be active at the same time so you can e.g. use fcitx5 for physical keyboard input and Maliit or plasma-keyboard as on-screen keyboard.
Knowledge Prerequisite: C++, a little Qt, understanding of how Wayland works
Duration: ~350 hours
Difficulty: Difficult
Mentor: Eike Hein. Introduce yourself on #kde-input:kde.org (Matrix) and tag user @hein:kde.org
Project: Improve input handling in ways that you're totally excited about
Brief explanation: Input handling is one of the elected KDE Goals and we're looking for all the help we can get. If you have an itch that needs scratching, and none of the other ideas on this page look quite right to you, we're still interested in your contributions. Drop by on our Matrix channel (see below) and let's discuss what your project could look like.
Expected results: An input-related GSoC application drafted with community input but including many of your own ideas, opinions and planned milestones. Once selected, actually delivering on those plans.
Knowledge Prerequisite: Depends on the project, but probably C++, Qt, and a basic understanding of Wayland
Duration: 90, 175 or 350 hours, depending on what you sign up for
Difficulty: also depends on the project
Mentor: Jakob Petsovits (@jpetso:kde.org) and/or other interested KDE people in the #kde-input:kde.org (Matrix) chatroom. Say hi and let's chat!
Plasma Mobile
Brief explanation: https://invent.kde.org/plasma/plasma-mobile/-/issues/438
Expected results: Mobile network KCMs can share more code with the desktop one and are more featureful
Knowledge Prerequisite: QML and C++
Duration: ~350 hours
Difficulty: Difficult
Mentor: Carl Schwan and rest of Plasma mobile team. https://matrix.to/#/#plasmamobile:kde.org
KDE Linux
Kirigami ISO Image Writer
Brief explanation: https://invent.kde.org/kde-linux/kde-linux/-/issues/132
Expected results: ISO Image Writer GUI rewrite using Kirigami.
Knowledge Prerequisite: QML and C++
Duration: ~350 hours
Difficulty: Difficult
Mentor: Harald Sitter et al. https://matrix.to/#/#kde-linux:kde.org
Backup Prototype
Brief explanation: https://invent.kde.org/kde-linux/kde-linux/-/issues/131
Expected results: A prototype for a local backup solution that is robust
Knowledge Prerequisite: QML and C++
Duration: ~350 hours
Difficulty: Difficult
Mentor: Harald Sitter et al. https://matrix.to/#/#kde-linux:kde.org
CVE/Security Tracker
Brief explanation: https://invent.kde.org/kde-linux/kde-linux/-/issues/134
Expected results: A system that can track security advisories. Ideally a web based solution.
Knowledge Prerequisite: Any programming language
Duration: ~350 hours
Difficulty: Difficult
Mentor: Harald Sitter et al. https://matrix.to/#/#kde-linux:kde.org
Recovery Infrastructure
Brief explanation: https://invent.kde.org/kde-linux/kde-linux/-/issues/135
Expected results: A prototype of a system/application to help users and OEMs recover a broken system, or at least its data.
Knowledge Prerequisite: QML and C++, possibly others
Duration: ~350 hours
Difficulty: Difficult
Mentor: Harald Sitter et al. https://matrix.to/#/#kde-linux:kde.org
Replication Infrastructure
Brief explanation: https://invent.kde.org/kde-linux/kde-linux/-/issues/136
Expected results: A prototype of a system/application to help users replicate (or move) from one system to another.
Knowledge Prerequisite: QML and C++
Duration: ~350 hours
Difficulty: Difficult
Mentor: Harald Sitter et al. https://matrix.to/#/#kde-linux:kde.org
Karton
Brief explanation: https://invent.kde.org/kde-linux/kde-linux/-/issues/133
Expected results: A polished Kirigami-based virtual machine application that can replace virt-manager and virtualbox for most users.
Knowledge Prerequisite: QML and C++
Duration: ~350 hours
Difficulty: Difficult
Mentor: Harald Sitter et al. https://matrix.to/#/#kde-linux:kde.org
Automatic Testing
Brief explanation: https://invent.kde.org/kde-linux/kde-linux/-/issues/79
Expected results: Fully automated tests to detect regressions in KDE Linux
Knowledge Prerequisite: Bash, Python, Perl
Duration: ~350 hours
Difficulty: Medium
Mentor: Harald Sitter et al. https://matrix.to/#/#kde-linux:kde.org
Website
Brief explanation: https://invent.kde.org/kde-linux/kde-linux/-/issues/92
Expected results: A swanky website for KDE Linux using Hugo
Knowledge Prerequisite: Web development, ideally using Hugo
Duration: ~90 hours
Difficulty: Easy
Mentor: Harald Sitter et al. https://matrix.to/#/#kde-linux:kde.org
KDE Games
Mankala: Bao La Kiswahili
Brief explanation: Add Bao La Kiswahili and create a computerized opponent with various levels of difficulty for it. Explore the use of machine learning algorithms in creating a computerized opponent.
Expected results: An additional game in Mankala
Knowledge Prerequisite: C++, Qt, QML
Duration: ~175 hours
Difficulty: Medium
Mentor: Benson Muite, João Gouveia contact through https://matrix.to/#/#mancala:kde.org
Misc
Project: Add more fuzzed libraries to oss-fuzz
Brief explanation: oss-fuzz is a SAS for fuzzying code. We have a few libraries there (karchive, kimagefomats, kcodecs), but we should add more since we have quite some code that processes file formats.
Expected results: As many projects/libraries as possible have been added to oss-fuzz
Knowledge Prerequisite: docker/compiling
Duration: ~350 hours
Difficulty: Medium
Mentor: Albert Astals Cid <[email protected]>
GCompris
Project: Enhancing GCompris Server with GUI Sub-Programs for Dataset Creation
Project Overview: This project aims to enhance the GCompris server by integrating a set of GUI-based sub-programs specifically designed for teachers. These tools will facilitate the creation of new datasets for various educational applications.The applications targeted for dataset expansion include:
Grammar Analyses Graduated Lines Decimal Numbers Share Fractions Create
By implementing these sub-programs, educators will be able to customize learning materials more effectively to fit their pupils needs.
Resources Required:
Developers with experience in Qt/QML, Gitlab. Being able to compile GCompris on QT6 and use it.
Development resources:
The server source code is available here : https://invent.kde.org/education/gcompris/-/tree/work/server_qt6?ref_type=heads The development guide is here: https://invent.kde.org/education/gcompris/-/wikis/Developers-corner/Development-process
Duration: ~175 hours
Difficulty: Middle
Mentor: Emmanuel Charruau, Johnny Jazeix (contact on Matrix KDE Webchat)
Kdenlive
Project: Improving Kdenlive timeline markers
Brief explanation: Kdenlive already allows the user to add markers to the timeline and inside clips. The idea is to update the current code to add a duration attribute to the markers. With this change, markers will be able to represent a time range with a start and an end time.
Expected results: An nice new way to display this time range in the timeline. The marker's time range should also be connected to existing features and extend them, like render a marker's range, or loop inside the marker for example.
Knowledge Prerequisite: C++, Qt, will also involve some Qml
Duration: ~175 hours
Difficulty: Medium
Mentor: Jean-Baptiste Mardelle (https://matrix.to/#/#j-b-m:matrix.org)