The first maintenance release of the 24.05 series is out fixing issues in the spacer tool, effects and compositions, subtitle management and project settings to name a few. We addressed recently introduced crashes and freezes, including fixing the undo/redo track insertion and multiple track insertion issues. This version also improves AppImage packaging and enables notarization for macOS.
Full changelog
Don’t try renaming sequence on double click in empty area of timeline tab bar. Commit.
Fix deletion of wrong effect wihh multiple instances of an effect and group effects enabled. Commit.
Fix single selected clip disappearing from timeline when dragging a new clip in timeline. Commit.
[cmd rendering] Ensure proper kdenlive_render path for AppImage. Commit.
Fix freeze/crash on undo/redo track insertion. Commit.
Fix crash on undo/redo multiple track insertion. Commit.
Project settings: don’t list embedded title clips as empty files in the project files tab. Commit.
Fix undo move effect up/down. On effect move, also move the active index, increase margins between effects. Commit.
Fix removing a composition from favorites. Commit.
Properly activate effect when added to a timeline clip. Commit.
Fix spacer tool can move backwards and overlap existing clips. Commit.
Fix crash deleting subtitle when the file url was selected. Commit. Fixes bug #487872.
Fix build when using openGLES. Commit. Fixes bug #483425.
In 2021 I decided to take a break from contributing to KDE,
since I felt that I’ve been losing motivation and energy to contribute for a while…
But I’ve been slowly getting back to hacking on KDE stuff for the past year, which
ended in me going to Toulouse this year to attend the annual KDE PIM Sprint, my
first in 5 years.
I’m very happy to say that we have /a lot/ going on in PIM, and even though not
everything is in the best shape and the community is quite small (there were only
four of us at the sprint), we have great plans for the future, and I’m happy to be
part of it.
Day 0
The sprint was officially supposed to start on Saturday, but everyone arrived already
on Friday, so why wait? We wrote down the topics to discuss, put them on a whiteboard
and got to it.
We’ve managed to discuss some pretty important topics - how we want to proceed with
deprecation and removal of some components, how to improve our test coverage or how
to improve indexing and much much more.
I arrived to the sprint with two big topics to discuss: milestones and testing:
Milestones
The idea is to create milestones for all our bigger efforts that we work (or want
to work) on. The milestones should be concrete goals that are achievable within a
reasonable time frame and have clear definition of done. Each milestones should then
be split to smaller tasks that can be tackled by individuals. We hope that this
will help to make KDE PIM more attractive to new contributors, who can now clearly
see what is being worked on and can find very concrete, bite-sized tasks to work
on.
As a result, we took all the ongoing tasks and turned most of them into
milestones in Gitlab. It’s still very much work in progress,
we still need to break down many milestones to smaller tasks, but the general ideas
are out there.
E2E Testing of Resources
Akonadi Resources provide “bridge” between Akonadi Server and individual services,
like IMAP servers, DAV servers, Google Calendar etc. But we have no tests to verify
that our Resources can talk to the services and vice versa. The plan is to create
a testing framework (in Python) so that we can have automated nightly tests to
verify that e.g. IMAP resource interfaces properly with common IMAP server
implementations, including major proprietary ones like Gmail or Office365. We want
to achieve decent coverage for all our resources. This is a big project, but I think
it’s a very exciting one as it includes not just programming, but also figuring out
and building some infrastructure to run e.g. Dovecot, NextCloud and others in
a Docker to test against.
Day 1
On Saturday we started quite early, all the delicious french pastry is not going to
eat itself, is it? After breakfast we continued with discussions, we dicussed tags
support, how to improve our PR. But we also managed to produce some code. I
implemented syncing of iCal categories with Akonadi tags, so the tags are becoming
more useful. I also prepared Akonadi to be cleanly handle planned deprecation and
retirement of KJots, KNotes and their acompanying resources, as well as planned
removal of the Akonadi Kolab Resource (in favor of using IMAP+DAV).
One of the tasks I want to look into is improving how we do database transactions in
the Akonadi Server. To get some data out of it, I shoved Prometheus exporter into
Akonadi, hooked it up to a local Prometheus service, thrown together a Grafana
dashboard, and here we are:
We decided to order some pizzas for dinner and stayed at the venue hacking until
nearly 11 o’clock.
Day 2
On the last day of the sprint we wrapped up on the discussions and focused on actually
implementing some of the ideas. I spent most of the time extending the Migration agent
to extract tags from all existing events and todos already stored in Akonadi and helped
to create some of the milestones on the Gitlab board. We also came up with a plan for
KDE PIM BoF on this years Akademy, where we want to present out progress on the
respective milestones and to give a chance to contributors to learn what are the biggest
hurdles they are facing when trying to contribute to KDE PIM and how we can help make
it easier for them to get involved.
Conclusion
I think it was a very productive sprint and I am really excited to be involved in PIM
again. Can’t wait to meet up with everyone again on Akademy in September.
Go check out Kevin’s and Carl’s reports to see what else
have they been up to during the sprint.
Did some of the milestones caught your eye, or do you have have any questions? Come
talk to us in our matrix channel.
Finally, many thanks to Kevin for organizing the sprint,
Étincelle Coworking for providing us with nice and spacious
venue and KDE e.V. for supporting us on travel.
We are thrilled to announce the release of Qt for MCUs 2.8 LTS, which comes with new exciting GUI building blocks, improvements to build tools workflows, extended support for Infineon TRAVEO T2G microcontrollers, and much more. Qt for MCUs 2.8 is a Long-Term Support version, offering increased stability throughout your development. As such, it is the preferred version for all new projects. Standard Support will be available for 18 months, until December 2025.
Hey welcome to the week 3 recap blog. So after some testing, using the pixel art brush preset and clicking on individual pixels on the canvas will trigger functions like kis_paintop:paintAt and kis_brushop:paintAt. KisBrushOp represents a specific pa...
Plasma 6 hits its stride with version 6.1. While Plasma 6.0 was all about
getting the migration to the underlying Qt 6 frameworks correct (and what a
massive job that was), 6.1 is where developers start implementing the
features that will take your desktop to a new level.
In this release, you will find features that go far beyond subtle changes to
themes and tweaks to animations (although there is plenty of those too), as you
delve into interacting with desktops on remote machines, become more productive
with usability and accessibility enhancements galore, and discover
customizations that will even affect the hardware of your computer.
These features and more are being built directly into Plasma's Wayland version
natively, avoiding the need for third party software and hacky extensions
required by similar solutions implemented in X.
Things will only get more interesting from here. But meanwhile enjoy what
will land on your desktop with your next update.
Note: Due to unforeseen circumstances, we have been unable to
ship the new wallpaper, "Reef", with this version of Plasma. However, there
will be a new wallpaper coming soon in the next 6.2 version.
We apologise for this delay and the inconvenience this may cause.
What's New
Access Remote Plasma Desktops
One of the more spectacular (and useful) features added in Plasma 6.1 is that
you can now start up a remote desktop directly from the System Settings app.
This means that if you are sysadmin who needs to troubleshoot users' machines,
or simply need to work on a Plasma-enabled computer that is out of reach,
setting up a connection is just a few clicks away.
Once enabled, you can connect to the remote desktop using a client such as
KRDC. You will see the remote machine's Plasma
desktop in a window and be able to interact with it from your own computer.
Customization made (more) Visual
We all love customizing our Plasma desktops, don't we? One of the quickest ways
to do this is by entering Plasma's Edit Mode (right-click anywhere on the
desktop background and select Enter Edit Mode from the menu).
In version 6.1, the visual aspect of Edit Mode has been overhauled and you
will now see a slick animation when you activate it. The entire desktop zooms
out smoothly, giving you a better overview of what is going on and allowing you
to make your changes with ease.
Persistent Apps
Plasma 6.1 on Wayland now has a feature that "remembers" what you were doing in
your last session like it did under X11. Although this is still work in
progress, If you log off and shut down your computer with a dozen open windows,
Plasma will now open them for you the next time you power up your desktop,
making it faster and easier to get back to what you were doing.
Sync your Keyboard's Colored LEDs
It wouldn't be a new Plasma release without at least one fancy aesthetic
customization features. This time, however, we give you the power to reach
beyond the screen, all the way onto your keyboard, as you can now synchronize
the LED colours of your keys to match the accent colour on your desktop.
The ultimate enhancement for the fashion-conscious user.
Please note that this feature will not work on unsupported keyboards — support for additional keyboards is on the way!
And all this too...
We have simplified the choices you see when you try to exit Plasma by reducing the
number of confusing options. For example, when you press Shutdown, Plasma will only
list Shutdown and Cancel, not every single power option.
Screen Locking gives you the option of configuring it to behave like a traditional
screensaver, as you can choose it not to ask you for a password to unlock it.
Two visual accessibility changes make it easier to use the cursor in Plasma 6.1:
Shake Cursor makes the cursor grow when you "shake" it. This helps you locate
that tiny little arrow on your large, cluttered screens when you lose it among all
those windows.
Edge Barrier is useful if you have a multi-monitor setup and want to
access things on the very edge of your monitor. The "barrier" is a sticky
area for your cursor near the edge between screens, and it makes it easier to
click on things (if that is what you want to do), rather than having the
cursor scooting across to the next display.
Two major Wayland breakthroughs will greatly improve your Plasma experience:
Explicit Sync eliminates flickering and glitches traditionally experienced by
NVidia users.
Triple Buffering support in Wayland makes animations and screen rendering smoother.
While working on keystroke events, I realized my improvements to the event.change property were still inconsistent for certain Unicode characters. This led me to delve into code units, code points, graphemes, and other cool Unicode concepts. I found this blog post to be very enlightening.
Here’s an update on my progress over the past two weeks:
MRs merged:
event.change : The change property of the event object now correctly handles Unicode, with adjustments to selStart and selEnd calculations. !MR998
cursor position and undo/redo fix : Fixed cursor position calculations to account for rejected input text and resolved merging issues with undo/redo commands in text fields. !MR1011
DocOpen Event implementation : Enabled document-level scripts to access the event object by implementing the DocOpen event. !MR1003
Executing validation events correctly : Fixed a bug where validation scripts wouldn’t run after KeystrokeCommit scripts in Okular. !MR999
Widget refresh functions for RadioButton, ListEdit and ComboEdit : Added refresh functions as slots for RadioButton, ListEdit, and ComboEdit widgets, aiding in reset functionality and script updates. !MR1012
Additional document actions in Poppler : Implemented reading additional document actions (CloseDocument, SaveDocumentStart, SaveDocumentFinish, PrintDocumentStart, PrintDocumentFinish) in the qt5 and qt6 frontends for Poppler. !MR1561 (in Poppler)
MRs currently under review:
Reset form implementation in qt6 frontend for Okular : Working on the reset form functionality in Okular, currently focusing on qt6 frontend details. !MR1564 (in Poppler)
Reset form in Okular : Using the Poppler API to reset forms within Okular. !MR1007
Fixing order of execution of events for text form fields : Addressing the incorrect execution order of certain events (e.g., calculation scripts) and ensuring keystroke commit, validation, and format scripts are evaluated correctly when setting fields via JavaScript. !MR1002
For the coming weeks, my focus will be on implementing reset forms, enhancing keystroking and formatting scripts, and possibly starting on submit forms. Let’s see how it goes.
Like last year, the KDEPIM team convened in Toulouse to hold it’s traditional spring sprint. Unlike last year this time it was late spring, almost made it into summer. This time we’ve been hosted by Étincelle Coworking in one of their spaces. It was fairly nice. Lots of space, comfortable, well situated in the center. I definitely recommend.
The Warm-up
Some of the team (namely Carl and Volker) arrived early before the official start. I’m pretty sure Carl made it early to have lunch in the infamous Cake Place™ (at last). Of course a stupid amount of cake slices was involved. And after a short stroll we got to the
meeting space we would use the rest of the time.
We started preparing the work board and finished collecting ideas as Dan arrived.
Day 1
Once again, we had two types of tasks: discussions and actual hacking. During that first day we mostly focused on the conversations but did some hacking on the side. Since the attendance was a bit low this year, we didn’t go for break out groups and did them all as a single group.
Said discussions covered mostly the following topics:
Retiring some old software or now unused resources
Trying to devise plans to remove some duplication of efforts (did you know we have several copies of the time tree parser?)
Some minor stability issues were discussed to have a plan to solve them
How to improve the usage of Akonadi on mobile which revolved mostly around some better partial syncing and some tight coupling with widgets at places
Devising a strategy to have some end to end testing of the supported resources
How to have better tag support and indexing in Akonadi (which opens the door to really cool features so stay tuned)
And finally, we spent quite some time discussing how to improve our little PR efforts and how to recruit new contributors
Of course, like last year we’re contrained by the size of the team and so need to use smartly everyone’s time. Again no grand plans, but some of the items we plan to deliver during the year could have very nice consequences. We’ll focus on a better quality of life both for users and contributors.
Day 2
We already started some of the technical tasks the previous day, but Sunday was mostly devoted to them. We had a break for a nice brunch of course but still people worked on their branches around it.
As far as technical tasks, we got the following things done already:
Some obscure and broken feature around notes in KMail has been removed
KJots notes can now be imported into MarkNotes giving an upgrade path
Akonadi tag discovery in caldav resources is a thing
The Akonadi brand should finally not appear anywhere in the applications anymore
A way to clean up the data coming from retired resources is now in place
But there’s more in the works, namely:
the completion of the infrastructure for QtQuick based config dialogs
the switch to KConfigDialogManager where is makes sense (instead of using an old PIM specific legacy system)
the rewrite of the indexing system (which should improve performance and have instant indexing of payloads)
the migration agent to apply tag discovery also to old and already existing items
the move of KMime to KDE Frameworks is getting prepared
the IMAP resource configuration system is in the works to be able to jump on the QtQuick infrastructure (it’s one of the more complex ones with lots of QtWidgets dependencies)
the KDAV test suite is being completed for better coverage
The mentioned tasks and all the ones created during the conversations have been added to our Technical Roadmap on Gitlab. The work is still on going for some of them.
What now?
The most noticeable is probably one thing we acted on immediately after our discussions. We added milestones in the PIM group. Indeed, it’s probably not always easy for people wanting to join to know which are the bigger on going goals in the KDEPIM team and what to work on to help.
This is now encoded through those milestones. It’s the early days for them so they need to be improved and more tasks added, but at least this gives an idea of what has higher priority for now.
We plan to have a BoF at Akademy 2024 to be announced later when the schedule for the BoFs actually opens. There we’ll plan to focus at discussing the experience of contributors and see how it can be improved. We’ll also present our milestones. We might sign you up on tasks there, don’t hesitate to show up, we want to hear from you.
Last but not least
If you want to know more or engage with us, please join the KDEPIM matrix channel! Let’s chat further.
Also, I’d like to thank again Étincelle Coworking and KDE e.V. to make this event possible. This wouldn’t be possible without a venue and without at least partial support in the travel expenses.
This year again I participated to the KDE PIM Sprint in Toulouse. As always it
was really great to meet other KDE contributors and to work together for one
weekend. And as you might have seen on my
Mastodon account, a lot of food was also
involved.
Day 1 (Friday Afternoon)
We started our sprint on Thursday with a lunch at the legendary cake place,
which I missed last year due to my late arrival.
Picture of some delicious cakes: a piece of cheesecake raspberry and basil, a piece of lemon tart with meringue and a piece of carrot cake)
We then went to the coworking space where we would spend the remaining of this
sprint and started working on defining tasks to work on and putting them on
real kanban board.
A kanban board with tasks to discuss and to implement
To get a good summary of the specific topics we discussed, I invite you to
consult the blog of Kevin.
That day, aside from the high level discussion, I proceeded to port away the
IMAP authentification mechanism for Outlook accounts away from the KWallet API
to use the more generic QtKeychain API. I also removed a large dependency
from libkleo (the KDE library to interact with GPG).
Day 2 (Saturday)
On the second day, we were greated by a wonderful breakfast (thanks Kevin).
Picture of croissant, brioche and chocolatine
I worked on moving EventViews (the library that renders
the calendar in KOrganizer) and IncidenceEditor (the library that provides
the event/todo editor in KOrganizer) to KOrganizer. This will allow to
reduce the number of libraries in PIM.
Do not use a complex plugin system for handling calendar invitation and instead
provide the incidence editor as a binary and call it instead.
(MR 1,
MR 2
and MR 3)
For lunch, we ended up eating at the excellent Mexican restaurant next to the
location of the previous sprint.
Mexican food
I also worked on removing the “Add note” functionality in KMail.
This feature allow to store notes to emails following RFC5257.
Unfortunatelty this RFC never left the EXPERIMENTAL state and so these notes
were only stored in Akonadi and not synchronized with any services.
I also started removing another type of notes: the KNotes app which
provided sticky notes. This application was not maintained anymore, didn’t work
so well with Wayland. If you were using KNotes, to make sure you don’t loose
your notes, I added support in Marknote to import notes from KNotes.
We ended up working quite late and ordering Pizzas. I personally got one with a lot
of cheese (but no photo this time).
Day 3 (Sunday)
The final day, we didn’t had any breakfast :( but instead a wonderful brunch.
Picture of the brunch
Aside from eating, I started writing a plugin system for the MimeTreeParser
which powers the email viewer in Merkuro and in Kleopatra. In the short term,
I want to be able to add Itinerary integration in Merkuro but in the longer
term the goal is to bring this email viewer to feature parity with the email
viewer from KMail and then replace the KMail email viewer with the one from
Merkuro. Aside from removing duplicate code, this will improve the security
since the individual email parts are isolated from each other and this will
makes it easier for the email view to follow KDE styling as this is just
normal QML instead of fake HTML components.
I also merged and rebased some WIP merge requests in Marknote in preparation of
a new release soon and reviewed merge requests from the others.
Last but not least
If you want to know more or engage with us, please join the KDE PIM and the
Merkuro matrix channels! Let’s chat
further.
Also, I’d like to thank again Étincelle Coworking
and KDE e.V. to make this event possible. This wouldn’t be
possible without a venue and without at least partial support in the travel
expenses.
Finally, if you like such meetings to happen in the future so that we can push
forward your favorite software, please consider making a
tax-deductible donation to the
KDE e.V. foundation.
Plasma 6.1 is due to be released in three days, and lots of attention went into final release readiness activities: QA, bug-fixing, performance profiling, auto-testing, stuff like that. Boring but important! And happily, reviews of the 6.1 beta are, like, really good. So we want to make sure that the final release doesn’t disappoint!
In addition, we’re hard at work on Plasma 6.2, which is now beginning to accumulate features. Major areas of focus are some of the remaining Wayland pain points, including tablet and artist workflows. You can see some progress on that already:
New Features
Added an additional option for how to map the area of your drawing tablet to the area of your screen. It can be useful to have multiple options here, since drawing tablets are as diverse as screens, and their sizes and aspect ratios are unlikely to be identical (Joshua Goins, Plasma 6.2.0. Link):
Added a test mode feature for drawing tablets so you can test your settings (Joshua Goins, Plasma 6.2.0. Link):
Ported the Weather widget to the new API offered by the NOAA weather provider, which unlocked night forecasts in addition to the existing day forecasts (Ismael Asensio, Plasma 6.2.0. Link 1 and link 2)
This is new, so please excuse the UI glitches that are visible here. They’ll be cleaned up before the final release of Plasma 6.2 in four months.
UI Improvements
You can now wake up a sleeping screen using a stylus (David Redondo, Plasma 6.1.1. Link)
KWin’s Morphing Popups effect has been deleted. While it added a measure of fanciness, unfortunately the way it worked introduced unfixable visual glitches. After multiple attempts to fix them, with a heavy heart we had to admit defeat. Removing the effect fixed six open Bugzilla tickets, one of which had 20 (!) duplicates. Stability beats fanciness. (David Edmundson, Plasma 6.2.0. Link)
Bug Fixes
Scrolling in Elisa’s lyrics view once again works with a clicky scroll wheel mouse (Jack Hill, Elisa 24.05.1. 24.05.1)
Fixed that annoying bug that affected people not using Systemd (or Plasma’s Systemd integration) which would make some but not all Plasma settings fail to get saved properly (David Edmundson, Plasma 6.1.0. Link)
Fixed a bug that could cause Plasma’s “Unify Outputs” screen action to actually disable certain screens instead of making them mirror the existing one (Xaver Hugl, Plasma 6.1.0. Link)
Quickly adapted to the NOAA weather provider’s continued API changes by implementing a quick fix to keep it working for the Weather widget in Plasma 6.1. (Ismael Asensio, Plasma 6.1.0. Link)
Fixed multiple issues causing System Monitor widgets displaying certain types of days to be visually squished when displayed on Plasma panels (Arjen Hiemstra, Plasma 6.1.0. Link)
Fixed a visual glitch that caused flickering when canceling a quick-tile action initiated by dragging a window (Xaver Hugl, Plasma 6.1.0. Link)
When you change the system volume using the slider in Plasma’s Audio widget, the maximum volume in overdrive mode is once again 150%, not 153% (Ismael Asensio, Plasma 6.1.0. Link)
Fixed an issue that could cause XWayland-using apps to freeze for a short period of time after slowly resizing their windows, especially when using screen scaling (Vlad Zahorodnii, Plasma 6.1.1. Link)
In System Monitor pie charts (both in the app and the widgets), text in the center no longer sometimes overflows when it’s very long (Arjen Hiemstra, Plasma 6.1.1. Link)
205 KDE bugs of all kinds fixed over the last week. Full list of bugs
Performance & Technical
Improved the memory efficiency of Plasma notifications that display images (Fushan Wen, Plasma 6.2. Link)
Automation & Systematization
Added a test to ensure that Plasma panel focus works as expected (Niccolò Venerandi, link)
Added a test to ensure that images in Plasma notifications appear properly (Fushan Wen, link)
Added a test for some more combinations of settings in Plasma’s Clipboard widget, since there are rather a lot of them (Fushan Wen, link)
Added a test to ensure that the camera usage monitor is working (Fushan Wen, link)
Added a test to make sure the keyboard brightness is settable as expected (Fushan Wen, link)
…And Everything Else
This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.
How You Can Help
The KDE organization has become important in the world, and your time and labor have helped to bring it there! But as we grow, it’s going to be equally important that this stream of labor be made sustainable, which primarily means paying for it. Right now the vast majority of KDE runs on labor not paid for by KDE e.V. (the nonprofit foundation behind KDE, of which I am a board member), and that’s a problem. We’ve taken steps to change this with paid technical contractors — but those steps are small due to growing but still limited financial resources. If you’d like to help change that, consider donating today!
Otherwise, visit https://community.kde.org/Get_Involved to discover other 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!
This is the first blog post of my GSOC journey. I will be sharing my works and experiences here. Stay tuned for more updates. In this blog, I’ll be sharing my experiences of the first two weeks of GSOC, what are the works I did, what are challenges I faced and how did I overcome them ( Did I really overcome them :P ).
On my first week I tried to understand the codebase of discover first, via doing small changes.