SoK/Ideas/2022

From KDE Community Wiki
Konqi is giving a lesson!

Ideas

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.

You need to submit your proposal to season.kde.org before the deadline.

Sample project

Project type: Coding / Web Development / Promo / Translation

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

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.

Ideas

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 it isn't 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 love

Knowledge Prerequisite: Probably C++ and Qt, but it 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.

Plasma Sound Design

Project type: Sound Design

Brief explanation: The goal of this task is to create a new sound theme that will be used on KDE Plasma for many purposes. For more information, please check this task.

Expected results: At the end we expect Plasma to have a sound theme for many desktop actions, including but not limited to notifications, startup/shutdown jingle, alerts, and so on. We need 20 sounds in total, and most of them, with the exclusion of startup/shutdown jingles, should be about 1 second long.

Knowledge Prerequisite: Knowledge in sound design and/or music production. You'll also need to know how to use any FLOSS (Free/Libre and Open Source Software) music production software of your liking.

Mentor: Guilherme Marçal Silva - You can contact your mentor by making a comment on this Phabricator task. For that, you'll need a KDE Identity account. On the Phabricator task, you can see more details of what you have to do.

KDE Apps packaging as Flatpak for Flathub

Project type: Coding and Packaging

Brief explanation: We currently have Flatpaks recipes for a lot of KDE Apps (https://invent.kde.org/packaging/flatpak-kde-applications) but only some of them are available on Flathub (https://flathub.org/apps/search/org.kde). You will work on submitting missing KDE Apps to Flathub while fixing the issues that come up during the submission review. Once you've understood the process better, you may start working on tooling to help maintain KDE Apps as Flatpaks in both Flathub and KDE CI/CD infrastructure in GitLab.

Expected results: Submit a couple of KDE Apps to Flathub and develop fixes for the issues found during review.

Knowledge Prerequisite: C++, Qt, CMake, Bash, Python (basic knowledge in at least two of those is recommended)

Mentor: Timothée Ravier. Reach out to https://matrix.to/#/#flatpak:kde.org.

Permission management for Flatpak Apps in Discover

Project type: Coding and design

Brief explanation: We currently have Flatpak support in Discover. Flatpaks can have access to files, sockets, etc. However, those permissions are not currently displayed or manageable from the user interface. We thus want to add support for managing Flatpak application permissions directly in the Discover user interface. This project would look a lot like what's currently possible with Flatseal (See https://github.com/tchx84/flatseal and https://flathub.org/apps/details/com.github.tchx84.Flatseal).

Expected results: Installing a Flatpak application prompts the user for confirmation for requested permissions and allows them to manage given permissions after installation.

Knowledge Prerequisite: C++, Qt, CMake (basic knowledge in C++ and Qt is recommended)

Mentor: Timothée Ravier, Aleix Pol. Reach out to https://matrix.to/#/#plasma-discover:kde.org.

Notification support in Tokodon

Project type: Coding and design

Brief explanation: Tokodon is a small Mastodon client application written with Kirigami. Currently, the notification view is missing and will need to be fetched using the Mastodon REST API and a UI will need to be built to display the notification. For displaying new incoming notifications, the backend already exists and it should be simple to use KNotification to display them to the user.

Expected results: Implement notification view and display new notifications when they appear.

Knowledge Prerequisite: C++, Qt, CMake (basic knowledge in C++ and Qt is recommended)

Mentor: Carl Schwan. Reach out to https://matrix.to/#/#plasma-mobile:kde.org.

Improving GCompris

Project type: Coding or documentation

Brief explanation: GCompris is a high quality educational software suite, including a large number of activities for children aged 2 to 10.

Expected results: The aim of this year is either to come with your own idea a whole new activity or taking one from our ideas list. A great help would also be to review and improve our wiki which over the year could be partly outdated.

Here is the page containing new ideas: https://phabricator.kde.org/project/view/142/

Here is the page containing improvements that can be done: https://phabricator.kde.org/project/view/144/

Here is a task which does not relate to a GCompris activity. It is python and aims to create a better user manual. https://phabricator.kde.org/T15157


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, kde webchat (https://webchat.kde.org) or by mail ([email protected])

Mentors: Emmanuel Charruau (IRC: allon), Harsh Kumar (IRC: hadron43)


Implement Miller Columns for Dolphin

Project type: Coding and Design

Brief explanation: Dolphin is the primary file manager of KDE. Miller Columns is a particular efficient method to navigate file system. An excellent example of Miller Columns is MacOS's Finder. Dolphin used to have such functionality but removed during a codebase transition many years ago. The Linux Community also have a tremendous amount of users wanting this feature. The same feature request has been filed over and over again in Dolphin and many other Open Source file managers.

Expected results: Dolphin get a Column View.

Knowledge Prerequisite: C++ / Qt / CMake (The related code use MVC pattern heavily.)

Mentor: You can reach other KDE developers from official communication channels.

Notice: This idea is very challenging.