Skip to content

Welcome to Planet KDE

This is a feed aggregator that collects what the contributors to the KDE community are writing on their respective blogs, in different languages

Thursday, 14 March 2024

We are happy to announce the release of Qt Creator 13 RC!

In today’s pervasively digital landscape, building software for a single platform is a 1990s approach. Modern applications, even those designed for specific embedded targets, must be adaptable enough to run seamlessly across various platforms without sacrificing efficiency or reliability.

This is often easier said than done. Here are some key points to consider when developing and testing multi-platform embedded software.

Emulation and virtual machines

When developing software, especially in the initial stages, testing and debugging often don’t happen on the final hardware but on development machines. That, and a frequent lack of target hardware means it’s a good idea to produce a build that can run within a virtual machine or container. Dedicating time and effort in developing custom hardware emulation layers and specialized build images pay off by enabling anyone in the test or development team to run a virtualized version of the final product.

Multi-board variants

Many product lines offer multiple hardware variants, with differing screen sizes and capabilities. Depending on the severity of the differences, these variants might require dedicated builds, potentially extending the time and resources devoted to your project. To avoid proliferating build configurations, consider enabling the software to auto-adapt to its hardware environment, provided it can be done reliably and without too much effort.

Mobile companion apps

Does your embedded product need to interface with a companion mobile app? These apps often handle remote configuration, reporting, and user profiles, enhancing product functionality and user experience. If so, consider using a cross-platform tool kit or framework to build your software. These allow you to share your business logic and UI components between iOS, Android, and your embedded platform. You can choose to reuse UI components in a stripped-down version of your application written specifically for mobile, or write the application once and have it adjust its behavior depending on the screen size and other hardware differences.

Strategies for multi-platform development

The key to successful multi-platform development is striking a balance between efficiency and coverage. Here are some strategies to consider.

Cross-compilation decisions

When dealing with multiple platforms, decide if it’s necessary to cross-compile for every platform with each commit. While this ensures up-to-date software for all variants, it can significantly extend the length of the build cycle. Consider reserving certain platforms for daily or less frequent builds to maintain a balance between speed and thoroughness.

Build system setup

Establish a robust build system with dedicated build computers, well-defined build scripts, and effective notification systems. Assign one person to oversee the build system and infrastructure to ensure its reliability and maintenance.

Embrace continuous integration (CI)

Transitioning from a traditional build approach to a continuous integration (CI) system is beneficial in the long run, especially when you’re managing multiple platforms. However CI demands automated builds, comprehensive unit testing, and automated test scripts. Despite this up-front investment, CI pays off by reducing bugs, enhancing release reliability, and speeding up maintenance changes.

Comprehensive testing

As much as possible, incorporate the “hard” testing bits into your automated testing/CI process – in other words, integration and user interface testing. These tests, while more complex to set up, significantly contribute to the robustness of your software. What works flawlessly in an emulated desktop environment may behave differently on the actual hardware, so ensure your testing procedures also include hardware target testing.

Building multi-platform with quality

Developing and testing software for multiple platforms requires a commitment to maintaining quality. For additional insights into ensuring your software’s versatility, reliability, and efficiency across all target platforms, read our best practices guide on Designing Your First Embedded Device: The Development Environment.

About KDAB

If you like this article and want to read similar material, consider subscribing via our RSS feed.

Subscribe to KDAB TV for similar informative short video content.

KDAB provides market leading software consulting and development services and training in Qt, C++ and 3D/OpenGL. Contact us.

The post Streamlining Multi-platform Development and Testing appeared first on KDAB.

It's 2024 already, and even already March. Like last year, we had a video call with all sponsored developers, artists and volunteers to discuss what we achieved last year, figure out the biggest issues we're facing and set the priorities for this year.

Challenges

A very serious issue is that the maintainer of the Android and ChromeOS port of Krita has become too busy to work on Krita full-time. The Android and ChromeOS versions of Krita both use the Android platform, and that platform changes often and arbitrarily. This means that Sharaf has spent almost all of his time keeping Krita running on Android (and ChromeOS), instead of, as we had planned, work on a dedicated tablet user interface for Krita on Android. And since that maintenance work now is not being done, we're having a really big problem there. Additionally, since KDE has retired the binary factory and moved binary builds to invent.kde.org's continuous integration system, we don't have automatic builds for Android anymore.

We've also lost another sponsored developer. They were sick for quite some time, but recently they blogged they had started to work a different job. Since they were especially working on maintaining the libraries Krita is dependent on and were very good at upstreaming fixes, they will also really be missed.

Finally, we got Krita into the Apple MacOS store last year. However, two years ago, Krita's maintainer, that's me, changed her legal name. Now the certificates needed to sign the package for the store have expired, and we needed to create new certificates. Those have to have the signer's current legal name, and for some reason, it's proving really hard get the store to allow that the same developer, with the same ID and code but a different legal name to upload packages. We're working on that.

What We Did Last Year

Of course, we released Krita 5.2 and two bugfix releases for Krita 5.2. We'll do at least one other bugfix release before we release Krita 5.3.

The audio system for Krita's animation feature got completely overhauled, ported away from Qt's QtMultimedia system to MLT, The storyboard feature got improved a lot, we gained JPEG-XL support just in time for Google's Chrome team to decide to drop it, because there was nobody supporting it... We also refactored the system we use to build all dependent libraries on all platforms. Well, work on MacOS is still going on, with PyQt being a problem point. Of course, there were a lot of other things going on as well.

Wolthera started rewriting the text object, and mostly finished that and now is working on the tool to actually write, modify and typeset text. This is a huge change with very impressive results!

What We Hope To Do This Year

Parts of this list is from last year, part of it is new.

One big caveat: now that the KDE project has released the first version of KDE Frameworks for Qt6, porting Krita to Qt6 is going to have to happen. This is a big project, not just because of disappearing functions, but very much because of the changes to the support for GPU rendering. On Windows, OpenGL drivers are pretty buggy, and because of that, Qt5 offered the possibility to use the Angle compatibility layer between applications that use OpenGL and the native Direct3D library for GPU rendering. That's gone, and unless we rewrite our GPU rendering system, we need to put Angle back into the stack.

All in all, it's pretty likely that porting to Qt6 will take a lot of time away from us implementing fun new features. But when that is done we can start working on a tablet-friendly user interface, provided we can still release Krita for Android.

That's not to say we don't want to implement fun new featurs!

Here's the shortlist:

  • Implement a system to create flexible text balloons and integrate that with the text object so the text flows into the balloons
  • Implement a new layer type, for comic book Frameworks
  • Provide integration with Blender. (This is less urgent, though, since there is a very useful third-party plugin for that already: [Blender Layer] (https://github.com/Yuntokon/BlenderLayer/).)
  • Replace the current docker system with something more flexible, and maintained.
  • Implement a system to provide tool presets
  • Create a new user interface for handling palettes
  • Add an animation audio waveform display
  • Add support for animation reference frame workflow.

We also discussed using the GPU for improving performance. One original idea was to use the GPU for brushes, but the artists argued that the brush performance is fine, and what's way too slow are the liquefy transform tool, transform masks and some filters. In the end, Dmitry decided to investigate

  • optimizing transform masks on the GPU

And there's the most controversial thing of all: should we add AI features to Krita? We have had several heated discussions amongst developers and artists on the mailing list and on invent.kde.org.

The artists in the meeting argued that generative AI is worthless and would at best lead to bland, repetitive templates, but that assistive AI could be useful. In order to figure out whether that's true, we started investigating one particular project: AI-assisted inking of sketches. This is useful, could replace a tedious step when doing art while still retaining the artistic individuality. Whether it will actually make it to Krita is uncertain of course, but the investigation will hopefully help us understand better the issue, the possibilities and the problems.

Note: we won't be implementing anything that uses models trained on scraped images and we will make sure that the carbon footprint of the feature doesn't exceed its usefulness.

Wednesday, 13 March 2024

A new version of Qt for MCUs is available, bringing new features to the Qt Quick Ultralite engine, additional MCU target platforms, and various improvements to our GUI framework for resource-constrained embedded systems.

Tuesday, 12 March 2024

Tuesday, 12 March 2024. Today KDE releases a bugfix update to KDE Plasma 6, versioned 6.0.2.

This release adds a week's worth of new translations and fixes from KDE's contributors. The bugfixes are typically small but important and include:

  • Fix sending window to all desktops. Commit. Fixes bug #482670
  • Folder Model: Handle invalid URL in desktop file. Commit. Fixes bug #482889
  • Fix panels being set to floating by upgrades. Commit.
View full changelog

Monday, 11 March 2024

The team is thrilled to introduce the much-anticipated release of Kdenlive 24.02, featuring a substantial upgrade to our frameworks with the adoption of Qt6 and KDE Frameworks 6. This significant under-the-hood transformation establishes a robust foundation, shaping the trajectory of Kdenlive for the next decade. The benefits of this upgrade are particularly noteworthy for Linux users, as improved Wayland support enhances the overall experience. Additionally, users on Windows, MacOS, and Linux will experience a substantial performance boost since Kdenlive now runs natively on DirectX, Metal, and Vulkan respectively, replacing the previous abstraction layer reliance on OpenGL and Angle, resulting in a more efficient and responsive application. This upgrade brings significant changes to packaging, featuring the introduction of a dedicated package for Apple Silicon, the discontinuation of PPA support and an enhanced method for installing the Whisper and Vosk speech-to-text engines.

While a significant effort has been invested in providing a stable user experience in this transition, we want to acknowledge that, like any evolving software, there might be some rough edges. Some known issues include: themes and icons not properly applied in Windows and AppImage, text not properly displayed in clips in the timeline when using Wayland and a crash in the Subtitle Manager under MacOS. Worth noting also is the temporary removal of the audio recording feature pending its migration to Qt6. We appreciate your understanding and encourage you to provide feedback in this release cycle so that we can continue refining and improving Kdenlive. In the upcoming release cycles (24.05 and 24.08), our development efforts will concentrate on stabilizing any remaining issues stemming from this upgrade. We’ll also prioritize short-term tasks outlined in our roadmap, with a specific emphasis on enhancing performance and streamlining the effects workflow.

In terms of performance enhancements, this release introduces optimized RAM usage during the import of clips into the Project Bin. Furthermore, it addresses Nvidia encoding and transcoding issues with recent ffmpeg versions.

To safeguard project integrity, measures have been implemented to prevent corruptions. Projects with non-standard and variable frame rates are not allowed to be created. When rendering a project containing variable frame rate clips, users will receive a warning with the option to transcode these clips, mitigating potential audio-video synchronization issues.

Users can now enjoy the convenience of an automatic update check without an active network connection. Glaxnimate animations now default to the rawr format, replacing Lottie. Furthermore, we’ve introduced an FFv1 render preset to replace the previously non-functional Ut Video. And multiple project archiving issues have been fixed.

Beyond performance and stability we’ve managed to sneak in several nifty quality-of-life and usability improvements, the highlights include:

Subtitles

This release introduces multiple subtitle support, allowing users to conveniently choose the subtitle from a drop-down list in the track header.

 

 

A subtitle manager dialog has been implemented to facilitate the import and export of subtitles.

Now, in the Import Subtitle dialog, you have the option to create a new subtitle instead of replacing the previous one.

Speech-to-Text

The Speech Editor, our text-based editing tool that enables users to add clips to the timeline from selected texts, now includes the option to create new sequences directly from the selected text.

Effects

The initial implementation of the long awaited easing interpolation modes for keyframes has landed. Expected soon are easing types (ease in, ease out and ease in and out) and a graph editor.

 

The Gaussian Blur and Average Blur filters are now keyframable.

Rendering

Added the option to set an interpolation method for scaling operations on rendering.

Quality-of-Life and Usability

Added the option to apply an effect to a group of clips by simply dragging the effect onto any clip within the group.

Conveniently move or delete selected clips within a group using the Alt + Select option.

Added a toggle button to clips with effects to easily enable/disable them directly from the timeline.

Added list of last opened clips in Clip Monitor’s clip name

Added the ability to open the location of the rendered file in the file manager directly from the render queue dialog..

The Document Checker has been completely rewritten following the implementation of sequences. Now, when you open a project, Kdenlive checks if all the clips, proxies, sequences, and effects are loaded correctly. If any errors are spotted, Kdenlive seamlessly sorts them out in the project files, preventing any possible project corruptions

Added the ability to trigger a sound notification when rendering is complete.
Full changelog
  • Fix multitrack view not exiting for some reason on tool switch (Qt6). Commit.
  • Fix qml warnings. Commit.
  • Show blue audio/video usage icons in project Bin for all clip types. Commit. See issue #1816
  • Multiple fixes for downloaded effect templates: broken link in effect info, empty name, cannot edit/delete. Commit.
  • New splash for 24.02. Commit.
  • Subtitles: add session id to tmp files to ensure 2 concurrent versions of a project don’t share the same tmp files. Commit. Fixes bug #481525
  • Fix title clip font’s weight lost between Qt5 and Qt6 projects. Commit.
  • Fix audio thumbnail not updated on replace clip in timeline. Commit. Fixes issue #1828
  • Refactor mouse position in the timeline to fix multiple small bugs. Commit. Fixes bug #480977
  • Subtitle import: disable ok button when no file is selected, only preview the 30 first lines. Commit.
  • Fix wrong clip dropped on timeline when subtitle track is visible. Commit. See bug #481325
  • Fix track name text color on Qt6. Commit.
  • Ensure we don’t mix title clips thumbnails (eg. in duplicated clips). Commit.
  • Fix scopes and titler bg on Win/Mac. Commit.
  • Fix incorrect item text. Commit.
  • Fix extract frame from video (fixes titler background, scopes, etc). Commit.
  • Make AVFilter average and gaussian blur keyframable. Commit.
  • Ensure we always load the latest xml definitions for effects. Commit.
  • Fix composition paste not correctly keeping a_track. Commit.
  • Ensure custom keyboard shortcuts are not deleted on config reset. Commit.
  • Fix crash after changing toolbar config: ensure all factory()->container actions are rebuild. Commit.
  • Try to fix white monitor on undock/fullscreen on Windows / Mac. Commit.
  • Fix sequence copy. Commit. See bug #481064
  • Fix pasting of sequence clips to another document messing clip ids. Commit.
  • Fix python package detection, install in venv. Commit. See issue #1819
  • Another pip fix. Commit.
  • Fix typos in venv pip. Commit.
  • Venv: ensure the python process are correctly started. Commit.
  • Add avfilter dblur xml description to fix param range. Commit.
  • Fix typo. Commit.
  • Correctly ensure pip is installed in venv. Commit.
  • Fix undocked widgets don’t have a title bar to allow moving / re-docking. Commit.
  • Ensure pip is installed inside our venv. Commit.
  • Fix Qt6 dragging clips with subtitle track visible. Commit. Fixes bug #480829
  • Subtitle items don’t have a grouped property – fixes resize bug. Commit. See bug #480383
  • Fix Shift + resize subtitle affecting other clips. Commit.
  • Speech to text : switch to importlib instead of deprecated pkg_resources. Commit.
  • Multi guides export: replace slash and backslash in section names to fix rendering. Commit. Fixes bug #480845
  • Fix moving grouped subtitles can corrupt timeline if doing an invalid move. Commit.
  • Fix sequence corruption on project load. Commit. Fixes bug #480776
  • Fix sort order not correctly restored, store it in project file. Commit. Fixes issue #1817
  • Ensure closed timeline sequences have a transparent background on opening. Commit. Fixes bug #480734
  • Fix Arrow down cannot move to lower track if subtitles track is active. Commit.
  • Enforce refresh on monitor fullscreen switch (fixes incorrectly placed image). Commit.
  • Fix audio lost when replacing clip in timeline with speed change. Commit. Fixes issue #1815
  • Fix duplicated filenames or multiple uses not correctly handled in archiving. Commit. Fixes bug #421567. Fixes bug #456346
  • Fix multiple archiving issues. Commit. Fixes bug #456346
  • Do not hide info message on render start. Commit.
  • Fix Nvidia transcoding. Commit. See issue #1814
  • Fix possible sequence corruption. Commit. Fixes bug #480398
  • Fix sequences folder id not correctly restored on project opening. Commit.
  • Fix duplicate sequence not creating undo entry. Commit. See bug #480398
  • Fix drag clip at beginning of timeline sometimes loses focus. Commit.
  • Fix luma files not correctly checked on document open, resulting in change to luma transitions. Commit. Fixes bug #480343
  • [CD] Run macOS Qt5 only on manual trigger. Commit.
  • Fix group move corrupting undo. Commit. Fixes bug #480348
  • Add FFv1 render preset to replace non working utvideo. Commit.
  • Fix possible crash on layout switch (with Qt in debug mode), fix mixer label overlap. Commit.
  • Hide timeline clip effect button on low zoom. Commit. Fixes issue #1802
  • Fix subtitles not covering transparent zones. Commit. Fixes bug #480350
  • Group resize: don’t allow resizing a clip to length < 1. Commit. Fixes bug #480348
  • Luma fixes: silently autofix luma paths for AppImage projects. Try harder to find matching luma in list, create thumbs in another thread so we don’t block the ui. Commit.
  • Fix crash cutting grouped overlapping subtitles. Don’t allow the cut anymore, add test. Commit. Fixes bug #480316
  • Remove unused var. Commit.
  • Effect stack: don’t show drop marker if drop doesn’t change effect order. Commit.
  • Try to fix crash dragging effect on Mac. Commit.
  • Another try to fix monitor offset on Mac. Commit.
  • Optimize some of the timeline qml code. Commit.
  • Fix DocumentChecker model directly setting items and incorrect call to columnCount() in index causing freeze in Qt6. Commit.
  • Fix clip monitor not updating when clicking in a bin column like date or description. Commit. Fixes bug #480148
  • Ensure we also check “consumer” producers on doc opening (playlist with a different fps). Commit.
  • Fix glaxnimate animation not parsed by documentchecker, resulting in empty animations without warn if file is not found. Commit.
  • Fix NVidia encoding with recent FFmpeg. Commit. See issue #1814
  • Fix clip name offset in timeline for clips with mixes. Commit.
  • Better way to disable building lumas in tests. Commit.
  • Don’t build lumas for tests. Commit.
  • Fix Mac compilation. Commit.
  • Fix data install path on Windows with Qt6. Commit.
  • Fix ridiculously slow recursive search. Commit.
  • Fix start playing at end of timeline. Commit. Fixes bug #479994
  • Try to fix mac monitor vertical offset. Commit.
  • Don’t display useless link when effect category is selected. Commit.
  • Fix save clip zone from timeline adding an extra frame. Commit. Fixes bug #480005
  • Fix clips with mix cannot be cut, add test. Commit. Fixes issue #1809. See bug #479875
  • Fix cmd line rendering. Commit.
  • Windows: fix monitor image vertical offset. Commit.
  • Fix project monitor loop clip. Commit.
  • Add test for recent sequence effect bug. Commit. See bug #479788
  • Fix tests (ensure we don’t try to discard a task twice). Commit.
  • Blacklist MLT Qt5 module when building against Qt6. Commit.
  • Fix monitor offset when zooming back to 1:1. Commit.
  • Fix sequence effects lost. Commit. Fixes bug #479788
  • Avoid white bg label in status bar on startup. Commit.
  • Fix qml warnings. Commit.
  • Fix clicking on clip fade indicator sometimes creating a 2 frames fade instead of defined duration. Commit.
  • Improved fix for center crop issue. Commit.
  • Fix center crop adjust not covering full image. Commit. Fixes bug #464974
  • Fix various Qt6 mouse click issues in monitors. Commit.
  • Disable Movit until it’s stable (should have done that a long time ago). Commit.
  • Fix Qt5 startup crash. Commit.
  • Add time to undo action text. Commit.
  • Fix cannot save list of project files. Commit. Fixes bug #479370
  • Add missing license info. Commit.
  • [Nightly Flatpak] Replace Intel Media SDK by OneVPL Runtime. Commit.
  • [Nightly Flatpak] Fix and update python deps. Commit.
  • [Nightly Flatpak] Switch to Qt6. Commit.
  • Fix editing title clip with a mix can mess up the track. Commit. Fixes bug #478686
  • Use Qt6 by default, fallback to Qt5. Commit.
  • Fix audio mixer cannot enter precise values with keyboard. Commit.
  • [CI] Require tests with Qt6 too. Commit.
  • Add FreeBSD Qt6 CI. Commit.
  • Apply i18n to percent values. Commit.
  • Show GPU in debug info. Commit.
  • Prevent, detect and possibly fix corrupted project files, fix feedback not displayed in project notes. Commit. Fixes issue #1804. See bug #472849
  • [nightly Flatpak] Add patch to fix v4l-utils. Commit.
  • Update copyright to 2024. Commit.
  • [nightly flatpak] fix v4l-utils once more. Commit.
  • [nightly Flatpak] v4l-utils uses meson now. Commit.
  • Don’t crash on first run. Commit.
  • [nightly flatpak] Try to fix v4l-utils. Commit.
  • [nightly flatpak] Cleanup. Commit.
  • Get rid of dropped QtGraphicalEffects. Commit.
  • Fix qml warnings. Commit.
  • Qt6: fix subtitle editing in timeline. Commit.
  • Fix subtitles crashing on project load (incorrectly setting in/out snap points). Commit.
  • Test project’s active timeline is not always the first sequence. Commit.
  • Ensure secondary timelines are added to the project before being loaded. Commit.
  • Ensure autosave is not triggered when project is still loading. Commit.
  • Show GPU name in Wizard. Commit.
  • Avoid converting bin icons to/from QVariant. Commit.
  • [Nightly Flatpak] Update deps. Commit.
  • Fix Qt6 audio / video only clip drag broken from clip monitor. Commit.
  • Fix rubber select incorrectly moving selected items when scrolling the view. Commit.
  • Port away from jobclasses KIO header. Commit.
  • Fix variable name shadowing. Commit.
  • When switching timeline tab without timeline selection, don’t clear effect stack if it was showing a bin clip. Commit.
  • Fix crash pressing del in empty effect stack. Commit.
  • Ensure check for HW accel is also performed if some non essential MLT module is missing. Commit.
  • Fix closed sequences losing properties, add more tests. Commit.
  • Don’t attempt to load timeline sequences more than once. Commit.
  • Fix “Sequence from selection” with single track. Commit.
  • Refactor code for paste. Commit.
  • Fix timeline groups lost after recent commit on project save. Commit.
  • Ensure we always use the correct timeline uuid on some clip operations. Commit.
  • Qt6: fix monitor image vertical offset. Commit.
  • Always keep all timeline models opened. Commit. See bug #478745
  • Add animation: remember last used folder. Commit. See bug #478688
  • Fix KNS KF6 include. Commit.
  • Add missing include. Commit.
  • Refresh effects list after downloading an effect. Commit.
  • Fix crash searching for effect (recent regression). Commit.
  • Fix audio or video only drag of subclips. Commit. Fixes bug #478660
  • Fix editing title clip duration breaks title (recent regression). Commit.
  • Glaxnimate animations: use rawr format instead of Lottie by default. Commit. Fixes bug #478685
  • Effect Stack: remove color icons, fix mouse wheel seeking while scrolling. Commit. See issue #1786
  • Fix timeline focus lost when dropping an effect on a clip. Commit.
  • Disable check for removable devices on Mac. Commit.
  • [CD] Use Qt6 templates instead of custom magic. Commit.
  • Fix type in Purpose KF version check. Commit.
  • Fix dropping lots of clips in Bin can cause freeze on abort. Commit.
  • Right click on a mix now shows a mix menu (allowing deletion). Commit. Fixes bug #442088
  • Don’t add mixes to disabled tracks. Commit. See bug #442088
  • Allow adding a mix without selection. Commit. See bug #442088
  • Fix proxied playlist clips (like stabilized clips) rendered as interlaced. Commit. Fixes bug #476716
  • [CI] Try different approach for macOS signing. Commit.
  • [CI] Signing test, explicitly source env for now. Commit.
  • Camcorder proxies: ensure we have the same count of audio streams and if not, create a new proxy with audio from original clip (Fixes Sony FX6 proxies). Commit.
  • Fix typo. Commit. Fixes issue #1800
  • [CI] Re-enable Flatpak. Commit.
  • [CI] More fixes for the signing test. Commit.
  • [CI] Fixes for the signing test. Commit.
  • [CI] Add macOS signing test. Commit.
  • [CI] Fix pipeline after recent renaming upstream. Commit.
  • Qml warning fixes. Commit.
  • Add subtitle manager to project mneu. Commit.
  • Fix groups tests. Commit.
  • Fix transparency lost on rendering nested sequences. Commit. Fixes bug #477771
  • Fix guides categories not applied on new document. Commit. Fixes bug #477617
  • Fix selecting several individual items in a group. Commit.
  • Add import/export to subtitle track manager. Commit.
  • Drag & drop of effect now applies to all items in a group. Commit. See issue #1327
  • New: select an item in a group with Alt+click. You can then perform operations on that clip only: delete, move. Commit. See issue #1327
  • Consistency: activating an effect in the effects list now consistently applies to all selected items (Bin or Timeline). Commit.
  • Cleanup assets link to documentation. Commit.
  • Check MLT’s render profiles for missing codecs. Commit. See bug #475029
  • Various fixes for python setup. Commit.
  • Fix Qt6 compilation. Commit.
  • FIx incorreclty placed ifdef. Commit.
  • Start integrating some of the new MLT keyframe types. Commit.
  • Various fixes for python venv install. Commit.
  • Fix missing argument in constructor call. Commit.
  • Fix crash on auto subtitle with subtitle track selected. Commit.
  • Fix python install stuck. Commit.
  • Improve timeline clip effect indicator. Commit. See issue #445
  • Work/multisubtitles. Commit.
  • Fix some issues in clip monitor’s last clip menu. Commit.
  • Various fixes and improved feedback for Python venv, add option to run STT on full project. Commit.
  • Text corrections. Commit.
  • Fix typos. Commit.
  • If users try to render a project containing variable framerate clips, show a warning and propose to transcode these clips. Commit.
  • Fix qml warning (incorrect number of args). Commit.
  • Fix qt6 timeline drag. Commit.
  • Flatpak: Use id instead of app-id. Commit.
  • Fix audio stem export. Commit.
  • Add link to our documentation in the effects/composition info. Commit.
  • Qt6: fix monitor background and a few qml mouse issues. Commit.
  • Rename ObjectType to KdenliveObjectType. Commit.
  • We need to use Objective C++ for MetalVideoWidget. Commit.
  • When pasting clips to another project, disable proxies. Commit. Fixes issue #1785
  • Remove unneeded lambda capture. Commit.
  • Fix monitor display on Windows/Qt6. Commit.
  • Cleanup readme and flatpak nightly manifests. Commit.
  • [Nightly Flatpak] Do not build tests. Commit.
  • Fix tests broken by last commit. Commit.
  • Add list of last opened clips in Clip Monitor’s clip name. Commit.
  • Add Craft Jobs for Qt6. Commit.
  • [CI] Switch to new template include format. Commit.
  • [CI] Add reuse-lint job. Commit.
  • Chore: REUSE linting for compliance. Commit.
  • Don’t check for cache space on every startup. Commit.
  • Don’t allow creating profile with non standard and non integer fps from a clip. Commit. See issue #476754
  • Remove unmaintained changelog file. Commit.
  • Automatically check for updates based on the app version (no network connection at this point). Commit.
  • Fix project duration for cli rendering. Commit.
  • Fix clips with missing proxy incorrectly loaded on project opening. Commit.
  • Fix compilation with KF < 5.100. Commit.
  • Add undo redo to text based edit. Commit.
  • Check and remove circular dependencies in tractors. Commit. Fixes bug #471359
  • Hide resize handle on tiny clips with mix. Commit.
  • Fix minor typos. Commit.
  • Adapt to new KFileWidget API. Commit.
  • Fix mix not always deleted when moving grouped clips on same track. Commit.
  • Fix python venv for Windows. Commit.
  • Fix timeremap. Commit.
  • Fix replace clip keeping audio index from previous clip, sometimes breaking audio. Commit. See bug #476612
  • Create sequence from selection: ensure we have enough audio tracks for AV groups. Commit.
  • Fix timeline duration incorrect after create sequence from timeline selection. Commit.
  • Add a Saving Successful event, so people can easily play a sound or show a popup on save if wanted. Commit. See issue #1767
  • Fix project duration not updating when moving the last clip of a track to another non last position. Commit. See bug #476493
  • Update file kdenlive.notifyrc. Commit.
  • Duplicate .notifyrc file to have both KF5 and KF6 versions. Commit.
  • Don’t lose subtitle styling when switching to another sequence. Commit. Fixes bug #476544
  • Port from deprecated ksmserver calls. Commit.
  • Allow aborting clip import operation. Commit.
  • Ensure no urls are added to file watcher when interruping a load operation. Commit.
  • Fix crash dropping url to Library. Commit.
  • When dropping multiple files in project bin, improve import speed by not checking if every file is on a remote drive. Commit.
  • Fix titler shadow incorrectly pasted on selection. Commit. Fixes bug #476393
  • Sequences folder now has a colored icon and is always displayed on top. Commit.
  • Fix Qt5 compilation. Commit.
  • Fix Qt5 compilation take 3. Commit.
  • Fix Qt5 compilation take 2. Commit.
  • Fix Qt5 compilation. Commit.
  • Fix some Qt6 reported warnings. Commit.
  • Fix pasted effects not adjusted to track length. Commit.
  • Python virtual env: Add config tab in the Environement Settings page, minor fixes for the dependencies checks. Commit.
  • [Qt6] We need to link to d3d on Windows. Commit.
  • Convert license headers to SPDX. Commit.
  • Use pragma once for new monitor code. Commit.
  • Fix Qt6 build on Windows. Commit.
  • Text based edit: add font zooming and option to remove all silence. Commit.
  • Move venv to standard xdg location (.local/share/kdenlive). Commit.
  • Whisper now has word timings. Commit.
  • Use python venv to install modules. Commit.
  • Fix timeline preview ignored in temporary data dialog. Commit. Fixes bug #475980
  • Improve debug output for tests. Commit.
  • Correctly prefix python scripts, show warning on failure to find python. Commit.
  • Qt6 Monitor support. Commit.
  • Speech to text: fix whisper install aborting after 30secs. Commit.
  • Don’t try to generate proxy clips for audio with clipart. Commit.
  • Clip loading: switch to Mlt::Producer probe() instead of fetching frame. Commit.
  • Multiple fixes for time remap losing keyframes. Commit.
  • [CI] Increase per test timeout. Commit.
  • Add secondary color correction xml with renamed alphasp0t effect, fix effectgroup showing incorrect names. Commit.
  • Add png with alpha render profile. Commit. See issue #1605
  • Fix Mix not correctly deleted on group track move. Commit. See issue #1726
  • Cleanup commented code. Commit.
  • Fix setting default values is never executed. Commit.
  • Cleanup param insert and placeholder replacement. Commit.
  • Move render argument creation to a function. Commit.
  • Move project init logic out of renderrequest. Commit.
  • Use projectSceneList() for both cli and gui rendering. Commit.
  • Use active timeline for rendering. Commit.
  • Adapt to KBookmarkManager API change. Commit.
  • Small cleanup. Commit.
  • Properly initialize projectItemModel and bin playlist on render request. Commit.
  • Revert “Properly initialize projectItemModel and bin playlist on render request”. Commit.
  • Fix for renamed frei0r effects. Commit.
  • Fix rendering with alpha. Commit.
  • Rotoscoping: don’t auto add a second kfr at cursor pos when creating the initial shape, don’t auto add keyframes until there are 2 keyframes created. Commit.
  • Fix description –render-async flag. Commit.
  • Fix keyframe param not correctly enabled when selecting a clip. Commit.
  • Fix smooth keyframe path sometimes incorrectly drawn on monitor. Commit.
  • Allow setting the default interpolation method for scaling operations on rendering. Commit. Fixes issue #1766
  • Don’t attempt to replace clip resource if proxy job was not completely finished. Commit. Fixes issue #1768
  • Properly initialize projectItemModel and bin playlist on render request. Commit.
  • Rename render params, don’t load project twice. Commit.
  • Remove accelerator on timeline tab rename. Commit. Fixes issue #1769
  • Print render errors for cli rendering too. Commit.
  • Minor cleanup. Commit.
  • Improve exit code on failure. Commit.
  • [cli rendering] Fix condition for subtitle. Commit.
  • Show documentchecker warning only if relevant. Commit.
  • Fix printing of documentchecker results. Commit.
  • [cli renderer] Ensure x265 params are calculated. Commit.
  • Custom clip job: allow using current clip’s frame as parameter. Commit.
  • Properly adjust timeline clips on sequence resize. Commit.
  • Remove unused debug stuff. Commit.
  • Fix project duration not correctly updated on hide / show track. Commit.
  • Custom clip jobs: handle lut file as task output. Commit.
  • Allow renaming a timeline sequence by double clicking on its tab name. Commit.
  • Fix resize clip with mix test. Commit.
  • Fix resize clip start to frame 0 of timeline not correctly working in some zoom levels,. Commit.
  • Remember Clip Monitor audio thumbnail zoom & position for each clip. Commit.
  • Asset List: ensure favorite are shown using a bold font. Commit.
  • Fix asset list using too much height. Commit.
  • Switch Effects/Compositions list to QWidget. Commit.
  • Drop unused and deprecated qmlmodule QtGraphicalEffects. Commit.
  • Fix warning. Commit.
  • Fix multiple audio streams broken by MLT’s new astream property. Commit. Fixes bug #474895
  • Custom clip jobs: ensure we never use the same output name if several tasks are started on the same job. Commit.
  • Custom clip jobs: ensure script exists and is executable. Commit.
  • Fix dialogs not correctly deleted, e.g. add track dialog, causing crash on exit. Commit.
  • Ensure clips with audio (for exemple playlists) don’t block audio when inserted on video track. Commit.
  • Ensure translations cannot mess with file extensions. Commit.
  • Fix another case blocking separate track move. Commit.
  • Fix grabbed clips cannot be moved on upper track in some cases. Commit.
  • Final blocks for enabling render test suite: add synchronous option to exit only after rendering is finished, add option for render preset (use H264 as default). Commit.
  • Implement #1730 replace audio or video of a bin clip in timeline. Commit.
  • Fix cppwarning. Commit.
  • Fix move clip part of a group on another track not always working. Commit.
  • Fix playlist count not correctly updated, allowing to delete last sequence. Commit. Fixes bug #474988
  • Fix motion-tracker Nano file name and links to the documentation. Commit.
  • Stop installing kdenliveui.rc also as separate file, next to Qt resource. Commit.
  • Library: add action to open a library file in a File manager. Commit.
  • Fix tests and possible corruption in recent mix fix. Commit.
  • Correctly highlight newly dropped files in library. Commit.
  • Fix threading issue crashing in resource widget. Commit. Fixes issue #1612
  • Fix freeze on adding mix. Commit. See issue #1751
  • Make Lift work as expected by most users. Commit. Fixes bug #447948. Fixes bug #436762
  • Fix load task discarding kdenlive settings (caused timeline clips to miss the “proxy” icon. Commit.
  • Fix multiple issues with Lift/Gamma/Gain undo. Commit. Fixes bug #472865. Fixes bug #462406
  • Fix freeze / crash on project opening. Commit.
  • COrrectly update effect stack when switching timeline tab. Commit.
  • Drop timeline guides, in favor of sequence clip markers. Commit.
  • Optimize RAM usage by not storing producers on which we did a get_frame operation. Commit.
  • Fix guide multi-export adding an extra dot to the filename. Commit.
  • Open the recursive search from the project file location. Commit.
  • Inform user about time spent on recursive search. Commit.
  • Allow open contained folder in job queue dialog. Commit.
  • Read input and output from command line. Commit.
  • Correctly process configurable render params. Commit.
  • Fix crash on subclip transcoding. Commit. Fixes issue #1753
  • Fix audio extract for multi stream clips. Commit.
  • Correctly set render params for headless rendering. Commit.
  • Ensure some basic parts are built with headless rendering. Commit.
  • Remove unneeded setting of CMake policies, implied by requiring 3.16. Commit.
  • Fix detection/fixing when several clips in the project use the same file. Commit.
  • Render widget: show warning if there is a missing clip in the project. Commit.
  • DocumentChecker: Enable recursive search for clips with proxy but missing source. Commit.
  • Fix rnnoise effect parameters and category. Commit.
  • Fix minor typo. Commit.
  • Fix zone rendering not remembered when reopening a project. Commit.
  • Add missing test file. Commit.
  • Various document checker fixes: fix display update on status change, allow sorting in dialog, hide recreate proxies if source is not available, add test for missing proxy. Commit.
  • Project Bin: don’t draw icon frame if icon size is null. Commit.
  • Fix clips with empty resource not detected by our documentchecker code. Commit.
  • Fix document checker dialog not enabling ok after removing problematic clips. Commit.
  • Document checker dialog: fix selection, allow multiple selection, limit color background and striked out text to a specific column. Commit.
  • Show fade value on drag. Commit. Fixes issue #1744
  • If copying an archived file fails, show which file failed in user message. Commit.
  • Don’t incorrectly treat disabled proxy (-) as missing. Commit. Fixes issue #1748
  • Fix minor typo. Commit.
  • Fix box_blur xml. Commit.
  • Add new “preserve alpha” option to box blur. Commit.
  • Transcoding: add option to replace clip in project (disabled for timeline sequence clips). Commit. See issue #1747
  • Add notr=”true” for text that should not be translated. Commit.
  • When an MLT playlist proxy is missing, it should be reverted to a producer, not stay in a chain. Commit.
  • Adapt to kbookmarks API change. Commit.
  • Adapt to KNotifcations API change. Commit.
  • Try to auto fix path of LUT files on project opening. Commit.
  • Automatically fix missing fonts (like before). Commit.
  • Remove unused ManageCapturesDialog. Commit.
  • [DCResolverDialog] Improve UI. Commit.
  • Fix recursive search and “use placeholder”. Commit.
  • [REUSE] Remove duplicated entry in dep5. Commit.
  • Chore(REUSE): Further linting. Commit.
  • Chore(REUSE): Add headers in data/effects/update. Commit.
  • Chore(REUSE): Add headers in src/ui. Commit.
  • Chore(REUSE): Add missing licence texts. Commit.
  • Chore(reuse): Add missing IP info. Commit.
  • Chore(REUSE): Add SPDX info to CMakelists.txt files. Commit.
  • Add missing include (fix qt6 build). Commit.
  • Don’t duplicate KF_DEP_VERSION + remove unused REQUIRED_QT_VERSION. Commit.
  • Fix configure qt6. Commit.
  • [ColorWheel] Show real color in slider instead of black and white. Commit. See issue #1405
  • Add QColorUtils::complementary. Commit.
  • Add some accessibility names for testing. Commit.
  • Add option to export guides as FFmpeg chapter file. Commit. See bug #451936
  • [Rendering] Further restructuring. Commit.
  • [DocumentResource] Fix workflow with proxies. Commit.
  • Try to fix tests. Commit.
  • [DocumentChecker] Fix and polish after refactoring. Commit.
  • [DocumentChecker] Refactor code to split logic and UI. Commit.
  • [DocumentChecker] Start to split UI and backend code. Commit.
  • Add our mastodon on apps.kde.org. Commit.
  • Fix typo not installing renderer. Commit.
  • Fix tests. Commit.
  • Delete unused var. Commit.
  • Initial (yet hacky) cli rendering. Commit.

The post Kdenlive 24.02.0 released appeared first on Kdenlive.

Sunday, 10 March 2024

If you have not been following this blog series, I made a wrapper for Firefox to be able to run different tabs (and more) in different KDE Plasma Activities.

Often a hurdle to using a piece of software is that it is not packaged for Linux distros.

Kudos to Aurélien Couderc (coucouf), who packaged already 0.4.1 for Debian and provided the patch to make it easier to package to different distros.

With 0.4.2 version of Activity-aware Firefox we applied that patch. Other then that, the functionality remains the same as in 0.4.1.

Then I also wrote an AUR package, so Arch, EndeavourOS etc. should be covered now too.

As a consequence, Repology now lists 12 distro packages for Activity-aware Firefox – that is a great start!

But while large, Debian- and Arch-based distros are just a subset of all available FOSS operating systems that KDE Plasma and Firefox run on. If someone were to put it on Open Build Service to cover also RPM-based and other distros, that would be a great boon!

Contributions welcome, as I am reaching the limit of my skills here.

hook out → server migration successful – more on that some other day

Saturday, 9 March 2024

In today’s other blog post, I mentioned how we’ve been getting a huge number of bug reports since the Mega-Release. If you’re not in software engineering, this probably seems like a bad thing. “Oh no, why so many bugs? Didn’t you test your software properly!?”

Since most people are not involved in software engineering, this perspective is common and understandable. So I’d like to shed a light on the assumptions behind it, and talk about the challenges involved in improving software quality, which is a passion of mine.

Don’t kill the messenger

See, bug reports are a “don’t kill the messenger” type of thing. Bugs are there whether they get reported or not, and getting them reported is important so you have a more accurate picture of how your software is actually being used by real people in the real world.

In our KDE world, the alternative to “lots of bug reports” isn’t “few bug reports because there are few bugs” but rather “few bug reports because the software isn’t actually being used much so no one is finding the bugs.” What matters more is the severity of the actionable bug reports.

What bug-free software looks like

That sounds so defeatist! Surely it must actually be possible to have bug-free software, right?

Yes. But to achieve it, you have to test literally every possible thing the software can do to make sure it performs correctly in the environment in which it’s doing it. If the software can do infinite things in infinite environments, then testing also becomes infinite and therefore impossible, so combinations get missed and bugs sneak through. Bug-free software must aggressively limit the scope and variety of those environments to just the ones that can be tested. What does that look like in practice?

  • Limit what the software can do in the first place. Remove as many features, options, and settings as possible without compromising the product’s necessary core functionality.
  • Limit how the user can modify and extend the software after release. No user-created themes, widgets, scripts–nothing! Every modification to what the software can do or how it looks must go through a the same QA team that QAd the software in its original state. 1st-party modifications only.
  • Limit the versions of upstream 3rd-party libraries, dependencies, and kernels that the software is allowed to use. Lock those versions and test everything the software can do on those specific versions.
  • Limit how downstream 3rd-party user-facing software (i.e. apps) can interface with the system. Lock it down in a sandbox as much as you can so any misbehavior can’t affect the rest of the system.
  • Limit the hardware that the software stack is allowed to run on. Test everything the software can do only on that hardware.

Does this sound very much like how KDE software is developed, distributed, and used? I’d say it’s more like how Apple builds products (and note that Apple products still have bugs, but I digress)! By contrast: KDE develops lots of features and options; we’re liberal with supported library, dependency, and kernel versions; and we don’t prevent you from installing our software on any random device you can get your hands on.

You can see the challenge right away! The foundation of quality is a set of restrictions that we don’t want to impose on ourselves and our users. You folks reading this probably don’t want us to impose them on you, either.

Quality from chaos

So is it just impossible to ensure quality in a permissive environment? No, but it’s harder. That’s right: we in the KDE free software world set for ourselves a fundamentally more difficult task than the big corporations with their billions of dollars of resources. Given this, I think we’ve done a pretty darn impressive job with the Mega-Release. And judging by initial impressions out there, it seems like many others agree too!

So how did we do it?

We lengthened our beta period to 3 months and relied on bug reports from people using the software in their own personal environments.

Yes you, loyal reader! We wanted to hear how our software was working on your 12-year-old Netbook. We wanted to hear how it worked when plugged into two TVs and a rotated monitor, all through a KVM switch. We wanted to hear how it coped with the most bizarre-looking 3rd-party themes. By using our flexible and non-limited software in your diverse ways on your diverse hardware, you’re testing it and finding all the bugs that we lack the resources to find ourselves.

Does this sort of QA work sound like something you don’t want to do? That’s 100% fine. But then you need for someone else to be the QA team for you. There are two options:

  • Buy a computer with KDE software pre-installed; there are a lot of them now! Then it’s the vendor’s responsibility to have done adequate QA on their own products. Is it buggy anyway? Complain to them or find a better vendor!
  • If you’re going to install it yourself, limit yourself to common hardware, default software settings, and operating systems that are relatively conservative in their update schedules. Then the QA has been provided by others who who already used your exact setup and reported all the bugs affecting it.

Become a superhero

But what if you do want to help out with making the software better for others, but you’re not a programmer? Congratulations, you’re a real-life superhero.

We’ve already talked about reporting bugs. It’s also important to do a good job with your bug reports so they’re actionable! I’ll encourage folks to read through our documentation about this. Low-quality bug reports don’t just waste our time, they waste yours as well!

But where do all those 150-200 bug reports per day that I mentioned actually go? There’s a flip side which is that someone needs to do something with every single one of them. The more bug reports we get (which, again, is good!) the more we need people to help triaging them.

Because the truth is, most bug reports don’t begin life being actionable for developers. They may be missing key information; they may be mistaking a feature for a bug; they may be describing an issue in someone else’s software; they may be about an issue that was already fixed in a version of the software that the reporter doesn’t have; they may be describing a real issue but in an unclear and confusing way; and so on.

The job of bug triagers is to make each of these bug reports actionable. Ask for missing information! Move them to the right products! Set the version and severity appropriately! Mark already reported bugs as duplicates of the existing report! Mark obvious upstream or downstream issues accordingly and direct people to the places where they can report the bugs to the responsible developers! Try to reproduce the issue yourself and mark it as confirmed if you can! And so on. It isn’t terribly glamorous work, so there aren’t very many people lining up to be volunteer bug triagers, unlike developers. But it’s very important. And so every person who helps out adds resources to what’s currently a very small team, making a massive difference in the process.

If you’ve been looking for a way to help out KDE in a way that doesn’t require programming or a consistent time commitment, this is it. Triage a few bugs here, a few bugs there. Chip in when you can. If 30 people each triaged three bugs a day (this would take under 10 minutes, on average), we’d be in an amazing position.

So get started today! I’m available to help in the #kde-bugs Matrix room.

Still don’t wanna? Donate to KDE e.V. so we can eventually hire our own professional bug triage and QA team!

With KDE’s Frameworks 6 being released recently, I’ve been working on getting Tellico to compile with it. It didn’t actually take too much work since I’ve been gradually porting away from any deprecated functions in Qt5.

There’s plenty to do to make sure everything is fully functional and has the correct appearance. But I’m hopeful to have a release soon. At the moment, the master branch compiles with either KF5/Qt5 or KF6/Qt6.

Tellico With KF6

The floodgates are fully open and developers have started landing juicy features for Plasma 6.1!

But not just that… we asked for bug reports and you folks gave us bug reports! Usually we get 30-50 per day, but now we’re up to 150-200. It’s kind of crazy.

Now, this doesn’t mean the software is actually really buggy. It means that people are using the software! Most of the bug reports actually not about KDE issues at all: graphics driver issues, bugs in themes, and bugs in 3rd-party apps. And many are duplicates of existing known issues, or really weird exotic issues only reproducible with specific combinations of off-by-default settings.

Of course some are more significant, but at this point I think we’ve got most of them fixed. There are still a couple open–such as slow login and black lock screens with certain setups–but both have open merge requests to fix them, so I expect those to be fixed pretty soon too.

New Features

You can now split embedded terminal views in Kate horizontally or vertically (Akseli Lahtinen, Kate 24.05. Link)

You can now configure whether the magnifier in Spectacle’s Rectangular Region mode is always on, always off, or only on while holding down the Shift key (Noah Davis, Spectacle 24.05. Link)

There are now “edge barrier” and “corner barrier” features when you’ve using a multi-screen setup. These barriers add virtual spacing between screens, so that it’s easier for you to click on the pixels touching shared screen edges. Why would you want to do this? For example to make auto-hide panels between screens possible, and to make it easy to click the close button of a maximized window with another screen next to it. Note that these features are Wayland-only. And yes, you can turn these features off if you don’t like them, and also adjust the size of the barrier’s virtual space (Yifan Zhu, Plasma 6.1):

You can now hide the Web Browser widget’s navigation bar, making it suitable for cases where it’s simply monitoring the same web page you never navigate away from (Shubham Arora, Plasma 6.1. Link)

Manual session saving now works on Wayland. Note that until real session restore is added, this will be hooking into the “real fake session restore” feature I blogged about a few weeks ago (David Edmundson, Plasma 6.1. Link)

UI Improvements

When you have Spectacle configured to not take a screenshot when launched, the window that appears on launch now gives you the opportunity to take a screen recording too (Noah Davis, 24.05. Link)

Search results for pages in System Settings now better prioritize exact name matches (Alexander Lohnau, Plasma 6.0.1. Link)

Using a keyboard shortcut to activate the Calculator widget on a Panel now passes focus to it correctly so you can start typing to calculate things immediately (Marco Martin, Plasma 6.0.2. Link)

When using the Kicker Application Menu launcher, you can now do calculation and unit conversion, and find the power and session actions by searching for them (me: Nate Graham, Plasma 6.1. Link)

The new “Shake cursor to find it” effect is now enabled by default (Vlad Zahorodnii, Plasma 6.1. Link)

The new Printers page in System Settings now does a better job of helping you figure out what to do next when it finds a driverless network printer that doesn’t have the right drivers installed (yes, that sounds like a contradiction, but such is life) (Mike Noe, Plasma 6.1. Link)

Panel widgets’ popups now close when you click on an empty area of the Task Manager (David Edmundson, Plasma 6.1. Link)

By default, XWayland apps are now allowed to listen for non-alphanumeric keypresses, and shortcuts using modifier keys. This lets any global shortcut features they may have work with no user intervention required, while still not allowing arbitrary listening for alphanumeric keypresses which could potentially be used maliciously (me: Nate Graham, Plasma 6.1. Link)

Bluetooth connection failures are now additionally mentioned in the widget pop-up itself, right next to the thing you clicked on to try the connection which is where your eyeballs were probably still looking (Patrik Fábián, Plasma 6.1. Link)

The width of the clipboard history popup that appears when you press Meta+V now has a width that’s capped at a lower, more sane level when you’re using an ultrawide screen (Dominique Hummel, Plasma 6.1. Link)

Bug Fixes

Gwenview no longer crashes when opening certain FITS image files (Albert Astals Cid, Gwenview 24.02.1. Link)

Minimizing a Dolphin window no longer causes all of its panels to get hidden (Nicolas Fella, Dolphin 24.02.1. Link)

Fixed a glitch with multi-line text selection in Okular (Okular 24.02.1. Link)

While dragging a file in Dolphin, if it happens to pass over other files and linger there for a bit, the other files no longer get immediately opened (Akseli Lahtinen, Dolphin 24.05. Link)

Plasma no longer crashes when you open Kickoff or Kicker while uninstalling an app that’s in the Favorites list (Marco Martin, Plasma 6.0.1. Link)

Launching/activating items with the Enter key in the Kicker Application Menu once again works (Marco Martin, Plasma 6.0.1. Link)

“Get [app name]” search results from KRunner once again work (Nicolas Fella, Plasma 6.0.1. Link)

Fixed a regression with System Tray icon support that caused some apps’ tray icons to show the wrong icon (Nicolas Fella, Plasma 6.0.1. Link)

When you drag multiple files from Dolphin onto the desktop, they no longer stack on top of one another until Plasma is restarted (Marco Martin, Plasma 6.0.1. Link)

Discover no longer crashes when you search for various fairly common terms, including “libreoffice” (Aleix Pol Gonzalez, Plasma 6.0.2. Link)

Fixed the “Move to Desktop > All Desktops” titlebar menu item on X11 (Nicolas Fella, Plasma 6.0.2. Link)

Fixed a case where Plasma could exit (not crash) with a Wayland protocol error after turning screens off and back on again (Vlad Zahorodnii, Plasma 6.0.2. Link)

Fixed a case where KWin could crash when a window was opened on a secondary screen plugged into a secondary GPU (Xaver Hugl, Plasma 6.0.2. Link)

Our previous fix for VLC and MPV not being able to go full screen turned out not to be enough, so we beefed it up, and now it should actually always work (Łukasz Patron, Plasma 6.0.2. Link 1 and link 2)

Fixed a bug that could cause Night Color to not work on systems with certain graphics hardware (Xaver Hugl, Plasma 6.0.2. Link)

The first search result in the Kicker Application Menu is no longer sometimes covered up by the search field (Marco Martin, Plasma 6.0.2. Link)

When you drag a window off the left side of the screen on X11, the cursor no longer moves unexpectedly (Yifan Zhu, Plasma 6.0.2. Link)

Setting your system language to “C” on System Settings’ Region & Language page no longer mangles the text of the previews for individual formats (Han Young, Plasma 6.0.2. Link)

Fixed a case where Discover could crash on launch when its Flatpak backend is active (David Redondo, Plasma 6.1. Link)

When you have a Panel at the top of the screen, showing its config dialog no longer overlaps the global Edit Mode Toolbar; instead, the toolbar jumps down to the bottom of the screen where there’s plenty of space for it (Niccolò Venerandi, Plasma 6.1. Link)

Downloading items in the “Get New [thing]” dialogs that only have a single file available once again works (Akseli Lahtinen, Frameworks 6.1. Link)

Various actions throughout KDE apps that open the default terminal app–such as Dolphin’s “Open Terminal Here” menu item–once again work (Nicolas Fella, Frameworks 6.1. Link)

“Horizontal bars” graphs in various System Monitor widgets now use the right colors (Arjen Hiemstra, Frameworks 6.1. Link)

Menu items in context menus for text fields in QtQuick-based apps are now translated (Evgeny Chesnokov, Frameworks 6.1. Link)

Made a bunch of places icons in the Breeze icon theme respect the accent color, just like their compatriots (Someone going by the pseudonym “leia uwu”, Frameworks 6.1. Link)

Other bug information of note:

Performance & Technical

Fixed a source of lag and frame drops on some systems with certain graphics hardware (Xaver Hugl, Plasma 6.0.1. Link)

Automation & Systematization

Wrote a tutorial for how to set up automatic publishing of your KDE app to KDE’s F-Droid repository (Ingo Klöcker, Link)

Updated the tutorial for how to write a System Settings page (KCM) to reflect modernity (Akseli Lahtinen, Link)

Added an autotest ensuring that a special feature of KConfig and desktops files works (David Faure, 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

Please help with bug triage! The Bugzilla volumes are extraordinary right now and we are overwhelmed. I’ll be doing another blog post on this tomorrow; for now, if you’re interested, read this.

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!

As a final reminder, 99.9% of KDE runs on labor that KDE e.V. didn’t pay for. If you’d like to help change that, consider donating today!