This year I gave a talk at Akademy about my vision for how to get KDE’s software onto more hardware, and therefore more easily into the hands of our users. If you’re interested, here’s a recording! my talk begins at 1:44. Hope you enjoy it.
This week we attended a virtual version of KDE’s yearly Akademy conference! If you missed it, there are tons of videos available on the KDE Community YouTube channel. The organizers did a truly amazing job, and it was really truly close to the fun and productivity of an in-person event. Many things were decided, projects un-stuck, and exciting long-term plans made, from which we will all be benefiting soon enough. But we didn’t let a grueling week-long conference stop us from making your favorite software even better!
KDE now has a totally fancy all brand new development website for teaching people how to write apps that integrate well in Plasma! (Carl Schwan, already deployed on the website!)
Okular now has a command-line option to let you open a document on a specific page (e.g.
okular /path/to/file.pdf#page=3) (Michael Weghorn, Okular 1.12)
If your hardware supports it, Plasma now allows you to configure a charge limit lower than 100% for your battery, to preserve its lifespan (Kai Uwe Broulik, Plasma 5.20)
The text view in Kate, KDevelop, and other KTextEditor-based apps now respects the active systemwide color scheme! (Christoph Cullmann, Frameworks 5.75)
Fixed a bug in Spectacle that could cause graphical corruption in screenshots for one of the screens of a multi-monitor high DPI screen setup (Méven Car, Spectacle 20.08.2)
Fixed a bug that could cause Konsole to occasionally crash when selecting or pasting text while holding down the shift key (Martin Tobias Holmdahl Sandsmark, Konsole 20.08.2)
Fixed a bug in Dolphin that could cause drag-and-drop of files into Audacious or other apps to not work (Elvis Angelaccio, Dolphin 20.08.2)
Fixed a bug in Elisa that could cause the “Empty playlist” placeholder message to still be partially visible when the playlist is hidden (Ismael Asensio, Elisa 20.08.2)
Okular’s smooth scrolling effect for the PageUp/PageDown keys no longer blocks faster scrolling by holding down the PageUp/PageDown keys or pressing them in rapid succession and now applies when searching backwards too (Kishore Gopalakrishnan, Okular 1.11.2)
Fixed a bug in Okular that could cause visual artifacts when scrolling after creating and selecting an annotation (Havid Hurka, Okular 20.12)
Discover is now faster to launch (Aleix Pol Gonzalez, Plasma 5.20)
KRunner no longer loses the first few keys when invoked by typing while the desktop is focused (Piotr Henryk Dabrowski, Plasma 5.20)
KRunner is now faster to launch using its global keyboard shortcut, making it less likely to lose the first few keys you type (David Redondo, Plasma 5.20)
Substantially improved the speed and responsiveness of large and complicated QML-based apps (Marco Martin, Frameworks 5.75)
Fixed a strange bug that could cause Kate to fail to change the font size after adjusting the systemwide color scheme (Christoph Cullmann, Frameworks 5.75)
Okular now will soon use the same date-based versioning convention used by most other KDE apps! This means the next major version will be Okular 20.12, not Okular 1.12 (Albert Astals Cid, Okular 20.12)
When using a global menu or an in-titlebar menu button, Elisa’s menu is more typical in structure and organization (Carson Black, Elisa 20.12)
The thing in Plasma that everyone calls “edit mode” is now actually referred to using that wording in the user interface (Plasma 5.20, me: Nate Graham)
It’s now possible to create folders on the desktop using the standard keyboard shortcut (F10) (Domenico Panella, Plasma 5.20)
All of Discover’s overlay sheets are now horizontally centered in the window, rather than some of them being horizontally centered only in the right view (me: Nate Graham, Plasma 5.20)
When you make an app full screen, there’s now a nice animated transition just like when a window is maximized (Kai Uwe Broulik, Plasma 5.20)
There is now a little separator line between the navigation buttons and the breadcrumbs, for views/toolbars that have both (me: Nate Graham, Frameworks 5.75)
Have a look at https://community.kde.org/Get_Involved to discover ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!
It was a fine day in Onlineland and Akademy attendees were in a festive mood, not least because they were ready to celebrate the successful migration of KDE to GitLab. Although a titanic effort, the move is already paying off, as GitLab offers an easier and more flexible platform for developers and users to get their work done and shared.
Ben Cooksley, sysadmin extraordinaire, Bhushan Shah, Plasma Mobile's main developer, Community veterans like David Edmundson and Lydia Pintscher, and many others shared their experiences of how the migration has improved the way they worked.
GitLab was also represented in the party with Nuritzi Sanchez, Senior Open Source Program Manager at GitLab, attending.
Then there were several interesting BoFs throughout the day covering, in typical KDE fashion, a very wide range of topics.
Aniqa Khokhar and Allyson Alexandrou hosted a meeting on The KDE Network, KDE's initiative to start and support grassroots organizations in different parts of the world. Cornelius Schumacher told us about Blue Angel, an official label from the German government that is awarded to eco-friendly products. As KDE has already proven to have a low carbon footprint and helps recycle old machines, Cornelius thinks the Community should work harder to become even greener and get recognized for our efforts. Carl Schwan managed a meeting on what KDE should do to improve the online documentation for developers, and David Edmundson met with community members interested in pushing the development of Qt Wayland forward.
Later in the day, we attended the first batch of student presentations. Mentoring students is an essential part of KDE's mission, as they can often receive through events such as Google Summer of Code and Season of KDE, valuable experience and get started in contributing to Free Software.
First up was Kartik Ramesh who worked on facial recognition in digiKam. If you have been following the latest releases of digiKam, KDE's professional photograph management software, you will be aware of how face recognition has changed and improved over the last few versions. Kartik worked on the front end interface to make it friendly and usable.
Deepak Kumar, on the other hand, worked on multiple datasets for GCompris, the activity-packed educational software for children. He added a tutorial screen to the Odd & Even game and also new datasets to (read "made more exercises for") the Clock game, Balance Scales, and more.
Sharaf Zaman SVG worked on mesh gradients for Krita, KDE's application for painters, thus improving Krita's support for SVG images; and Sashmita Raghav improved the timeline clip color palette for Kdenlive, KDE's video editor.
It was then time for Kevin Ottens to warn us about Lost Knowledge in KDE. He explained how it is possible to lose knowledge over time because people leave the Community, advances in technology go undocumented and then forgotten, and software gets deleted. Kevin finished his talk by speaking of ways to avoid losing this information in organizations like KDE.
Kevin's talk was followed by another batch of student presentations in which Sashwat Jolly talked about incorporating an EteSync agent into Akonadi, Kontact's backend for storage indexing and retrieval of users' personal information. EteSync is a free software service you can self-host and that provides an end-to-end encrypted, and privacy-respecting sync for contacts, calendars and tasks.
Then Shivam Balikondwar spoke of how he added file backends for the ROCS IDE and how he added KML files to the list of types of files ROCS could parse.
Meanwhile, Paritosh Sharma worked on bringing 3D to KStars by incorporating Qt3D into the stargazing app.
Finally, Anaj Bansal explained how he worked on improving KDE's web infrastructure and helped port kde.org to Hugo.
After this batch of students' presentations, it was time for another conference talk, and Nate Graham told us about his Visions of the Future. Nate, among other things, wanted us to envision a world in which KDE Plasma gets shipped by default on every PC, phone, and tablet on the planet (and possibly off it too). It is worth pointing out that Nate had already presented a talk called "Konquering the world -- A 7 step plan to KDE world domination" at Akademy 2018. We may be detecting a trend here...
After a glimpse into tomorrow, quite appropriately the next generation of KDE contributors took again to the stage and shared their work. There was a theme here too, because Saurabh Kumar told us how he implemented a storyboard editor as a docker for Krita; L.E. Segovia spoke of their work with dynamic fill layers using SeExpr, again for Krita; and Ashwin Dhakaita told us how he had managed to integrate MyPaint brushes... into Krita.
The only discordant note came from Kitae Kim, who spoke of how he improved MAVLink integration in Kirogi, KDE's ground control software for drones.
The final presentation of the day and the very last of Akademy 2020 was delivered by KDE veteran Valorie Zimmerman. Valorie told us how to avoid burnout and advised us on how to recognize the signs, gave practical advice on what steps we could take to not let it affect us and then opened the floor to questions and stories from other Community members.
An appropriately heart-warming, feel-good final talk.
Then it was the moment to celebrate individual achievements with the traditional Akademy Awards.
Presented by last year's winners, Volker Krause, Nate Graham and Marco Martin, the award to Best Application went to Bhushan Shah for creating a new platform, Plasma Mobile, on which new applications could thrive. The prize to Best Non-Application was given to Carl Schwan for his work of revamping KDE's websites; and the special Jury Award went to Luigi Toscano for his work on localization.
Finally, the jury awarded a special Organization Prize to the Akademy Team made up by Kenny Coyle, Kenny Duffus, Allyson Alexandrou and Bhavisha Dhruve, for their work organizing such a very special event.
Aleix Pol, President of KDE e.V., delivered the final words of the event and pronounced closed what has been an amazing edition of Akademy in so many different ways.
Calindori 1.2 is out! Although a couple of versions have also been tagged, that’s the first stable release of Calindori as a KDE application.
In this release, new ways to manage your schedule have been added, several rough edges have been smoothed out, and a set of mobile-desktop convergence bits have been introduced.
Now you can review the incidences -events or tasks- of each day in a day view. Incidences are presented in an hour list, ordered by their scheduled start date or end date.
A week view has also been added, offering a per-week dashboard experience. On that dashboard, a list view displays the days of each week alongside with the incidences scheduled on each week day.
Week view on mobile
In Calindori 1.2, you can set the start and due date of a task as well as schedule several alarms based on its start date. With regards to events, when a new one is created, a reminder is added by default and the start time is set to the next hour. But, Calindori wouldn’t have been a KDE application, if you couldn’t opt out or set a custom alarm time in the settings page.
Task editor on mobile
Several issues have also been addressed. For example, when an event or task starts and ends within the same hour, we ensure that it is always displayed. Moreover, the calendar import functionality has been modified in order to function properly on desktop.
Finally, the vertical date swipes mechanism has been substituted with a simpler approach that improves the overall application performance.
Apart from the convergence features that come with Kirigami, a set of Calindori specific ones have also been introduced. For example, when executing the application on desktop, the global drawer is always displayed at the left side of the screen, like a panel, while on mobile, it works like a modal drawer - the Plasma Discover way.
In addition, when running Calindori on a device with a wide screen, the incidences of each week or day are displayed in a row, making use of the space available; on mobile devices, they are displayed in a column.
Day view on mobile
Calindori is available on KDE Neon for Plasma Mobile as well as on postmartketOS. It’s also available in the flaptpak nightlies kdeapps repository for ARM and x84_64. Finally, you can also build it from source on your Linux desktop workstation. The source code and signatures can be downloaded from download.kde.org.
Although you can use Calindori as your calendar application on any Linux desktop distribution, it is true that Calindori has been created for the Plasma Mobile ecosystem. So, feel free to provide your feedback and follow the discussions about its development on the matrix channel of Plasma Mobile.
Friday continued the Akademy 2020 BoFs, meetings, group sessions and hacking. There is a wrap-up session at the end of the day so that what happened in the different rooms can be shared with everyone including those not present.
Watch Friday's wrap-up session for the last BoFs of the week in the video below
Over at Akademy 2020, I just witnessed a fantastic talk by KDE contributor mainstay Kévin Ottens on "Lost Knowledge in KDE". In the presentation, Kévin showed us a series of examples of sophisticated solutions to important problems KDE has innovated and implemented over the years - and subsequently lost knowledge of, applying them sparingly or inconsistently, or developing new solutions redundantly. He also talked about how this is a familiar problem to organizations, with a research field known as knowledge management itself looking to develop solutions and tools to combat this problem since the late 20st century.
He also highlighted how we don't use comm tools with higher knowledge retention factors - blogs, mailing lists, media with more permanent discussion records - as much anymore. So here's a suggestion in blog form! :-)
Within the wider open source as community as well as industry, the idea of writing Architecture Decision Records has recently become quite popular. ADRs are not really a new tool - surely forms of it have been around for a long time in various organizations - but giving the renaissance of the concept a name has a lead to ample discourse on its pros an cons, and plenty of resources available.
To give my take, an ADR is a concise write-up of a particular project/community decision. It should have enough detail to make the decision understandable, as well as cover its context and implications. They usually have an owner and co-authors, and are finalized via a light peer-review process. It's a bit like drafting and finalizing a PEP, another popular tool - except instead of motivating a change, it is describing a decision, to serve as a cache and make sure future discussions and changes have a frame of reference to work with. In this sense, it's a bit like KDE Manifesto, which has served us rather well.
ADR's aren't perfect - they can't and shouldn't replace other forms of documentation, such as API docs and protocol specs. They also have a problem with indexing - while being able to refer to/link to a particular ADR is extremely useful when someone is aware of the relevant ADR already, they're little information silos that are hard to dive into in flat-list format. But the big pro is that they have a low barrier of entry due to the lower effort and process overhead required compared to other forms of documentation, if implemented well. They make it more likely for documentation to be written.
KDE's design community has recently started making use of this idea, writing down some decisions that otherwise had a tendency to be re-discussed again and again: Design Lessons Learned.
I think we could co-opt the ADR idea and apply it to a lot of the examples Kévin showed, to record the needs and thinking that lead to building various solutions and frameworks we have: What problem were we trying to solve? Why was it better than we had before? How does the minimum bar look like now that we have the solution? Where should the solution be applied without fail? What alternatives were discussed and discarded before making the solution?
All we'd need to get started is a wiki space, a good ADR template, a minimal kdereview-like process, and a few good examples to seed the list ...
Since Plasma 5.18, about 7 months ago, Plasma has shipped with a telemetry system. Opt in (i.e off by default) it requires users to go to choose if (and how much) data to send to us.
Currently we have hit just shy of 100,000 updates!
We have started off requesting very little information. Versions, GPU info and some basic screen information. However the library powering this is extremely powerful and capable of so much more that we can try and build on in the future to try and identify weak areas and areas we need to invest time and effort and also to identify features or platforms that maybe are under utilised and can be dropped.
I have recently been trying to improve on how we can extract and visaulise data from the data collected and draw some conclusions. I want to present some of the aggregated metrics.
To explain our numerical versioning additons.
.80 = git master before the next version, up until the beta
.90 = after the stable branch forks for release up until the next.0 release.
The biggest surprise is that LTS is currently only used by around 5% of people with 93% of reporting users on the lastest stable (5.19)
At the current rate it does make me question whether the LTS is worth it. Maybe LTS will only gain traction when the next LTS distro gets a release which could come later?
Obviously any decision will only be made as the result of a discussion with all stakeholders, but this is definitely raising questions.
Right now about 1.5% of people run master, I had expected those users to be the most into helping with the telemetry and skew this further.
The bigger surprise is the number of people running master seems to fluctuate. Weekly users can go between 30-60. I had expected this to be constant.
It is comforting to see that betas do get more users, going up to 2.5% of our reporting userbase.
There is one person who is still activitly using Plasma 5.18 beta. Not 5.18, the beta for 5.18.. which was 8 months ago.
I have so many questions.
800x600 resolution setups are still a thing we need to support, even if they are just VMs they're still used. This is very relevant as we often get commits blindly setting a minimum size hint of a window to be bigger because it "looks nicer". I now know I do still need to ensure in review that we don't break these setups.
We also see that ultrawide monitors are surprisingly unpopular despite clearly being the best monitor setup possible.
The graph is pretty self-explanatory, Intel has the most, but the Nvidia proprietory driver comes in at ~1/4 of the total users.
It makes it an important target to support as best as we can even if it comes with its share of problems.
The reason we want to use telemetrics is to drive decisions with real data.
As a user you are more than welcome to choose to opt into the statistics or not, we understand privacy is important which is why everything is opt-in only.
However, real decisions will ultimately be based on the data we have available, if you want your usecases to be noted, please do consider submitting to the telemetry to us.
To enable telemetry please go to "System Settings" and select the "User Feedback" tab.
There are significant updates in Qt 6 that also impact the underlying way in which the development host OS and target OS are supported. The most significant changes affecting development hosts and targets include how Qt integrates to the graphics system (Blog: Technical vision for Qt 6), the C++ minimum version update from C++ 11 to C++ 17, and the transition from QMake to CMake. We have also taken the opportunity to clean up and reorganize quite a few OS-specific bits (Blog: Qt 6.0 feature freeze).
Thursday continued the Akademy 2020 BoFs, meetings, group sessions and hacking. There is a wrap-up session at the end of the day so that what happened in the different rooms can be shared with everyone including those not present.
Watch Thursday's wrap-up session in the video below