|
|
Log in / Subscribe / Register

KDE sets its goals through 2026

By Joe Brockmeier
September 24, 2024

Almost a decade ago KDE e.V., the non-profit organization that supports KDE, started a process for selecting goals to help the community unite behind a common vision for where the project should go in the near future. KDE recently wrapped up its 2022-2024 cycle and announced the goals for 2024-2026 at Akademy on September 7, in Würzburg, Germany. This time around, KDE will be looking to streamline its application-development experience, improve support for input devices, and bring in new contributors.

Evolving KDE

The goal-setting practice got its start in 2015 when Lydia Pintscher, then president of KDE e.V., blogged about a plan for a yearly process of gathering community input, defining goals, planning ways to achieve them, and measuring success. She said that setting goals for the project was important to help KDE "get a better understanding of where we are, where we want to go and how we want to get there".

In 2017, Pintscher announced a formal process for setting goals and providing sponsorship from KDE e.V. in the form of support for sprints, presentation slots at Akademy, and more. Goals could be about "anything you consider important – it doesn't have to be about writing code".

Setting goals

Contributors have about a month from the announcement of a cycle to come up with proposals. The proposals are then posted on KDE's Phabricator instance. (The Phabricator project was a code-collaboration project that was open-sourced by Facebook that is now defunct. KDE is phasing it out in favor of GitLab.) The format is somewhat free-form, but it follows a rough template. It includes a detailed description of the goal (or a problem that the goal will solve), a high-level plan, what's needed to accomplish the goal, the champion or champions for the goal (if any), and a list of contributors willing to work toward the goal. All of that information is important for the next step, the discussion cycle.

During that phase, proposals are batted about and refined based on community input. The community is encouraged to submit proposals even if the proposal does not have a champion yet, with the idea that champions may be found during the discussion period.

The list is then winnowed down to the proposals that are eligible for voting. A proposal might not be deemed eligible for voting if it lacks a champion, is too narrowly focused to be a goal, or provides too little information to be considered. For the current cycle, more than 40 proposals were submitted, with only ten declared ready for voting.

Voting on the proposals is open to KDE contributors with more than 10 "actions" on Invent, KDE's GitLab instance. This year, voting took place from August 15 through August 31. Finally, the top three are announced at Akademy (and via KDE's mailing list and blog). Then the work begins.

For the 2018-2020 cycle, the project chose streamlining onboarding of new contributors, improving user privacy, and improving the usability and productivity of KDE. The 2020-2022 cycle focused on consistency, applications, and finalizing the transition to Wayland. The goal set for the most recently completed cycle, 2022-2024, focused on accessibility, sustainable software, and automating and systematizing KDE processes to improve the project's institutional memory.

We are the champions

In prior cycles, each goal had an individual champion who was responsible for the goal from proposal to completion. This time around, Pintscher wrote, goals will be driven by a team of champions instead of an individual champion. She suggested that one person should focus on the goal's vision, another person would work on steering the technical implementation, and a third person would work on promotion. That team structure was merely a suggestion; the team could delegate responsibility in whatever way made sense, so long as there was a team. The plan was to put less pressure on the champions doing the work themselves and more emphasis on them "driving the goal forward through others". It makes sense to expand the number of people responsible for championing major initiatives, rather than putting all the responsibility on one person. As with most community open-source projects, KDE is not overburdened with contributors, and it's important to help them avoid burnout. KDE e.V. would work with champions to help with fundraising for projects to support the goals.

The winning goals were unveiled at a session at Akademy by Pintscher (video here), and later sent to the kde-community mailing list by Farid Abdelnour. The first winner is "strealined application development experience", championed by Graham and Nicolas Fella. The second is "we care about your input", championed by Gernot Schiller, Jakob Petsovits, and Joshua Goins. Finally, the third winning goal is "KDE needs you!", which has three champions; Aniqa Khokhar, Johnny Jazeix, and Paul Brown.

Streamlined application-development experience

The streamlining proposal is a good example of how goals are refined over the discussion period. The original text for the goal sparked a lengthy discussion, with Julius Enriquez pointing out that some of its suggestions overlapped with a KDE apps initiative by Carl Schwan. Fella suggested rewriting the proposal around making sure "our application development story is as good as possible", whether they are first-party applications from the KDE project itself or third-party applications targeting KDE.

Ultimately, Fella's rewritten version of the goal was adopted, leading him and Graham to sign on as champions. The final proposal says that previous goals have helped to improve application delivery and design, and to improve the consistency of the Plasma desktop—but KDE has fallen short of improving the application-development story:

There are many cases where our application design is inconsistent, either because no unified idea has been established or older applications have not been updated to new design ideas. The introduction of convergent design as a goal introduced new complexity to this. We tried many ideas and approaches, but often didn't converge (pun intended) on a common design.

To that end, the plan is to improve KDE's human interface guidelines (HIG) and design documentation for applications. Some of that work had begun before the goal was proposed: Graham announced a rewrite of the guidelines in June 2024. The goal goes much farther than that, though; it sets its sights on improving developer documentation, establishing "a culture of continuous review and improvement", and making it possible to build KDE applications with languages other than C++, such as Rust or Python.

We care about your input

KDE has decent support for basic input devices, such as mice, touchpads, and (of course) keyboards. However, users need support for a much wider array of devices or input types, including drawing tablets, touchscreens, speech-to-text input, and more. Those devices are often under-supported on Linux since the manufacturers usually do not do the work of providing software for platforms other than Windows and sometimes macOS. Users tend not to care about where the fault lies, however, only that their devices work as expected with all the bells and whistles. In addition, the proposal acknowledges that KDE still needs to close the gap between Wayland and X11 support.

The plan is to start by gathering information about missing features, bugs, wishlist items, and GitLab issues to compile a wiki page that tracks work to be done. The Wayland showstopper page that was used for the Wayland goal in the 2020-2022 cycle is given as an example of this. The next steps will be to perform research on input topics and blog about the findings "to educate users and developers, spur discussions, and inspire contributions from the wider community". The team also plans to reach out to users with "special hardware" who can help test patches, and to coordinate developers interested in working on improving input-device support in KDE.

Some of the ideas that are already on the table include disabling a touchpad when a mouse is plugged in, allowing customization of three-finger and four-finger touchpad gestures, and making it easy to re-bind keyboard keys globally. For example, letting users remap the Copilot key that is included on PCs shipping with Windows 11 to something useful.

Even more ambitious, the plan includes an number of ideas around input-method editor (IME) support in KDE. Generally, IME is the use of software to allow users to input text through methods other than a traditional keyboard. This covers input methods such as speech-to-text, language translation, and handwriting digitization when writing with a stylus on a touchscreen laptop.

Plasma is included as the default desktop of SteamOS, a Linux distribution that is designed for portable gaming PCs such as the Steam Deck. SteamOS can be used on other devices, however, and KDE may not have support for third-party game controllers that users choose for those devices. The proposal notes that navigating the desktop and applications on SteamOS without the Steam Deck's trackpads "is not currently a pleasant experience". Therefore, the team has set a target of making game controllers a primary input device for KDE. This would entail making it possible to navigate the desktop using only "arrow keys, a Back button, an A (enter/select) button and a menu button".

And, of course, an input goal would not be complete without addressing accessibility. The proposal notes that some of the input focus areas "are directly relevant to accessibility concerns". It notes Matt Campbell's work on the Newton accessibility architecture for Wayland as work that "KDE needs to stay on top of" to ensure that screen readers work well with KDE software "regardless of whether users access it via mouse, keyboard, touchscreen, tablet or game controller".

What does success look like for this goal? The proposal says that success is when "we're happy enough with the input stack to move on to other undertakings instead". Some of the specific indicators of success include: at least one new IME input method, a virtual keyboard that can fully replace a physical keyboard for users with a touchscreen or mouse input only, and new reports of "missing or unintuitive functionality become exceedingly rare" for mice and keyboards.

KDE needs you

Finally, the "KDE needs you!" goal focuses on formalizing and improving KDE's processes for recruiting active contributors, with an emphasis on "active". The proposal explains that many of KDE's projects are maintained by only one or two people, leaving aside "flyby contributions (which cannot be relied upon for continuous and stable development)". Even a core project like Plasma, it says, only has between eight and ten contributors; attracting new contributors is a matter of survival for KDE.

KDE already has a mentorship team that is meant to help new contributors learn how to productively contribute to KDE. The proposal recommends expanding that team's charter, increasing its resources, and turning it into a recruitment team, "since the main purpose of the mentorship programmes is recruitment anyway". The proposal aims to recruit more aggressively over social media, through direct contacts, and more. It also recommends adding a paid contractor to manage the recruitment team if necessary and resources allow.

The proposal identifies academic institutions and companies as potential sources for new contributors. It suggests trying to persuade educational institutions to direct students to do internships or final projects with KDE. Companies might want to be involved, it says, to help train their employees on working with open source.

In addition to the recruitment team mentoring new contributors, the proposal suggests that KDE's "harried developers" should "slow down development and spend time making it easier to bring new contributors into the fold":

It's often argued that developers don't have the time to mentor and train new contributors, but why not? There are no quarterly targets to meet, no board of directors demanding more and more output. Development could slow down by 1/4 for, say, two years and KDE would not be affected in any significant way. So instead of 100 changes listed in the changelog, there are now 75, so what? This is not a big deal folks.

The slowdown would be temporary, according to the proposal, as more contributors are trained and become productive. Success will be easy to identify by counting heads. The target for the goal is to increase the number of regular contributors to some of KDE's core projects by 50% in the next two years.

Cumulative culture

One might wonder about the results of the program so far, and whether the effort of goal-setting has panned out for the project. Looking at prior cycles, the practice does seem to be working for the KDE community. The onboarding project, for example, delivered a number of improvements to KDE's Bugzilla during the cycle to help new contributors file better bugs, and helped fill out KDE's developer documentation.

The Wayland goal didn't quite succeed in hitting its target of letting KDE use Wayland by default by the end of the cycle: but it laid the groundwork for KDE to make the switch in 2023, ahead of the KDE Plasma 6 release in 2024. That is in keeping with KDE's philosophy of cumulative culture: every cycle "represents a new layer of accumulated wisdom, i.e. new features and more stability". As long as the process continues to improve KDE in the long run, goals don't have to hit 100 percent (though that would be nice), they just have to drive KDE forward.



to post comments

A proper on screen keyboard would be great

Posted Oct 3, 2024 8:24 UTC (Thu) by callegar (guest, #16148) [Link] (1 responses)

I is great to see KDE planning and accelerating its development. What I think should be prominent on the drawing board is a proper on screen keyboard (OSK). The current solution `maliit` is almost unusable with applications that are not touch-native, because it only hosts alphabetic and numerical keys without any control or special key (i.e. a terminal layout is missing and there are no application specific overlays either). So it is not possible to use a terminal and it is not possible to use many (most) GUI applications either that may still need key combinations or accelerators (most editors, and a lot of drawing software, for instance). As a consequence, with a 2-in-1 computer (when the physical keyboard is detached) or with a tablet you cannot even do many basic things that you can do on Android.

A proper on screen keyboard would be great

Posted Oct 3, 2024 13:36 UTC (Thu) by jpetso (subscriber, #36230) [Link]

True, the Maliit situation is known to need improvement. The input goal proposal mentions this specifically, it's one of the things that (as elected goal champion and developer) I want to tackle personally.

Unless another motivated developer shows up first, of course - we're happy to distribute the workload among contributors and provide mentorship where necessary, so the ambitious proposal has a chance at all of its items getting tackled within the next two years. Follow the link to the goal proposal and find our Matrix room at the bottom to join the effort :)

As long as it continues to make Kirigami-isms optional, the KDE HIG and I can continue to be friends

Posted Oct 6, 2024 2:29 UTC (Sun) by ssokolow (guest, #94568) [Link]

They've been doing well on that front so far, even if I find the mobile-isms creeping into things like System Settings grating and uncomfortable.

Otherwise, for my PyQt/PySide creations, I'll have to retro-construct a HIG for a Qt 6-flavoured version of the de facto "standard UI" that was emerging from the cross-pollination of Windows 7 and below, pre-Kirigami KDE, GNOME 2, and Mac OS by sourcing elements of the current KDE HIG and the vintage Macintosh and Windows HIGs on my developer CD-ROMs so I have something I can reference in my contributor guidelines.

(Hell, I should probably do that anyway, given how many "Why should I do it this way?" rationales in the 1992 Macintosh HIG are still very relevant but seem to have been forgotten.)

C++, Rust, Python

Posted Oct 11, 2024 11:07 UTC (Fri) by swilmet (guest, #98424) [Link] (1 responses)

> making it possible to build KDE applications with languages other than C++, such as Rust or Python.

The KDE community should be careful with that.

A good example is GNOME and GTK which already supports many programming languages.

The disadvantages:
- The community isn't united around a single programming language, creating disagreements.
- It's harder to contribute to other projects which use another language.
- Some projects use several languages, are incrementally rewritten in another language.

The advantage:
- To attract Rust and Python developers with the KDE libraries.

It's much easier to just deal with a single language. (and C++ is becoming safer over time, making Rust less useful in this case if KDE is ported to modern C++).

C++, Rust, Python

Posted Oct 14, 2024 10:00 UTC (Mon) by taladar (subscriber, #68407) [Link]

> and C++ is becoming safer over time, making Rust less useful in this case if KDE is ported to modern C++

Sorry, but that is just something C++ people tell themselves so they can justify sticking with C++, no Rust user will ever fall for that.


Copyright © 2024, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds