2019 was an exciting year for KDE and its community. Once more, we delivered excellent Free Software for the world to enjoy and we did it as a great team that can achieve beautiful things together.
The best way to look back at KDE’s 2019 is through the three new goals the KDE Community selected: Wayland, Consistency and All About the Apps. These explain who and where we are in many ways. We create solutions using the best technologies available, we strive to offer excellent products for our users to use comfortably, and with all the features they need to rely on Free Software for their tasks; professional and otherwise. We have started working on the new KDE Goals while delivering our software consistently, like we have done over decades, and without losing the former goals of privacy, usability and on-boarding of new contributors.
The different goals and projects need support. In-person meetings have proved to be among the best tools the KDE e.V. has to enable contributors to work together comfortably, which is of most importance for a decentralised community like ours. We met last September in Milan to celebrate Akademy 2019, our yearly conference, where we had great presentations, discussions and made preparations for the year to come. Additionally, we had over 15 sprints over the year, for the different teams and projects to meet and work without distractions.
KDE and Free Software ultimately is about collaborating in many ways. In 2019, we organised the Linux App Summit along with the GNOME Foundation. This allowed us to gather, together with the wider range of organisations that care, a true FOSS environment to create a better ecosystem for our users and developers.
All of this and the rest you will read in this report wouldn’t be possible without your support. Special thanks to all supporting members during 2019 and to everyone who worked with us. Each contribution is valuable.
Looking forward to a productive 2020. See you all in the Community!
Aleix Pol for KDE e.V. Board of Directors
Featured article - What is the KDE Free Qt Foundation and What does it do
By Paul Brown
Qt (pronounced “cute”) is a collection of libraries, frameworks and tools that allow developers, companies and other institutions to create modern graphical interfaces for applications and environments. Qt is used for the interfaces for medical apparatus, the dashboard of modern cars, computer applications, and, most famously, for KDE’s Plasma desktop and all its programs.
The KDE Free Qt Foundation (KFQF) is an organization that was set up in 1998 to make sure all Qt components were free (as in "freedom"), remained free and can be used freely by third parties. The need for the Foundation came about because Qt was not always entirely free, or at least not free as in how freedom is defined by many Free Software and Open Source organizations. Not until 2005 was Qt licensed under a GPL license for all platforms.
KDE was instrumental in the process of liberating Qt and has two veteran KDE contributors on KFQF's board: Martin Konold is the Chief Technology Officer at Konsec GmbH and has contributed his expertise to the Kolab groupware suite; the programs grouped in KDE's Kontact suite for email, contact and task management; and other KDE projects. Olaf Schmidt-Wischhöfer, on the other hand, works at Mehrwert, a company that specializes in accessible websites. Olaf has contributed accessibility improvements to both KDE's desktop and its applications, as well as to the Linux Standard Base. Martin and Olaf's primary mission at the Foundation is to defend the rights of the Free Software community and the rights to use Qt freely.
While giving free use of Qt to third parties is fine, it has to be done always with the agreement of the company that happens to be the owner of Qt at any given time. At the moment of writing this, the enterprise that owns the commercial rights to Qt and employs most of its core developers is the Qt Company. That's why the KFQF also has members of the Qt Company on the board: Juhapekka Niemi is Executive Vice President of Qt Group Plc and Tuukka Turunen is a Senior Vice President of Research and Development.
The Foundation also engages Eirik Eng and Haavard Nord, the founders of Trolltech, the company that started developing Qt back in the 90s. Eirik and Haavard are board advisers but do not have voting rights. The Foundation also has two lawyers on retainer for legal counsel. They ensure that the agreement between KDE and the owners of the Qt suite of frameworks, libraries and utilities is legally binding.
The agreement itself is the cornerstone of the Foundation and lays out what software must be freed, what license must be used in the distribution of the software and what conditions the owner of Qt must comply with to not violate the letter of the accord.
With regards to the software, the license specifies that it covers all libraries, frameworks and tools currently part of Qt. It also covers future tools and libraries that could be developed by the owner of Qt and that could reasonably be considered part of Qt. This means that if the owner of Qt creates a new tool or develops a new library and it can be considered to be part of the Qt, it will be covered by the agreement.
The agreement is comprehensive in more ways than one and covers versions of Qt on all platforms, be it GNU/Linux, Windows, macOS, iOS, or Android, and even on platforms that may not exist yet. It also covers platforms the owners of Qt decide to abandon and then reinstate at a later date.
As for the version of Qt that is freed to the public, this is always the latest enterprise version and it gets distributed under the GPLv3 for the most part, although there are parts freed under GPLv2.
The frequency with which the owner of Qt must release a new version as Free Software is also regulated by the agreement: The owner of Qt cannot delay more than 12 months between releases. If the owner does not release a new version within a year of releasing the prior version, KDE would have the right to take the latest released version and open it up with a BSD license.
This would be to all practical effects a copy of Qt, where a community-based version could be split off from the version produced and maintained by the owners of Qt.
Despite the diversity of opinions in the community, KDE considers forking a last resort. Indeed, it should only be resorted to if the interests of the owners of Qt and KDE are irreconcilably at odds. This has not happened in the whole history of the relationship.
KDE would indeed have to carry on Qt's development, and without a doubt would gain support from other projects, enterprises and institutions who rely on an open source version of Qt. Indeed, there are plenty of examples of projects that have thrived when spearheaded by a community (Blender and LibreOffice come to mind). With a strong community such as that of KDE, it is unlikely that a transition to an entirely community-based steerage would fail.
But it is much better to count on the Qt Company as an ally, as we have counted on all the different owners of Qt in the past. The Qt Company has an accumulated expertise in its development team that is hard to beat and the firm is also linked to KDE in more than one way. The Qt Company has sponsored KDE and our events, we have shared knowledge and maintained an enriching relationship for both parties. Many Qt Company developers maintain or contribute to KDE projects and are valued members of the community.
On the flip side, remaining allies with KDE will always work in favor of the Qt Company. An active, mature and, at the same time, vibrant community is what many companies dream for their products. The reason why this is coveted is easy to understand: An enterprise with a product such as Qt and a strong FLOSS community backing it, automatically gains literally thousand of testers and evangelists. Independent developers push improvements upstream, engineers will advocate it in their workplaces because they will have used it in their side-projects, and thousands of apps showcase its strengths, making it one of the stronger contenders in its category.
In conclusion, the KDE Free Qt Foundation exists not only to defend the freedom of the Qt framework and tools, but also for the success of the alliance between KDE and the Qt Company.
Supported Activities ‒ Developer Sprints and Conferences
Plasma Mobile Sprint
By the Plasma Mobile Team
During the week from the 4th to the 10th of February, the KDE Plasma Mobile team held the first ever Plasma Mobile sprint in Berlin.
On the first day, we collected important tasks, planned our work and discussed future releases of the project. We worked on the following tasks:
Ilya Bizyaev visually refreshed the Plasma Mobile shell and brought it nearer to the mockups. Meanwhile, Marco Martin refactored and simplified the codebase of the top sliding panel, making the user interface code simpler and more maintainable.
Dimitris Kardarakos improved the documentation to make the development environment setup and the application development easier for everyone. Thanks to his work, we now have a Kirigami tutorial.
Moreover, the instructions to build QEMU and Virgil 3D from the source code have been substituted with the installation of just a single snap package. He also explored new ways we could leverage Flatpak and update the website with the Debian based images.
Ilya Bizyaev helped make the new documentation resources more discoverable by cleaning up old wiki pages and setting redirects where appropriate.
During the sanity checks of the Plasma Mobile documentation, we found that building Flatpak for the phone was failing in KDE Neon User Edition. Since the root cause lied in the qemu-user-static and binfmt configuration in bionic, Harald Sitter provided a workaround until the issue got solved upstream.
Simon Schmeisser worked on our mobile Angelfish web browser which now makes more use of Kirigami, displays favicons, and provides auto completion of search queries. We are planning to give Angelfish a more Kirigami-streamlined look once Marco Martin’s patch for resizing windows on keyboard input is accepted. Related to this, Jonah Brüchert added settings for configuring a search engine and a homepage.
Linus worked on Kaidan, an XMPP Messaging client for Plasma Mobile and many other platforms. Kaidan now provides a download manager to download and cache files instead of downloading them again each time it starts. Jonah’s merge request to add an emoji picker to Kaidan was also accepted. You can expect more features and a rewritten database backend soon.
Marco Martin fixed and improved many areas of Kirigami, enabling some of our changes in Angelfish we mentioned above. One of the improvements makes it possible to leave Kirigami layers on a mobile device without requiring the app developer to add a close button, another is that Kirigami also got a new API to customize the application top bar headers. A lot of work was done to refactor its signature column-based navigation user interface which would allow for many new features.
Nicolas Fella worked on improving KDE Connect on Plasma Mobile. Most of the work went into integrating the settings from the desktop side in the mobile app. We also verified that the SMS and telephony stack of the Nexus 5X was functional and discussed ideas for an appropriate user interface.
Camilo Higuita had been working on the MauiKit framework and the Maui set of apps for almost a year at the time of the sprint and some of those apps were shipped with Plasma Mobile by default. His work mostly consisted of bringing those apps up to date, adding missing features and fixing bugs along the way. He also worked on getting acquainted with the Plasma Mobile shell, its plasmoids, their architecture and structure since his plan was to eventually hacking on the shell. All the Maui apps (Index, Vvave, Buho and Nota) are now using a better modeling system that allows for better control over the content, gives users a cleaner interface and has gained some features along the way, like content sorting, file searching, better editor control and more.
Packaging and Software management
Jonah Brüchert created a patch for Discover that fixed icons being incorrectly displayed on the update page and made all of our improvements and new applications available in the Debian repository. Continuing with Discover, Aleix Pol also fixed the issue of non-mobile-friendly applications being recommended in Discover on Plasma Mobile. Aleix also made many new mobile-friendly applications available in the KDE Flatpak repository.
Bhushan Shah worked on further improving our KDE Neon-based images. They are now up to date with the latest changes including patches for better scaling of the Plasma Shell and applications under hwcomposer backend from David Edmundson. Meanwhile, Bart Ribbers made more Plasma Mobile apps and updates available in postmarketOS, so you can now, for example, install and use Kaidan and Angelfish on it.
Devices and Hardware
In addition to software work, the Plasma Mobile team also worked on various hardware projects. Before the sprint, the KDE Community attended FOSDEM, where we demonstrated Plasma Mobile running on the RISC-V hardware, thanks to the work carried out by Alistair Francis from Western Digital.
During the sprint, we were joined by Dorota Czaplejewicz from Purism who works for the Librem 5 project. Purism has provided Librem 5 developer kits to Plasma Mobile developers, and with help from Dorota, we were able to bring Plasma Mobile up on the kits.
Talking of which, during FOSDEM and the sprint, Bart Ribbers also worked on bringing up Plasma Mobile on the Pinephone devkit, Project Anakin.
Privacy Goal Sprint
By the Privacy Team
From the 22nd to 26th of March, members of the KDE Privacy team met up in Leipzig, Germany, for our Spring 2019 sprint.
During the sprint, we floated a lot of different ideas that sparked plenty of discussions. The notion of privacy encompasses a wide range of topics, technologies and methods, so it is often difficult to decide what to focus on. However, all the aspects we worked on are important. We ended up tackling a variety of issues, and we were confident that our contributions would improve data protection for all users of KDE software.
Both Sandro Knauß and Volker Krause regularly work on KDE's Kontact suite (email, calendar, contacts, etc.), but this time they took on network-related issues. One of the problems is that there were still too many http links (instead of secure https links) within our codebase. This is a threat to users' communication, as http connections - and hence all the messages that travel over them - are unencrypted.
To make it easier for all KDE developers, Sandro and Volker wrote an ECM-injected global unit test. The test gets added to every application and prints out warnings about http links used in your code. Another script tries to update all the links in your codebase to use https, but checks beforehand if the https links would work. For example, sourceforge.org subdomains don't provide a certificate, so the script would ignore those.
Things are further complicated by http links that are used as identifiers in XML documents, and those links cannot be changed. All of the above exceptions and niche cases are the reason a simple search-and-replace would not work.
When the script ran, many of the links it found were updates of user-facing links that a normal capable browser would "fix" on the fly. However, it also found privacy leaks, as some links were routed through URL shorteners and pastebin services, as well as to default download locations.
Another thing we identified is that the KDE mirror network was still using http at the time, and the underlying software was not ready to work with https. This meant there was still some work we needed to carry out to make mirrorbrain capable of using https. The website needed a valid certificate, too.
Meanwhile, Ivan Čukić and David Edmundson worked on improving Plasma Vault, KDE's solution for encrypting folders. The aim was to fix the issues that used to arise when other KDE software components interact with vaults. They made several major improvements:
vaults can now be opened and closed directly from Dolphin;
offline vaults force the network to be disconnected as soon as the password entry dialogue is shown;
and thumbnails are not generated for files in FUSE-encrypted directories unless the thumbnail cache is located in the same encrypted mount.
David and Ivan also spent some time on KWallet, KDE's password manager. In a breakout session, David investigated how to handle KWallet sandboxing, and Ivan explored the possibility of doing elliptic-curve encrypted inter-process communication, which could be useful for handling passwords with KWallet.
Florian Müller looked into using the Tor Browser as the default browser in Plasma. He found that it was mostly blocked, as Tor Browser is started with --no-remote, which made it impossible to trigger new tabs from the outside. To solve the problem, Florian filed a patch against torbrowser-launcher.
The integration of Tor would go way beyond just using the browser, though. In fact, the team wanted all applications to be able to use Tor. To see if this was possible, we picked some applications and worked on configuring their proxy settings. During the testing, we used a .onion address to make sure that data was correctly sent via the Tor network.
On Monday morning, Jos van den Oever presented a proof-of-concept privacy proxy. The proxy is run by the user, and it intercepts all web traffic, storing it in a local archive. This proxy would make it possible to revisit parts of the Web even without an Internet connection. Additionally, the proxy would be able to block unwanted content by defining filters.
The presentation was followed by a discussion on how to use such a proxy in KDE software in a user-friendly manner. Jos himself had been using his own proxy privately for a few years, but the code needed to be cleaned up and updated to the current version of Rust libraries before it could be released.
Then again, working for the future is what the Privacy team does most of the time. Gradually, most or all these features (and quite a few more) would make their way into Plasma Desktop and Plasma Mobile, making your desktop and mobile devices a safe environment against data leaks and snooping without sacrificing functionality.
By the Plasma Team
The KDE Plasma and Usability teams converged on the beautiful Spanish city of Valencia in June for a combined development sprint. The teams admired Valencia’s medieval architecture and stayed up until midnight eating sumptuous Mediterranean food. But of course, the real purpose was work!
We camped out in the offices of the Slimbook company, which were generously made available for the sprint. The aim was not only to hack on Plasma and the Usability & Productivity goal, but also to benefit from the cross-pollination opportunities provided by hosting both sprints at the same time and place.
Present for the Plasma sprint were Kai Uwe Broulik, David Edmundson, Nicolas Fella, Eike Hein, Roman Gilg, Aleix Pol Gonzalez, Marco Martin, and Bhushan Shah. They had quite a busy agenda:
Plasma 5.16’s new notification system received a great deal of polish
Fixed a ton of bugs in the Plasma Browser Integration
Rewrote the widget positioning code for the desktop, making it much more robust, future-proof, and usable on touch:
Started work on making the Task Manager understand window stacking order, which will allow it to implement new interaction modes for grouped windows (e.g. bring forward the last-used window when clicked)
Worked on architecture improvements for the Task Manager to unify its different presentation modes and improve code robustness
Worked on a variety of architecture improvements for KWin to make it more future-proof, which, among other things, will improve multi-screen handling
Improved the user interface for the System Tray’s settings window
Added calculator and unit conversion functionality to Kickoff and Application Dashboard
In addition to making technical progress, the Plasma and Usability teams got together to discuss a number of long-standing Plasma issues, and figure out how to resolve them:
We wanted to make it easier to test a custom-compiled version of Plasma. To do so, we implemented changes that allow you to integrate your custom-compiled Plasma into SDDM by running a single command, after which you can log into it normally. For more information, see this article.
We thought it would be a good idea to make it more obvious and discoverable that Plasma is made up of widgets, and show how they are configured. To do this, we decided to create a new “global edit mode” that’s triggerable from within System Settings, as this is where new users generally expect everything to be configured. In this global edit mode, all widgets become visibly configurable, editable, removable, etc. We also wanted to make it easy to change the wallpaper in this mode. With all that done, we were able to remove the Desktop Toolbox as it existed at the time.
There was a need to unify the disparate scaling methods, so we decided to visually connect the scale factor chooser with the “Force Fonts DPI” setting, since the former actually affects the latter, but not the other way around. This should make it clear that the scaling slider is the primary way to scale the screen, and the “Force Fonts DPI” control is nothing more than a way to tweak things further.
We needed Plasma to respect the system-wide scale factor on X11, so we came up with a path forward and a plan for getting it done!
We planned out how to add power actions to the lock screen. We concluded that not only did this make sense, but it would be necessary for Plasma Mobile anyway. In a multi-user environment, the user will have to enter an admin password to shut down or restart the machine when other users are also logged in.
Over in the Usability & Productivity room, we had Méven Car, Albert Astals Cid, Noah Davis, Filip Fila, Nate Graham, and David Redondo. The agenda was similarly jam-packed, and included the following:
We ported Spectacle to use KGlobalAccel and away from KHotKeys, made the quit-after-copy feature finally work, and added support for drawing annotations on newly-taken screenshots
We implemented user-configurable sort ordering for wallpaper slideshows
Dolphin received human-readable sort order text and an auto-play-on-hover feature for media files
We added inline name feedback when creating new files or folders
Users can optionally close windows in the Present Windows effect with a middle-click
Many user interface improvements were made to the Purpose framework, which implements sharing support in many apps (Dolphin, Spectacle, Okular, Gwenview, and so on)
We started working on improving the default selection of pictures available for user account avatars
Initial work was done on a new “Recently used” feature for Dolphin and the file dialogs that pulls its data from a single consistent location and actually notice everything
We also came to some significant conclusions related to higher-level goals. For example, we planned to pay for professional user research to generate new “personas” and target user groups that represent the people using our software. We would use these personas as the basis for professional usability testing for Plasma, Dolphin, Gwenview, Okular, and other components of a basic desktop.
Additionally, we discussed how we could add release notes data to our apps’ AppStream data, so that it shows up in software center apps like Discover. The big blocker was getting the required translations added to the tarball. We started a dialogue with AppStream maintainer Matthias Klumpp regarding a new feature to pull translations from a remote location, which would support our workflow.
Finally, VDG member Noah Davis dug deep into Breeze to work on visual consistency improvements related to selection highlights. Given his familiarity with the code, he was well on his way to becoming the next Breeze maintainer!
All in all, it was a very productive week. KDE Plasma and apps are in a great place right thanks to the work we carried out, and the team’s effort to further improve things reached users in the next versions.
Usability & Productivity Sprint
By David Redondo and Nicolas Fella
The Usability & Productivity Sprint was held in Valencia, Spain from 19th June to 25th June and was hosted by Slimbook. In this sprint, not only the future of the usability goal was discussed but also several components were improved. The sprint was divided into two parts. In the first part, the main focus was to improve KDE's screen-capturing software Spectacle and in the second part, other applications were discussed.
The first feature we worked on was that Spectacle now shows the time remaining until a screenshot is taken in the task manager. We also worked on integrating an image annotator in Spectacle.
The next feature was porting the Shortcuts configuration of Spectacle from KHotkeys infrastructure to KGlobalAccel. This means the shortcuts would not be located in the Custom Shortcuts part of the system settings and duplicated under KDE Daemon in Global Shortcuts but reside in their Spectacle category in the global shortcut settings. Even more important, we can now show a configuration dialog for the shortcuts inside Spectacle!
The issue of screenshots not being copied to the clipboard was also resolved. This was due to a bug in Klipper, KDE's clipboard app. Now you can paste screenshots into your favorite image editor or chat program after closing Spectacle.
An additional bigger change was to port Spectacle from its hand-rolled configuration-managing class to a KConfig XT based approach. So writing an XML file and generating the code that manages the settings and their defaults.
Aside from this we also worked on investigating and fixing some bugs as always. For example, the action buttons now fit into their respective list elements inside the virtual desktop settings, and you can’t get trapped inside Spectacle’s Region Selection anymore.
Although major changes were related to Spectacle there were discussions on other topics as well.
One major discussion was the possibility to have wallpapers slideshow in a particular order in addition to the current random sequence. For now, we implemented it to sort in alphabetical order and based on the time the pictures were modified.
The user experience of Purpose, the framework used for sharing stuff, was also improved. Cancelling a share now doesn’t show an error any more. The share dialogs for KDE Connect and Bluetooth got a huge makeover. The share menu now shows ellipsis where semantically appropriate. We then polished the menus we implemented for sharing via Purpose in Gwenview.
Also, a more human-friendly sort order description in Dolphin was implemented. We had big discussions about the discoverability of widget settings and agreed on having a global edit mode where everything on your desktop will be configurable. Another point of discussion was the right-click menu of the plasmoids in your panel that can be confusing when they include multiple very similar entries. We also touched upon the behavior of the task manager and multi-screen configuration.
The greatest thing about this sprint was that not only that there were discussions on features and bugs fixes, but that there were discussions on bigger changes, directions for the future, ideas sharing and brainstorming.
By Neofytos Kolokotronis
Between the 19th and 23rd of July 2019, around 20 KDE contributors met in Nuremberg, Germany, to work on 3 different projects, in what turned out to be a KDE Megasprint hosted by SUSE. KDE’s Onboarding Sprint was one of the projects. The goal of the sprint was to answer the question “how do we make it easier for people to start contributing?”
The Streamlined Onboarding Goal Sprint
This sprint took place as part of KDE’s Streamlined Onboarding goal, a goal that had been running for a year and a half at that point. Its focus was on making it easier for new contributors to set up a development environment and get started with developing KDE software.
Identify use cases
The next step was to list, compare and contrast all the ways that were available to developers at the time to get started with coding KDE software.
We considered implementations involving distribution packages, cmake external projects, docker built with dependencies from the binary factory, docker with kdesrc-build, kdesrc-build, craft and flatpaks.
It quickly became evident that finding a solution that would fit everyone’s needs would be very hard, if not impossible. To be able to proceed, we had to narrow it down to five major use cases:
Applications (including Frameworks)
Self-contained (e.g. Krita)
Using multiple repositories (e.g. PIM)
The prevailing impression was that each use case would require a different approach for setting up a development environment. However, as the goal of the sprint was to enable new contributors and in particular those that would not have much experience with KDE’s development process and tools, we decided that we would focus on use case #1.
KDE’s Applications, and self-contained ones, in particular, are a great entry point for new people to get involved, and that is where we should be pointing newcomers that are just getting started. Hence, we decided that would be the case we would be tackling first.
The discussion that followed revolved around the design and the challenges that a good solution would solve, as it should be able to:
resolve the dependencies, by providing a set of pre-built binary dependencies that is as rich as possible.
configure the tools developers need to pre-install before they can get started (e.g. a compiler, git, cmake).
avoid using a command-line interface and offer IDE integration.
download the sources, and then build and run the relevant application.
The discussion came down to the story that we wished to tell developers that were getting started. What would the path be we wanted them to walk in order to start contributing code? Did we want Linux-based operating systems to be our go-to OS for development? Would we ask newcomers to use KDevelop as the go-to IDE? How did developers download a project and set up environment variables?
Several of those questions were not given a clear answer. To be able to have a developer story, we needed to offer a solid starting experience and make some choices that, even though they might have limitations, they would best serve the purpose.
Work on prototypes for possible solutions
The result of the discussions that took place on the first day was that the two most feasible solutions would involve the usage of either Conan or Flatpak, as they seemed to give answers to the emerging question of automating the resolving of dependencies, in addition to other features that each offer.
On the second day, the participating developers formed smaller groups to test the adoption of each of these solutions to our needs. Most of the work went into using each tool to build a working prototype that would help with getting started with coding a KDE application on it. A small and simple KDE application (Kruler) with not many dependencies was chosen for this purpose.
Conan is an open-source C/C++ package manager for developers. Ovidiu-Florin Bogdan has significant experience with it, so he was able to explain the available features, respond to questions and share his insight on the possible implementation. Together with Dmitry Kazakov from the Krita team, they worked on preparing a Conan solution and documenting the first steps and challenges that this involved.
Flatpak is a utility for building and deploying software and managing packages on Linux-based operating systems. Aleix Pol had put the time towards supporting this technology in KDevelop, but there was still work left to be done. Together with Albert Astals Cid and David Redondo, they worked on testing the status of this implementation and recorded the pending challenges which we had to address if we wanted to bring this solution to a state that would serve our needs.
The sprint helped kick-start the discussion about making it easy for newcomers to set up a development environment. The majority of KDE developers that attended the sprint seemed to understand the importance of achieving this objective, but at the same time were concerned about the difficulties that such a task involves.
The major challenge moving forward will be to support the developers to put further work into the prototypes so we can have a fully working solution to test and put to use to our advantage.
KDE Connect Sprint
By Simon Redman and Matthijs Tijink
KDE Connect Sprint 2019 was hosted by SUSE from 19th to 21st July 2019 in Nuremberg, Germany. Developers gathered for a thought-provoking discussion on improving KDE Connect. We had discussions on resolving the current issues and suggestions for new features. Some of the major points that were discussed included:
TCP connections will not be open to all reachable devices.
Using mDNS (a.k.a. Avahi/Zeroconf/Bonjour) to discover KDE Connect devices.
Making KDE Connect better on Wayland.
Google lockdowns Android more and more, and how to handle that.
Improving the Bluetooth backend bug.
Now let’s discuss some of these points in detail...
Privacy is a major issue for people and there were often many requests for more privacy-conscious modes of KDE Connect. Device names often contain personal information and show that this person is around. Even if you change the phone names, device IDs cannot be changed as they are unique, so you can still track a particular device by checking the same ID again and again.
Another major issue was to resolve the current discovery protocol that often doesn’t work, as many networks block the UDP broadcast. Often networks block KDE Connect's UDP broadcasts which were then only workable after adding the IP address manually. The suggested solution was to use mDNS for discovering KDE Connect devices as this might make KDE Connect more reliably able to auto-connect.
Every KDE Connect Sprint we try to fix the issues with the application and try to add new features to make KDE Connect better for the users. This year we also not only discussed resolution of major issues but fixed a lot of bugs with additions of new features.
KDE Connect has evolved over time and acquired many new functionalities and we expect this evolution to continue and become better and better for users.
The Krita Sprint
By the Krita Team
From the 5th to the 9th of August, developers and artists from all over the world gathered in Deventer, the Netherlands for the 2019 Krita Sprint. This year’s sprint was huge as many people attended for the first time.
The core focus of this sprint was to bring people together, gather ideas, discuss the future goals in detail, investigate workflow issues, and non-technical things like how to help, engage, and make people feel part of the community.
Initially, we were involved in hacking and discussions and there were more bugs reported than bugs fixed. Then we had discussions between the groups about the effective development goals for the upcoming Krita version in terms of quality control and testing timeframes.
Bugs and Stability
The 4.2 release was not as stable as the 4.1 release, as our developers weren’t that deep into the codebase yet. Another reason was that we updated to Qt 5.12, which seemed to come with many regressions. The solution was to either fix them in Qt or work around them in Krita itself. We were also merging bug fixes into our release and these fixes had not been tested. Based on discussions during the sprint we decided that we would try the following:
Release once at the end of the month.
Merge bug fixes to the stable branch until the middle of the month.
Publish an article on krita.org telling users about the next stable version. This article would show up on users’ welcome screen news widget, right inside Krita. We would also provide links to downloads of the portable version of Krita for every OS.
Publish a link to a survey on the welcome screen for testing the changes noted in the released article.
After two weeks, we would release the next stable version of Krita.
Development focus for 2019/2020
Super-stable Krita 4.3 would be released with a bunch of new features but would still focus on stability. We were still working on fixing the resource handling system.
We agreed that the text tool still needed much more work to get rid of the dependency on Qt’s internal rich text editor: the conversion between QTextDocument and SVG is lossy, and leads to problems. One focus was to work on the Text Tool, although it was still not usable for the primary goal, namely comic-book text balloons. To make it suitable we knew what to do, but just didn’t have the time while fighting incoming bugs all the time.
It was clear that we still needed to work on stability and performance. During the discussion, some particular issues were noted:
The move tool had become very slow.
There was a range of missing features after the vector rewrite, such as unimplemented layer style options, half-implemented animated transform mask and missing undo/redo support in the scripting layer.
Brushes had to be much faster.
Resource handling was still being rewritten.
We also brainstormed issues concerning the workflow:
There were multiple issues with animation.
Discoverability of features in Krita was not up to par.
Dockers were overcrowded and the contents hard to find.
The solutions we came up with were
To create a tool to search through Krita’s functionality.
To implement a combination of clone layers and transform masks.
To add a timer to save incremental versions and add an option to export incrementally.
We also discussed the following new features:
A status bar indicator that would show whether the stabilizer, canvas acceleration, instant preview (and others) were on or off.
In the brush engines, thin bristles that could have their color and a calligraphy tool.
A tool or a brush engine that would make it easy to paste images or designs and transform them before pasting the next one.
To create a pipe brush from an animation on the timeline instead of the then current system based on layers.
A font selector where we could mark X fonts as favorites and create a wish bug for them.
Marketing and Outreach
Our presence on Twitter, Mastodon, Tumblr, DeviantArt, and Reddit is fine. On Facebook, non-official groups are more used than Krita’s account. YouTube needs improvement, we are absent on Instagram.
We decided to run a competition on all social networks for which we had a maintainer (Instagram, Twitter, Mastodon, and Reddit). We thought we would always be able to extend this later to other places. Each maintainer can propose two images + attribution info + links, which will be shown in rotation for a month. We planned that the system for doing this would be ready for the 4.3 release in October.
We decided to make a page with a very clear text explaining the rules: we wouldn’t take ownership of the images, the images would be shown in Krita, there would be no licensing requirements for the images, and certain kinds of images would not be able to be used.
Development Fund and Fundraiser
Financially, Krita was doing okay. We were getting between 2,000 and 2,700 euros a month in donations. That translated to one full-time developer. The Windows Store and Steam were bringing in enough for three to four extra full-time developers. We wanted to become less dependent on the Windows Store, though, since Microsoft has been getting more and more aggressive in promoting getting applications from the Windows Store.
We already had a notional Development Fund, but it was a monthly PayPal subscription or recurring bank transfer. We didn’t have any feedback or extras for the subscribers, and the subscribers had no way to manage their subscription or to reach us other than in the usual way. We tried to implement a CiviCRM system for this, but that was way too complex for us to manage. We needed to reboot our Development Fund and migrate existing subscribers to the new fund.
A basic list of requirements would be:
Have a place on the website where people could subscribe and unsubscribe.
Have a place where we could show the names of subscribers who agreed that their name be shown.
Have a way to tell people what we were doing with the money and what we would be doing with it.
Make sure companies and sponsors would also be able to join too.
Google Summer of Code
By Valorie Zimmerman
From 7th May to 4th September 2019, the KDE Community welcomed Google Summer of Code students for 2019. Google Summer of Code (GSoC) is a global program focused on bringing more student developers into Open Source software development. Students work with an Open Source organization on a 3-month programming project during their break from school.
This was our 14th year of mentoring students. The following students have worked with our development teams throughout the summer.
Krita had four students: Alberto Flores worked with the SVG pipe/animated brush, Kuntal M. ported the magnetic lasso, Sharaf Zaman ported Krita to Android, and Tusooa Windy brought a better undo/redo to Krita.
digiKam mentored three students: Thanh Trung Dinh brought AI Face Recognition with the OpenCV DNN module to digiKam, Igor Antropov improved the Faces Management workflow, and Ahmed Fathy made a zoomable and resizable brush for Healing Clone Tool.
Labplot got attention from two students: While Devanshu Agarwal provided statistical analysis for Labplot, Ferencz Kovács worked on the support for importing educational data sets available on the Internet.
Another two students - Piyush Aggarwal and Weixuan Xiazo – worked on KDE Connect. Their projects were quite exciting: Piyush ported KDE Connect to Windows, while Weixuan brought KDEconnect to MacOS.
Akshay Kumar brought Gcompris one step closer to version 1.0, and Akhil K Gangadharan revamped the Titler tool for Kdenlive. Prasenjit Kumar Shaw made data sync for Falkon a thing, and Rituka Patwal brought Nextcloud integration to Plasma Mobile.
Atul Bisht created a barcode scanning plugin in Purpose. Filip Fila worked on ensuring consistency between the SDDM login manager and the Plasma desktop, and SonGeon focused on integrating kmarkdown-qtview with WYSIWYG markdown editor for KDE as a whole.
KDE neon got a KDE ISO image writer courtesy of Farid Boudedja, while Caio Tonetti made an improved graph theory IDE for Rocs. Alexander Saoutkin polished KIOFuse, and Shubham ported authentication to Polkit-qt for KDE Partition Manager.
During the event, we were always excited to share their progress with the rest of the world.
By Paul Brown and Ivana Devcic
Akademy 2019 was hosted by unixMIB at the University of Milano-Bicocca in Milan, Italy. The annual conference of the KDE community started of with its traditional two days of conferences, hosting more than 30 speakers.
Akademy attracted 165 participants, which is an uptick from previous events for the second year running, proving there is an increase in interest KDE's activities and technologies. Apart from Community members, attendees included new participants and representatives from the Italian government, local organizations, software companies, journalists, supporting members, sponsors, and many more.
Day 1 - Saturday, September 7: Goals, Reports, and the Future of Qt
Akademy 2019 started in the morning of September 7 with an introductory session by Lydia Pintscher, President of KDE e.V., followed by the first keynote. In the keynote, Lars Knoll from Qt presented the path towards Qt 6 all the way from the very beginning of the project. Lars also spoke of what upcoming changes in Qt 6 may potentially impact the KDE ecosystem.
The next batch of talks was dedicated to the KDE community goals. Ivan Čukić started by presenting the progress of the Privacy and Security goal in his talk Everything to hide: Helping protect the privacy of our users. Ivan pointed out that security and privacy should come before usability, even if some users hate it, because it's our duty and responsibility to protect them.
Eike Hein talked about the Usability and Productivity goal and wondered Are we there yet?. Massive improvements have been made to KDE software as part of this goal, and Eike emphasized the importance of communicating this progress (as illustrated in weekly blog posts by Nate Graham). The achievements of the third community goal - Onboarding New Contributors - were presented by Neofytos Kolokotronis, who listed the adoption of Matrix as a communication tool, the on-going adoption of GitLab, and the creation of the KDE Welcome team as some of the major moments.
Over in the Security track, Albert Astals talked about the cool ways developers can use oss-fuzz to test their code, and encouraged KDE developers to use it for projects such as Baloo, kfilemetadata, and PIM-related code. Volker Krause presented parts of the work carried out for the Privacy goal in his talk Secure HTTP Usage, and warned about the importance of having secure defaults in KDE software.
The Community session included a talk on building developer portals by Ivana Isadora Devcic, followed by Ray Paik's talk on making a difference in the community. As a Community Manager at GitLab, Ray shared his experience with identifying crucial community metrics, attracting new contributors, and improving leadership and inclusivity efforts.
The session was followed by two community-related talks. In What We Do in the Promos, Paul Brown gave a realistic look into how people outside the FOSS bubble perceive (or do not perceive) KDE software, and explained the reasoning behind activities carried out by KDE Promo. Afterwards, Aniketh Girish explained how code reviews can be toxic and put off new contributors, so he offered some advice to prevent that. Last but not least, Dan Leinir Turthra Jensen presented the Get Hot New Stuff project and its development.
Akademy 2019 continued throughout the rest of the week with daily BoF (Birds of a Feather) sessions, meetings, and various activities that helped us strengthen the community bonds. The recap videos of the BoFs for Monday, Tuesday and Wednesday are also available on KDE's news site, the Dot.
Akademy 2019 was an engrossing experience thanks to the wide variety of talks and fun-filled chats with participants eager to share and learn.
Moving forward, Akademy 2020 will be held online and we expect our participants to attend with the same enthusiasm as previous years.
Linux App Summit
Compiled from blogs by Akhil Gangadharan, Amit Sagtani, Jonathan Riddel, and Kenny Coyle
From the 12th to the 15th of November, the Linux App Summit (LAS) was held at La Lleialtat Santsenca cultural center in Barcelona, Spain. It was co-hosted by KDE and Gnome.
LAS intends to impulse all aspects aimed at accelerating the growth of the Linux application ecosystem by bringing together everyone involved in creating a great Linux application user experience. LAS welcomed application developers, designers, product managers, user experience specialists, community leaders, academics, and anyone interested in the state of Linux application design and development.
LAS hosted quality sessions all relevant to the subject of the Linux App Ecosystem. Speakers covering the entire spectrum of the Linux desktop came to talk to the conference on topics such as packaging and distribution of apps, monetization within the Linux ecosystem, designing beautiful applications, and more.
The event started with a talk by Mirko Boehm on The Economics of FOSS followed by talks on a wide variety of topics, from independent distribution platforms like Flatpak and Snap, to programming frameworks like Qt and GTK. Speakers included Aleix Pol, Tobias Bernard, Jordan Petridis, Frank Karlitsche, Paul Brown, and many more. Amit Sagtani and Saloni Garg gave talks on the Open Source culture and the various open-source programs for students and the last day of the conference had many Birds of Feather meetings and hacking sessions.
Compared to 2018, LAS doubled the number of registrations from approximately 80 registrants to 170. The streaming channels peaked at an additional 648 views and the conference was well attended by a 20.2% women and 64.4% men, with the rest preferring not to identify. The event was covered by two journalists and many of our attendees, who wrote blog posts sharing their experiences.
Compiled from the blogs of Aracele Torres, Caio Tonetti, Filipe Saraiva and Sandro Andrade
The seventh edition of the LaKademy - the Latin American Akademy took place from 14th to 17th November 2019 at the Superintendency of Information Technology of the Federal University of Bahia in Salvador-Bahia, Brazil. Contributors and members of the community gathered for four days of hacking sessions, promo meetings, and all sort of KDE-related things.
LaKademy started with a round of presentations of projects for new and potential contributors. Later, we exchanged ideas about different projects and initiatives and participated in different hacking sessions where contributors worked on projects.
We worked on KDE projects like LaKademy’s website, KDE Brazil’s migration from Phabricator to GitLab, Cantor; porting Sprat, an editor of papers drafts in English, to Qt5; ROCS; fixes for redundant code; bugs plaguing Khipu, etc.
As always, we held our traditional promo meeting. During the meeting, we discussed future actions for KDE in Latin America and strategies to make our community stronger. The main decisions were to organize small, distributed events in the cities and to organize KDE’s presence at FLISoL and Software Freedom Day. We also discussed creating a KDE Brazil Promo group on Telegram to coordinate activities in Brazil.
It was a great event where not only veteran members guided new members, but where we also worked passionately to create better softwares for everyone.
Compiled from notes made by Christoph Cullmann, David Redondo, Kai Uwe, Kevin Ottens, Marco Martin, Nicolas Fella and Volker Krause
From the 21st to the 24th of November, a dedicated sprint for KDE Frameworks 6 (KF6) was hosted by MBition GmbH in Berlin. A group of KDE developers gathered to discuss the next steps for the KDE Frameworks. In general, the aim was to discuss major design principles, strategies for a Qt6 transition and past and future goals of KF6 including:
iterate on the previous split and have a second, smaller, round of cleaning up the dependencies between Frameworks;
better separation between logic and GUI on Frameworks where it is applicable;
better separation between APIs and platform implementations.
We discussed how Qt6 will be an improved version of Qt5, as it will be a big refactor that makes the API quite better and solve some architectural problems in Qt5 areas including QGuiAction. To have that, it needs to be binary incompatible with Qt5.
After determining overall goals, we discussed a couple of big Frameworks and scrutinized many Frameworks like KTextEditor, KMediaPlayer, KXmlRpcClient, KConfigWidgets, KCMUtils, KConfigWidgets, KColorScheme, etc.. To better cover all aspects, we split up into subgroups and a Kanban board was used to drive the work. The idea was to go through each Framework and decide whether its dependencies could be slimmed down. We also tried to determine which APIs needed an overhaul, and where a sensible split between libraries, runtime services, plug-ins, and so on should be implemented.
We started with the Tier 3 Frameworks which have the most complicated dependencies (Tier 1 Frameworks only depend on Qt). Followed by Tier 2 and Tier 1. We decided that Tier 1 Frameworks have no dependencies on other Frameworks, Tier 2 can depend on Tier 1 and Tier 3 can depend on Tier 1, 2 and 3. Tier 3 Frameworks will be much more orderly with clearer dependencies and will be much easier to reuse in non-desktop or non-widgets contexts if applicable.
We also had few other exciting discussions on the major plans like KIO, KPARTS and XMLGUI. This sprint was very helpful for the progress of Qt6 and KF6 branching with approximately 200 tasks on the KF6 work board. We expect that KF6 sprint’s major discussions will make KF6’s journey exciting for developers.
Supported Activities ‒ Trade Shows and Community Events
By Paul Brown
Despite the rain and the cold, there is always a place that is warm and welcoming in Brussels in February: the KDE booth at FOSDEM 2019.
On the 2nd to 3rd February FOSDEM was hosted at ULB Campus Solbosch in Brussels, Belgium. FOSDEM is one of the world's largest Free Software conferences and our booth was jam-packed with interesting stuff. The first thing visitors saw as they arrived was the Krita demo. Wolthera van Hövell, a talented artist that regularly contributes to Krita, painted live at the booth, demonstrating all the new features on a large screen for everybody to enjoy. Then on Sunday, Camille Moulin demonstrated how to edit video using Kdenlive.
We also had a wide variety of hardware devices you were able to play with. We showed off how Plasma works on everything: from high-end laptops like the KDE Slimbook to underpowered and very affordable notebooks, such as the Pinebook. A variety of SBCs (single-board computers) were also on display, ranging from Raspberry Pis to Pine64s. Of course, we showed the progress we were making on Plasma Mobile, so the KDE booth was well-equipped with phones attendees could test on-site, as well as exotic new hardware, like a RISC-V board.
Besides demos and devices, the booth staff was made up by some of KDE's most notorious members. Aleix Pol of KAlgebra and Discover fame; Jonathan Riddell, creator of the KDE neon system; Bhushan Shah, the main developer of Plasma Mobile; Adriaan de Groot, the main developer of the Calamares operating system installer; and Boudewijn Rempt from Krita were all on hand to answer questions, field suggestions or just chat.
In the merch department, visitors were able to get their hands on our brand new Katie and Konqi stickers, specially designed to celebrate Plasma Mobile, along with a variety of other kute designs. They were also able to purchase KDE gear, such as T-shirts, sweaters and hoodies. This was a great opportunity to not only spruce up wardrobes but also to contribute to KDE with a donation to our community -- a truly a win-win situation!
By Paul Brown
One of the many ambitious things KDE set out to do in 2019 was to work on transitioning to GitLab. The frameworks that have helped KDE contributors manage their work for years have become a bit creaky. The job sysadmins and developers carried out to create and maintain the set up is beyond reproach of course, but 25 years of tweaks and adjustments are going to lead to some level of cruft that can become an issue.
The infrastructures we have used up until now also use old technologies which a lot of the younger developers approaching KDE today are unfamiliar with. The first rule of the Usability Club is "don't push hurdles in the users' way". Unfamiliar custom frameworks are hurdles to new contributors and making development for KDE more accessible to a new generation was key when the Community decided to adopt GitLab. GitLab offers interfaces and workflows that are familiar to most developers from its own and other popular online services.
There is also the fact that GitLab comes with the technical benefits of providing a version control system with continuous integration and deployment, issue tracking and workboards, something that any project leader will appreciate.
However, a legacy system of decades that serves a community of thousands of active developers is going to take some work moving away from. That it only took 9 months to move past phase 1 should be considered a feat.
GitLab, inc. appreciated that and, although we were only halfway through phase 1 at the time, in September they invited us to their first Commit event and then invited us again in October to the second edition so we could share our insight and help other communities and enterprises by explaining how the move was going and warn of the stumbling blocks they would encounter along the way.
GitLab Commit Brooklyn
GitLab Commit Brooklyn was held on the 17th of September in the trendy borough of Brooklyn. We were invited to talk on a panel called "How Ginormous Orgs Leverage GitLab (hint they are not companies)", because, yes, that's what KDE is: with over 2,600 developer accounts, and 5,000 commits per month, we overshadow in volume of development giants like Delta Airlines, Goldman Sachs and T-Mobile, all of which were also attending the meeting.
On the panel, apart from myself, was George Tsiolis, representing the community of independent GitLab developers; Molly de Blanc, Strategic Initiatives Manager at the GNOME Foundation; and Ray Paik, Community Manager at GitLab and the moderator of the panel.
During the talk, I found myself saying "what Molly said" a lot, since the reasons to adopt GitLab and the experience GNOME had lived through were essentially the same to what KDE itself was going through at the time. She mentioned how the old framework had become somewhat unwieldy, how GitLab offered an integrated interface with many of the services contributors required, and how a customized platform, although tailor-made to suit many developers needs, was a barrier to many newcomers, something that GitLab was not. Tick, tick, tick.
I am not sure if this ignorance was a US thing or a that-particular-crowd thing. While it is true that KDE seems to be more popular in Europe (and Brasil and India) than in the US, the number of MacBooks on display made me think that attendees were not especially familiar with GNOME or, indeed, any graphical environment that was not macOS either; that Free Software, in general, was only something most attendees used for hosting and running cloud applications and services and not something they really interacted with directly.
So talking from Shimel's podium, supposing it reaches the same crowd, may have at least made some of his audience aware of KDE's existence and that such things as Free Software applications for end users do really exist.
GitLab Commit London
I did not encounter the same lack of awareness in London. But, then again, comparing one crowd with another would be like comparing apples and oranges. At GitLab Commit London (October 9, 2019), the crowd was made up by mostly Europeans, but they also came from smaller outfits. While a large percentage of the audience in Brooklyn were attending from massive corporate multinationals, at the event set in the heart of The City, London's financial district, there were more attendees from SMEs.
This makes sense: most of the European IT industry is made up of companies with less than 250 employees. Are developers that work for smaller enterprises more knowledgeable of what FLOSS is and the names of the communities that power it? It would seem so, even if you just judged the crowd by the stickers on their laptops. Without reaching the extremes of nerdiness you would find at, for example, FOSDEM, it was a refreshing change from the silver sea of brushed metal MacBooks I had witnessed at Brooklyn. This also translated into the talks, that were in general quite less buzzword-heavy.
Either way, again I was on a panel, we all talked about how big organisations like KDE, GNOME and, in this edition, Freedesktop adopted GitLab; and again the genial Ray Paik hosted. This time, apart from Ray, I was accompanied by Carlos Soriano, GNOME Board director who works on newcomers experience; and Daniel Stone, Project Administrator at Freedesktop.
Carlos, Daniel and I had plenty of time to talk beforehand and exchange ideas on how we could work together more. Carlos and I also recorded a video together for GitLab’s marketing team, promoting Linux desktop environments to the GitLab community.
In view of how little people outside our bubble, even technical people, know about Linux-native end-user software, maybe we should be doing more of that.
Qt World Summit
By Kai Uwe
On the 5th and 6th of November, Nicolas Fella, Roman Gilg, and I represented KDE at the Qt World Summit 2019 in Berlin.
This year we set up a lounge area upstairs for people to chat, see our hardware and software offerings, as well as charge their phones between talks. At the center of our booth, we had a large KDE-branded table with various bits of swag and a KDE Slimbook on display which we used as our main device for demoing our extensive KDE Applications and Frameworks offerings.
We also had a dedicated table for our mobile effort where we showcased our KDE apps for Android and of course Plasma Mobile. The latter of which we had running on a good ole Nexus 5X and more importantly the Librem 5 Dev Kit by Purism. Unfortunately, the Pinephone developer kits we had been hoping to show as well hadn’t been shipped in time for the event.
Another unusual device we presented was the One Mix 2S – a 7″ convertible laptop featuring an Intel Atom processor rather than something ARM-based. The One Mix also has a selection of ports you expect from a full-sized laptop, such as USB-C/A and HDMI, making it an interesting choice for use in a docking station setup. It ran an experimental version of Plasma Wayland with automatic screen rotation and tablet mode toggle which increases the hit area for controls and the spacing between them. Finally, our booth also featured a Pinebook which impressively showed how well our software performs on slow but cheap hardware.
Next morning we had a panel discussion at 8 am on contributing to Qt. Surprisingly, despite the party the evening before, we ran out of chairs in that room. Lars Knoll did a live demonstration on how to actually submit a Qt patch using Gerrit and then we all discussed the pros and cons of contributing upstream. Sadly, there was no recording.
Since the three of us were pretty busy running this large stand, there wasn’t much free time to sit in any of the presentations. I did get a chance on the second day of the event to attend Ulf Hermann’s talk on the future of QML which is a very important topic for the advancement of Plasma. Overall their changes planned for QML 3 in Qt 6 sound reasonable, but given the sheer number of to-do items mentioned during the presentation, I thought it was somewhat early to assess the impact on our software stack.
By Piyush Aggarwal
PyCon India was held in Chennai from 12th to 15th October 2019. It is the annual conference of the Python community in India, which brings together developers, experts, academics, scientists and enthusiasts from all over India and abroad. It is one of the largest Python conferences in Asia.
This year conference was attended by more than 1000 users and developers of the Python programming language from all over India. Many international names famous for their contributions in Python programming world also attended the conference.
KDE participated in the conference. The goal was to increase awareness regarding KDE as an organization in India and invite more contributors with an aim to:
Make KDE a household name, by trying to make KDE, Plasma and some of KDE’s more popular applications recognizable.
Help KDE become recognized as a provider of quality software, improve consumers’ and businesses’ awareness, and positive perception of KDE’s products.
Promote KDE as a FOSS organization and to invite young contributors with a will to learn.
To achieve our aim, Rituka and I put up a poster for KDE Community. We aimed to create awareness about KDE in India. On the second day, we grabbed a poster stand and set up our little poster presentation stall.
As 1000+ attendees are a lot to cover within a 30-minute window, I planted KDE stickers at every booth – registration, T-shirt distribution, help desk, and even planted the Konqi standee right in the middle of the hall to promote KDE as much as possible. People liked the mascot Konqi and many posted pictures with Konqi online.
OpenExpo Europe 2019
OpenExpo is an event aimed at businesses and the public sector. Top topics usually revolve around cloud computing, big and open data, IoT, and, of late, blockchain technologies. 2019 was its 6th edition and was held on the 20th of June in “La Nave” on the outskirts of Madrid.
Organizers told us that 2800 visitors attended the 2019 event, there were about 120 speakers and 70 exhibitors with booths. From what we can garner, most visitors were representatives of public institutions, consulting companies, and software-producing companies, with a prevalence of firms working in the area of cloud computing.
KDE’s booth was right next to the entrance, on the right as you went in, in an area called the “Innovation & Community Village”. We were one of five exhibitors in the area. On our right was the FSFE. I happened to know one of the people staffing, which was nice.
Behind us was a father-and-son outfit showing off 3D printers. Apart from owning a shop, they apparently run courses in their neighborhood and that is what earned them a spot in the “Community Village”.
Then there were some people with a DIY go-kart/scooter/tricycle thingy. They opened a big colorful box full of interesting looking pieces, didn’t do anything with them, and then left.
There were six tables and it was first come, first served, and I was first, so I picked a front-facing table. Each table was 180 long by 80 cms, which is big compared to what we often get in other events and gave us plenty of space to set up our things. There was a space for our banner in a corner, as you can see in the photograph. We added a screen on a stand behind us to run videos on Plasma Mobile, Plasma, Kirigami and Applications on a loop. You can see the screen in the background of the photo.
On the table we laid out the following items:
a Nexus 5x running Plasma Mobile (thanks Aleix Pol)
a Raspberry Pi with touchscreen and Plamo running upon Yocto, courtesy of Volker Krause
a Pinebook 14’’ running Plasma (again courtesy of Aleix Pol)
a KDE Slimbook 2, on loan from Slimbook themselves who were also at the event.
Each device was clearly labelled as to what it was with a printed piece of paper which included a URL and QR which the visitors could scan to find out more.
We also had 100 stickers, 50 Katie stickers using a phone and with the Plasma Mobile URL, and 50 Konqi stickers with KDE.org URL. The Konqi stickers ran out first.
The aim of the spread was three-fold: first, we wanted to show people “shopping” for software how Plasma and KDE applications were “end-user ready”. Secondly, we intended to show how Plasma was light and could work on a wide variety of devices, including on devices used in embedded systems, like the Raspberry PI; on low-powered, ARM-based netbooks (the Pinebook); and as a potential mobile environment (the Nexus 5X). Finally, we wanted to demonstrate how applications, thanks to Kirigami, could adapt to different hardware and screen configurations
The overarching aim was to see if we could convince administrators of large deployments (for example, schools) that Plasma and KDE Applications would be a good choice for their users. We were also looking to convince companies that KDE has good solutions for the development of graphical applications, and seeking contributors and sponsors for KDE.
What I did
To attract and engage visitors I used several tactics I had used in the past and that seems to work well. I stood outside the booth and approached visitors that showed interest in our spread.
I found out where the visitors were coming from and adapted my spiel to that. I demoed Plasma on laptops for administrators of large deployments, showing off features and with demonstrations of how fast and snappy, it was, even on low-spec hardware.
I showed the proof of concepts of Plasma Mobile on Yocto (on the Raspberry Pi) and on postmarketOS (on the Nexus 5) to managers of companies that developed for several platforms. They could check for themselves how Kirigami could let them create cross-platform applications, including for Android (I had my phone on hand for this) and how it would allow them to create applications that would adapt to different sizes of screens.
At the end of each demonstration, I encouraged visitors to scan the QRs so they could leave with more information they could research for themselves.
The thing that most attracted visitors’ attention was the Pinebook when they read it cost 99 USD. That sparked interest in the underlying hardware and what software would run on an underpowered device. A lot of people also picked up the SBC for some reason. The Pine64 I had brought along was only there to show what kind of hardware was in the Pinebook, but it seems that naked electronics are inherently fascinating for visitors to these kinds of events. I suppose it is the inner-geek we all have inside.
After the Pinebook, the most popular devices where the phone and the Raspberry Pi with its touchscreen. A lot of visitors asked if the phone was already for sale, thinking that a pure GNU + Linux phone was already a thing and they had somehow missed it. Even though I had to burst their bubble, they were satisfied that at least some progress was going on, both in the realms of mobile phones and vehicle infotainment systems.
The scanning application provided by the organizers of the event was very useful and I scanned 54 people in total, but, of course, I talked to more than that. By my calculations, I talked one-to-one to about 50% more than what I scanned, which puts the number of people I interacted with in depth between 75 and 80. There were also four or five times when, while delivering my spiel, a small crowd congregated of 5 to 10 people, so a conservative number of the total people I talked to would be around 100.
Many of them were system administrators specialized in the area of cloud computing, one of the main topics of the event. Others managed large networks of end-user machines for schools, libraries and other public institutions. There were also plenty of CEOs, CTOs and other C*Os, both attending for the talks and “shopping” for new open source development software. These are the people that found things like Kirigami interesting.
There were Linux desktop end users in the mix too. Many of them did not use Plasma (a few did) and they were under the impression that Plasma was heavy. The Pinebook disproved that, but this, that KDE software is bloated, is something, we have seen before and we clearly must continue to work towards dispelling this notion.
I tried to make sure that visitors to the booth walked away with something to remember us by: Stickers with KDE.org URLs on them until they run out; my card, in case they needed more information; or at the very least the links to more information in the browsers on their phones, as I encouraged people to scan the QRs associated with each item on the table.
One of the things I set out to do was to generate some publicity for KDE in the mainstream media since it was announced that journalists from some big Spanish newspapers, radios and TVs would be there. Unfortunately, I did not see them.
However, I was not disappointed with the day, since we achieved other things on the list. We made contacts within several Madrilian institutions, like the leaders of the MAX Linux distribution, deployed in many Madrilian schools. They were currently using MATE for their desktop, but after reviewing our spread, they said they would give Plasma a try.
Continuing with public institutions, we also talked to the people who managed the libraries in Alcorcón, sysadmins from the Congreso de los Diputados and the Ministerio de Economía and Hacienda, and developers from Correos, the Spanish post office. There were representatives from several universities, both students and professors. All visitors were impressed by Plasma’s feature set, performance and flexibility and were excited about trying it out at work and home.
The students from the LibreLabUCM of the Universidad Complutense de Madrid later wrote to me and asked how they could contribute. They were especially interested in contributing to Plasma Mobile.
We had a mixed bag when it came to visitors from private enterprises. There were both coders and managers among the people who came to the booth, as well as freelance consultants. Many of the managers, that included CEOs, CTOs and product managers, and all the consultants seemed to be “shopping” for FLOSS to boost productivity (the former) or to add to their portfolio (the latter). Although they were mainly after infrastructure-like software, like cloud management systems, they would often become interested when I demoed Kirigami-based software and how it was possible to create good-looking, graphical applications for most platforms and that would adapt to different screen sizes and shapes.
From the bigger, more recognizable company’s, we had visitors from IBM, Oracle, BT, Atos, Allfunds Bank and Wacom. From smaller, Spanish joints we met people from VASS, Zylk, Zendata and Certelia.
The first lesson I learnt was not to try and do this alone again. Over twelve hours standing and greeting visitors is not good for an unfit, overweight 53-year-old. Being alone also meant I had to rely on the kindness of the people in the FSFE booth when I had to go foraging for water and food or for when I needed a bathroom break – thanks, Pablo and Erik!
But, seriously, next time we should show some “naked” electronics. This fascinates attendees for some reason. We should maybe acquire the RISC V board we showed in FOSDEM. These kinds of things attract visitors like magnets.
I noticed many visitors looking over the booth from afar, trying to figure out who we were before approaching. As the roll up banner was to one side, it was not always obvious that it was associated with us. A solution would be to always make sure we have a tablecloth or prominent flag with our logo, name and URL handy. We had both at the booth at FOSDEM and I’m pretty sure that helped.
The stickers run out rather quickly. By two o’clock there were none left. It wasn’t a big issue, because the event wasn’t the type that attracted merch-scavengers and most people were more interested in what we had on display than in stockpiling goodies. But it would still have been nice to have had more. Related: I also learnt that vinyl die-cut stickers are expensive: 60 euros for 100 stickers.
Continuing in the area of printed merch, maybe make attractive flyers with colored pictures, snappy explanatory bites, shortened URLs and no marketing-speak relevant to what is on show at the booth: not everybody has QR scanning software on their phones and a printed guide explaining what we were showing at the booth would’ve helped and served as a reminder if attendees could’ve taken them with them.
Was it worth it?
Yes. We made a lot of contacts in companies and institutions it would have been difficult to get in touch with any other way. We also heard about the problems they have and we can use that to see what solutions we can offer. Both things will ultimately help grow the number of companies that use KDE technologies (like Kirigami) in their products, as well as help us convince institutions to deploy our software (like Plasma and Applications) for their users.
It's All about the Apps
By Jonathan Riddell
KDE is All About the Apps is a goal to redefine how KDE and our users see our apps. We want to take the apps to the users, who should be able to get the latest and greatest versions on whatever device they have. That means working with app stores to get our apps in to them; it means embracing the other platforms that our Qt and KDE Frameworks tech allow us to embrace; and it means promoting all those things to the world.
We now have monthly app update stories which show what has been released in the last month. Importantly these also say how you can get the apps, pointing at the app stores where you can find our software. We want to be proud to have our stuff available through Microsoft's store. We also want to be prominent on the competition to Microsoft's Store, so you'll also find KDE apps on Chocolatey for Windows. The same goes for Android where we are on the popular Google Play store and the more Open Source friendly F-Droid. As Linux users start to move to container formats we want to be there too, so we are on the Flatpak Hub Flathub, the Snap store Snapcraft and Appimagehub too.
We welcome more people helping out and there's plenty of low hanging fruit you can help us with by getting our hundreds of great games, educational apps and tools into the new stores. So visit us and say "hi" on our Phab board or drop by our All About the Apps Matrix channel.
By David Edmundson, Aleix Pol and Méven Car
Our goal is to deliver the best Plasma experience and, while X11 has served us for a long time, we realized a few years ago that adopting Wayland was the way to go. This is why we set out during the 2019 call for Goals to step forward and suggest polishing our Wayland experience.
For KDE software and KDE Plasma, there has been a long lasting effort to implement support for this architecture spread throughout our UI stack and upstream projects. Plasma mobile has its roots firmly planted in the Wayland architecture.
We have been implementing missing pieces and tracking down bugs affecting our software across the stack. We're getting more involved with upstream Wayland, as well as Qt. Our intention is to get involved within the Wayland community to push the state of the art.
Since the goal was announced a plethora of bugs have been fixed and we are making steady progress in the right direction. We're putting in that extra effort on polishing the details. We aim to make sure that every part of the KDE and Plasma experiences shine through Wayland, making it possible to complement the rest of our existing Goals, such as improved privacy and making our applications run at their very best.
Two sprints were held during 2019 that tied in with the Wayland goal. A Plasma sprint was held in Valencia, covering all Plasma topics, including how Wayland ties into our desktop and mobile offerings and what we need.
We also held a more focused kwin-specific sprint at the SuSE offices in Nuremberg. During this, we worked through our existing pain points and laid out what we wanted to achieve for the next year.
While we are all excited and working on it, there's still plenty of work to do! You can reach out to people involved in the goal in the KWin mailing list and on IRC at #kwin on Freenode. We look forward to helping people who want to participate.
By Niccolo Venerandi
Consistency is one of the three goals the KDE Community selected to work on during Akademy 2019. Consistency here means having a single solution for a particular problem rather than many different ones. This applies to application design elements, feature implementations, website structure and style, and the KDE ecosystem as a whole that, unfortunately, often suffers from redundancy.
Then, the firsts tasks came. Many were happy to hear about consistency in GTK applications, which gained a shadow and now follow Plasma style regarding fonts, colors and cursors themes. Scrollbars have been made consistent throughout Kirigami and QtWidgets, and they are now thicker and always shown. Both things have helped to improve their usability. Many websites were also brought to the new site style. These sites include Calligra, JuK, KMyMoney and many others.
Many tasks were created to discuss the general KDE design direction. These tasks are not easy to tackle, and include sidebar design, tool areas, top toolbars and so on. Then, there are small visual tasks: plasmoid tooltips inconsistent icons were removed, system tray margins were unified and now uses the correct highlight effect. Generally speaking, there are all kinds of work going on, ranging from long term discussion to short term fixes.
By Ben Cooksley
The 2019 year was another busy year for the Sysadmin team, with the GitLab migration starting to get underway.
This included initial discussions with the GitLab Team, evaluating features we would likely need, and deploying a test instance to allow for KDE developers to begin evaluating GitLab. As part of this, the feedback was collected from the KDE Community and ways to address issues were developed and discussed where needed with the GitLab team. Following a final discussion with the overall KDE Community, it was decided to migrate to GitLab, a process which started towards the end of the 2019 year.
Changes were also made under the hood to various parts of KDE Infrastructure, with DNSSEC being rolled out for the vast majority of domains we operate, including KDE.org. This helps ensure that end user systems are only contacting our systems when they ask to visit a KDE.org website by preventing DNS results from being altered without our knowledge.
Changes were also made to our Continuous Integration & Delivery systems, increasing their capacity to better handle peak loads and minimize the amount of time builds spend waiting at times of high load. Improvements were also made to our Android and Flatpak build support, enabling us to publish builds to an F-Droid compatible repository more quickly and scale up builds of both across multiple builders in the future more easily.
In addition to all of this, we also undertook a number of maintenance updates during the year to various services and upgraded others to keep everything in working order.
Created/Reinstated 90 Developer accounts
Created 7 kdemail.net aliases
Disabled 1 kdemail.net aliases
Following some significant one-off donations the previous year, spending was considerably increased throughout 2019 to make use of the new funds. The KDE e.V. hired a new contractor as a document specialist and we were able to keep budget for Akademy and sprints at the same high levels as the previous year.
Our income for 2019 remained stable, with income from our recurring sources continuing to show a slight upwards trend.
This led to an overall net loss for the year as planned, however not as much as we initially budgeted for. The accounts remain extremely healthy allowing us to continue this pattern of high expenditure and operating at a net loss for several years.
Plans for 2020 were to continue this pattern expanding our expenses making more resources available for the community in line with the KDE goals initiatives with more contractors. Covid-19 has had an impact on the upcoming year compared with the initial budget. With travel and event expenses significantly reduced, we can afford to expand more spending elsewhere.
GSOC and Code In:
Sprints and meetings (sans Akademy):
Taxes and Insurance:
Financial Support: If you or your company are interested in financially supporting the KDE Community on an ongoing basis, please visit the Supporting Members page on the KDE e.V. website.
By the Promo team
As one would expect from a large and very active community, 2019 was full of many more highlights and milestones for KDE. To give a more rounded view, here are some of the things that most stuck out:
Plasma continued to improve leaps and bounds, gaining praise from blogs, tech news outlets and users. Indeed, the number of mentions of KDE and its desktop in specialized publications jumped from 119 mentions in 2018 to 306 mentions in 2019, an increase of 157%.
Another area where we can see the increase of the popularity of Plasma is in its adoption rate. Although it is hard to calculate how many people are actually using Plasma, all indicators we have explored show that, not only are more users opting to run Plasma on their favorite distros, but more distros are migrating to Plasma, which, in turn, leads to more adoptions.
Another contributing factor is that more and more public institutions are seeing the value of Plasma and incorporating it into their IT frameworks as well. NASA and CERN are two of the more famous organizations that employ Plasma on a daily basis, but there are hundreds of less well-known public and private bodies that use Plasma too. The ALBA Synchrotron center in Barcelona, for example, uses Plasma extensively to prepare experiments and visualize their results. The Valencian Department of Education in Spain decided in July to migrate all its school computer labs to Plasma. This means that tens of thousands of students’ first contact with Linux will be through the Plasma desktop and KDE’s tools.
Talking of which, KDE’s applications also drew much more attention from the general public during 2019, including that of non-Linux users. To help make more apps reach more people, KDE projects started using new ways of distributing their software, such as packaging the software as Snaps, Flatpaks and AppImages; and placing applications in third party stores, including F-Droid, Google Play, Steam and the Microsoft Store.
This has led to the happy side-effect of projects adding new ways of achieving funding. Krita, for example, is able to supplement its donations from users with the small price users pay when downloading the painting program from Steam or the Microsoft store. This contributes to allowing the Krita Foundation to maintain full time developers working on the code.
Finally, as each application project has different needs and resources, project maintainers decided to change the quarterly releases to monthly updates. This relieves stress off of developers, as they can skip a month if they are not ready to publish a new version of their software at the time of the release. Without hard deadlines, developers are under no obligation to push out software they are not entirely happy with, being able to concentrate on providing high quality tools that allow you to take control over your digital life and enjoy your freedom and privacy.
Because, when all is said and done, that is ultimately what KDE is all about.
Thoughts from Partners
Here at Slimbook, we always thought that the GNU/Linux community is what makes it great. It's always the community what shares the knowledge, improves a program or contributes with their ideas. KDE is to us the main definition of GNU/Linux, because of their members, their values and their amazing work.
Alejandro López, CEO at Slimbook
enioka Haute Couture is a company driven by its values and its manifesto, in the same vein as KDE, which we have been supporting for one year. We are grateful for the existence of all the communities creating Free Software. They are a real enabler in our mission to give back control of their development to our customers. We are really happy to express our gratitude by supporting a community like KDE"
Marc-Antoine Gouillart, CTO at enioka Haute Couture
KDE e.V. is happy to welcome the following new members:
The KDE Advisory Board is a group of representatives of KDE e.V.’s patrons and other select organizations that are close to KDE’s mission and community. It currently has 13 members, and there is a KDE e.V. working group with community members acting as direct contacts for our partners.
The Advisory Board members held two calls in 2019, one in March and one in July, with the goal always being to inform the members of the board, receive feedback and discuss topics of common interest.
One of the main topics of discussions that took place in the calls revolved around KDE’s active goals and the second round of goal proposals. In addition, the members were briefed on KDE’s Akademy 2019 status, our flagship community event, as well on the Linux App Summit 2019, co-organized by KDE and GNOME. It is worth noting that during Akademy’s 2019, the members were also invited to participate in Akademy’s sponsor’s dinner, as it was a great opportunity to catch up and bond in a more relaxed manner. The members were also informed on all the development sprints that took place since the last call, and were given a chance to raise topics of their interest.
The Advisory Board is a place and a symbol of KDE’s collaboration with other organizations and communities firmly standing behind the ideals of Free and Open Source Software.
Current members: Blue Systems, Canonical, City of Munich, Debian, enioka Haute Couture,
FOSS Nigeria, FSF, FSFE, OSI, SUSE, The Document Foundation, The Qt Company.
Current community partners: Qt Project, Lyx and Randa Meetings.
About KDE e.V.
KDE e.V. is a registered non-profit organization that represents the KDE Community in legal and financial matters. The KDE e.V.'s purpose is the promotion and distribution of free desktop software in terms of free software, and the program package "K Desktop Environment (KDE)" in particular, to promote the free exchange of knowledge and equality of opportunity in accessing software as well as education, science and research.
Report prepared by Paul Brown with the help of Carl Schwan, Aniqa Khokhar, Aleix Pol, Neophytos Kolokotronis, Ben Cooksley, Niccolo Venerandi, David Edmundson, Méven Car, Jonathan Riddell, Piyush Aggarwal, Kai Uwe, Christoph Cullmann, David Redondo, Kevin Ottens, Marco Martin, Nicolas Fella, Volker Krause, Aracele Torres, Caio Tonetti, Filipe Saraiva, Sandro Andrade, Akhil Gangadharan, Amit Sagtani, Kenny Coyle, Ivana Devcic, Valorie Zimmerman, Simon Redman, Matthijs Tijink, the Krita Team, the Plasma Team, the Privacy Team, the Plasma Mobile Team and the Promo Team at large.