Skip to content

Thursday, 2 October 2025

Beyond Keywords: How I Built a Semantic Search Engine for Any Video Ever tried to find a specific moment in a long video? You might remember the scene vividly—a character gives a crucial speech, or there’s a beautiful, silent shot of a landscape—but you can’t remember the exact timestamp. You end up scrubbing back and forth, wasting minutes, or even hours, trying to pinpoint that one moment. Traditional video search relies on titles, descriptions, and manual tags.

Wednesday, 1 October 2025

Design Systems is a relatively new concept that aims to organize the way design happens in structured systems such as applications, websites, organizations, etc.

Historically, working with graphics for the digital age has been unorganized, lives in personal computers, is not collaborative and leads to uncoordinated design.

When the world of graphic design meets development, designers were often confused about why mockups are not followed, why colors are not the same, not the same shapes, etc. All the while, developers ask designers why they can’t provide something that more closely resembles the system they aim to change. It’s uncoordinated work entering a highly-systemized world.

Often, both sides are confused and system changes become much more difficult to achieve.

Meet UI-design applications. The first wave of these started with Sketch (for Mac). Sketch is a fast and powerful vector graphics application that introduced a number of advantages over traditional SVG editors meant for artistic work. For example:

  • Infinite canvas
  • Area bounding
  • CSS-based design
  • CSS-based organization
  • Easy exports into various sizes
  • Asset library management
  • Collaborative design

Through their efforts, a sleuth of similar applications appeared in the scene, one building upon what the previous one lacked. Until we arrived at Figma, yes, Figma.

Figma did a few things right at the start of their development. They provided stronger asset library management, easier online collaboration, web-based editor with near-native speeds (If not faster now with the use of Web Assembly and other technologies), and variable and token management.

Through these enhancements Figma became the de-facto application to use for UI-oriented graphic development.

But what do they all do?

Put simply, these applications develop color, typography, spacings, shadows, icons, etc sets of organized assets. The assets have properties borrowed from development, such as, components, variables and tokens.

Designers can set up entire color libraries in a graphical way and then apply those colors to SVG graphics. Upon export, these graphics contain enough information for developers to more easily implement the design.

All the while, designers only have to spend time at the beginning of a project to set up all the assets required for designing. Additionally, Figma and other applications have been keenly focused on building graphical ways to deal with code-oriented complexities.

For example, Figma and PenPot detect variants creation and can express their values in dropdown menus that get created on the fly by the designers. If you create a button and your variants are size oriented, you can have a dropdown in the application’s UI that shows SM, MD, LG, XL, etc. These are huge time savers. Traditionally, designers would have to do a lot of copy/paste in their designs. With integrations like these, designers simply switch the variant for another and the design updates itself.

A similar idea happens with graphical components in these applications. Users are able to create a master version of an asset, let’s say a button, set up all of their locked and open parameters, colors, typography, margins, gutters, etc. When you make copies of this component, any changes made at the component level will be updated anywhere copies were placed. For very large design documents containing a company’s brand strategy, for example, these types of changes save countless hours of tedious copy/paste work.

Tokens

In recent times, and through various changes in the app-making industry, UI design applications have created the concept of tokens. Tokens are essentially named attributes for graphical components. They are often used as correlated language between design applications and systems.

For example, for Ocean Design, the team created tokens named thus:

pd.ref.color.primary50
  • PD: Plasma Design
  • REF: Reference color (Raw color value as opposed to applied color, which is called “sys”)
  • PRIMARY50: Color role and its named color value in a line from light to dark values of the same color family.

This value can be replicated in Plasma. Through the storing of a master list of token values, Plasma can stay coordinated with graphic primary50, the system would have to do the same and just change the raw color value of that token without having to create new tokens, break coordination with the design system, or have to interpret information coming from designers.

Tokens are becoming more common use and reflect the desire of developers and designers to have even tighter integration between design and development.

Independence

Design Systems also allow for great independence between design and development. Having laid the groundwork to create coordinated design, applications like Figma and PenPot allow users to download asset libraries, reuse, and create UI. All without redefining the source library. It democratizes graphic design while keeping designers coordinated in their designs.

Developers looking to execute an application idea can much more easily create coordinate UI that supports their efforts. Developers would have much less design-oriented work to do and dedicate more into the features they want to deliver.

Ocean Design

Ocean Design aims not only to become a new UI design for Plasma but also plug in these powerful design applications into our development ecosystem and deliver UI to users faster, more coordinated, and more often.

If you’re interested in learning more about this effort, connect with our teams here:

  • Plasma Visual Design Team (General chat about all things designs for the Plasma Desktop)
  • Ocean Design Team (Focused discussion on Ocean Design)

Tuesday, 30 September 2025

Haruna version 1.5.0 is released.

haruna-pl-drag.webp

The highlight of this release is the playlist, which got a lot of features:

  • multiple playlists through tabs (Muhammet Sadık Uğursoy)
  • drag and drop reordering (Muhammet Sadık Uğursoy)
  • add files and folders through drag and drop (Muhammet Sadık Uğursoy)
  • filtering (Muhammet Sadık Uğursoy)
  • option to control playback behavior when a file ends: repeat playlist, repeat file, stop after last file in playlist, stop after current fille and play a random item

Another big change is to the Mouse settings, now you can use a mouse button + modifier key combo (ctrl + left click, shift + scroll up/down etc.).


flathub logo

Windows version:

Availability of other package formats depends on your distro and the people who package Haruna.

If you like Haruna then support its development: GitHub Sponsors | Liberapay | PayPal

Feature requests and bugs should be posted on bugs.kde.org, ignoring the bug report template can result in your report being ignored.


Changelog

1.5.0

Known issues

On Windows the Shortcuts and Custom Commands settings pages don't work.

Features

Settings

  • General
    • added single instance setting to play new file when appending to the playlist
    • removed the "File dialog location setting"
  • Playlist: added settings to control playback behavior
  • Mouse
    • changed to allow modifier keys
    • added support for Mouse Forward and Back buttons
  • Subtitles: if a relative folder name in the Load subtitle from list starts with an * (asterisk) then subtitles will be searched in all folders contaning the folder name. Example: If the Load subtitle from list contains an entry *sub and you have the following folders next to the video file subs, more subs and subtitles all of these folders will be searched.
  • the settings window now has a minimum width and height

PlayList

  • added support for multiple playlists
  • items can be reordered manually through drag and dropdown
  • items can be selected, ctrl+click to select multiple items, shift+click to select a range
  • items can be filtered
  • added setings to control playback behavior when a file ends
  • when saving the playlist the file extension is set to m3u
  • can add files and folders through drag and drop
  • multiple files can be added through the option in the header
  • hide playlist when mouse leaves window while maximized, prevents opening the playlist when moving mouse to another monitor

Playback

  • if a file can't be played now an error is shown and playback stops instead of trying to play the next file (prevents a potential infinite loop when no file in the playlist can be played)
  • can play files starting with a dot (hidden files)
  • an error is shown when failing to get youtube playlist

Other

  • mpris: add support for Shuffle and LoopStatus
  • changed the action selection popup to use Kirigami.SearchDialog
  • replaced the spinning icon with a progress bar and label
  • the drop area of the video is split in 2 parts now
    • top part always appends to the default playlist
    • bottom part clears the default playlist and adds the dropped files and folders, when only one file is dropped it behaves as the open file action (clears the playlist and loads sibling files if enabled in settings)
  • recent files are now stored in a sqlite database
  • time positions used to restore videos are also stored in the database
  • sleep is blocked on Windows too
  • all strings should be translatable now

Bugfixes

  • fixed the loop action, osd was not showing and progress bar was not highlighting the loop range
  • before loading check that the file exists
  • fixed loading wrong subtitles when using recursive subs
  • fixed the progress bar getting taller when the chapters menu becomes visible
  • fixed a bug where the video would pause after clicking the progress/seek bar
10 Years of Qt OPC UA

Beginning of 2025 I was searching through the version history of Qt OPC UA - trying to find out when a certain issue got introduced. At some point I was curious: How long does this thing go back?! Turns out that the first git commit is dated 25th of September 2015. Which means we have been doing this for over 10 years now!

Continue reading 10 Years of Qt OPC UA at basysKom GmbH.

Saturday, 27 September 2025

Whether you missed it the first time or simply want to relive the excitement, the entire Akademy 2025 experience is now available to rewatch online! From insightful keynotes and engaging panel discussions to technical talks, every moment of the event has been recorded and uploaded for the community to enjoy.

This year Akademy was packed with ideas, innovation, and collaboration that will shape the future of KDE and open source.

Watch now on your favorite platform:

Enjoy!

At Akademy 2025 this year, I had the privilege of giving a talk about a big picture topic close to my heart, and you can watch it here:

For those who prefer reading over watching and listening, I’ll give a quick summary:

I believe that the challenges facing the world today present an opportunity for KDE to grow in importance and reach due to a variety of favorable trends embedded in the chaos and conflict, including:

  • Increasing skepticism of traditional proprietary American big tech
  • Increasing EU public funding opportunities
  • Windows 11 sucking and losing its edge for gaming
  • *Postscript: MacOS Tahoe stumbling and being publicly mocked as well

But this is a window of opportunity that I think will close. So I encouraged everyone to think about how we can make KDE software ready for adoption from the following perspectives:

  • Being known about in the first place
  • Looking good enough to be taken seriously
  • Being easy to download or otherwise acquire
  • Working properly and having enough features
  • Having enough support resources and an articulable “lower total cost of ownership” story

Because if we’ve got all five, our offerings will start to look irresistible, and I think we’ll gain market share very quickly!

Kirigami Addons is a collection of supplementary components for Kirigami applications. Version 1.10.0 is a relatively minor release, introducing KirigamiApp and some improvements on Android regarding the new edge-to-edge support introduced in Android 15.

New Features

Aleix Pol Gonzalez added a KirigamiApp component which removes quite a bit of boilerplate to setup a Kirigami applications.

It now looks like this and will setup theming, crash reporting and more automatically in one place:

int main(int argc, char *argv[])
{
 KirigamiApp::App app(argc, argv);
 KirigamiApp kapp;

 // Set up KAboutData

 // QCommandLineParser creation and processing

 if (!kapp.start("org.kde.myapp", u"Main", new QQmlApplicationEngine)) {
 return -1;
 }
 return app.exec();
}

Bug fixes

Volker Krause added edge-to-edge support to the BottomDrawer and the MaximizedComponents.

Packager Section

You can find the package on download.kde.org and it has been signed with my GPG key.

Friday, 26 September 2025

Hi again!

If you would like to review my latest presentation at Akademy 2025 in Berlin on Design System progress, please check here:

In this presentation, I go over the progress we have made so far in building foundational elements of the design system we would like to apply to Plasma.

Progress is now moving into migrating or recreating more components using PenPot. PenPot 2.10 now contains variables, like Figma, and this should help us develop a robust set of variables inside PenPot to execute designs faster.

But first, we have to create all the possible states in variable tables. The result should be pretty good. Foundations are “done” in the sense that they are entered into PenPot. Now comes the second set of components to build and we start pretty small.

For example, buttons, button groups, checkboxes, progress bars, etc. Anything that is a small functional component in the UI. However, as PenPot is still working on their next generation rendering engine, we are still dealing with performance delays. Don’t expect this work in PenPot to move super fast until their new engine is out.

Wednesday, 24 September 2025

Today we are releasing Krita 5.2.13! This is a bugfix release containing a number of important Android fixes, courtesy of Carsten Hartenfels, our new Android Maintainer. The release also includes a security fix that affected the work with TGA files.

16K Page Size support

Some devices running Android 15 have so much working memory that Android 15 increased the page size (the smallest unit the working memory is divided up in). To work with on these devices, programs like Krita need some adjustments, or else they won't even run! With Krita 5.2.13 you won't have to worry about this distinction anymore, as 16K page size support has been added.

Saving fixes

One of the most frequent crashes on Android was caused by background saving going wrong. We've overhauled the saving service, fixing crashes when Krita was being shut down or when it is inactive in the background.

Now, operating systems like Android make file system handling a little tricky because they would like to keep each file inside a so-called sandbox, so your program cannot do anything without your explicit permission. This is generally a good thing, but it is very different from how desktop operating systems work, and we're still working on figuring out how to make Krita work more pleasantly while staying inside the sandbox, so look out for that in the future!

Transform fixes

Previously, the transform tool would not work with touch, because it relied on mouse-press, instead of mouse-click, which is what touch events are. We've worked around this, and now you should be able to manipulate the transform widget with your fingers.

Automatically disable touch-painting on devices with stylus present

Now, when Krita detects a stylus present in proximity of the tablet device it automatically disables touch painting for the rest of the session. It lets new users start painting with their stylus right away without visiting Krita's Preferences dialog. If you still want to be able to paint with your fingers and with your stylus at the same time, you can explicitly enable touch-painting in Configure Krita->General->Tools->Touch Painting->Enabled.

Fix for a security issue when loading TGA files

There was a theoretical security issue when loading TGA files, which could cause buffer overflow in Krita. This issue is now fixed in Krita 5.2.13. If you have not yet updated to 5.2.13 we highly recommend you to avoid opening TGA files from unknown sources.

Other

Beyond that, there are two crash fixes.

  • Index Colors: fix crash when filtering non-transparent layer
  • Fix crash in palette docker with add swatch dialog. (Bug 507601)

Download

Windows

If you're using the portable zip files, just open the zip file in Explorer and drag the folder somewhere convenient, then double-click on the Krita icon in the folder. This will not impact an installed version of Krita, though it will share your settings and custom resources with your regular installed version of Krita. For reporting crashes, also get the debug symbols folder.

[!NOTE] We are no longer making 32-bit Windows builds.

Linux

Note: starting with 5.2.11, the minimum supported version of Ubuntu is 22.04.

[!WARNING] Starting with 5.2.11 has updated the AppImage runtime, which is known to be incompatible with the old versions of AppImageLauncher. Developers of the AppImage runtime suggest to remove or update AppImageLauncher. See this report: Issue 121 More AppImage troubleshooting info is available here: FUSE

MacOS

Note: We're not supporting MacOS 10.13 anymore, 10.14 is the minimum supported version.

Android

We consider Krita on ChromeOS as ready for production. Krita on Android is still beta. Krita is not available for Android phones, only for tablets, because the user interface requires a large screen.

Source code

md5sum

For all downloads, visit https://download.kde.org/stable/krita/5.2.13/ and click on "Details" to get the hashes.

Key

The Linux AppImage and the source .tar.gz and .tar.xz tarballs are signed. You can retrieve the public key here. The signatures are here (filenames ending in .sig).

Welcome to the August 2025 development and community update.

Development Report

5.2.13 Released

A new bugfix release, Krita 5.2.13, is out. (5.2.12 was an Android-only release skipped in favor of making a release on all platforms.)

It mainly fixes a crash on Android when Krita is in the background, and makes the Transform Tool respond correctly to touch input, both thanks to our new Android maintainer Carsten Hartenfels.

But there are some important fixes for all platforms, so check out the release notes and make sure to update!

Text Tool Rework Progress

The UI for text properties continues to get polished. There's a new in-depth post about text language selection and style preset work, and Wolthera has put out a call for testing and feedback about the way paragraph and character property setting is handled.

Wayland Port Progress

After months of work, Dmitry has implemented initial color management support on Wayland. This is necessary for artists whose work requires color accuracy such as for printing to be able to view their colors accurately on modern Linux compositors.

Google Summer of Code

Krita's Google Summer of Code student for this year, Ross Rosales, successfully completed a project creating a Selection Actions Bar. This feature, which can be toggled in settings under General->Tools, give quick access to various ways to interact with a selection: Select All, Invert Selection, Deselect All, Fill Selection with Color, Clear Selection, Copy Selection to New Layer, Crop to Selection.

Community Report

August 2025 Monthly Art Challenge Results

13 forum members took on the challenge of the "Kiki's Summer Activities" theme. And the winner is… Kiki's Beach Fun by @Lynx3d

Kiki's Beach Fun by @Lynx3d

The September Art Challenge is Open Now

For this month's theme, winner @Lynx3d has chosen "A Breezy Day". The optional challenge is to depict a fleeting moment that would be gone in seconds. Brave the winds and don't get blown away!

Best of Krita-Artists - July/August 2025

This month's Best of Krita-Artists Nominations thread received 9 nominations of forum members' artwork. When the poll closed, these five wonderful works made their way onto the Krita-Artists featured artwork banner:

Raccoon by @elvaira.gromova

[Raccoon by @elvaira.gromova

Rest during the journey by @JayWong

[Rest during the journey by @JayWong

A pirate by @p4to

A pirate by @p4to

Lion Statue by @z586t

[Lion Statue by @z586t

Cara Dune (The Mandalorian - Ch 16) by @FireShepherd

Cara Dune (The Mandalorian - Ch 16) by @FireShepherd

Best of Krita-Artists - August/September 2025

Take a look at the nominations for next month.

Ways to Help Krita

Krita is Free and Open Source Software developed by an international team of sponsored developers and volunteer contributors. That means anyone can help make Krita better!

Support Krita financially by making a one-time or monthly monetary donation. Or donate your time and Get Involved with testing, development, translation, documentation, and more. Last but not least, you can spread the word! Share your Krita artworks, resources, and tips with others, and show the world what Krita can do.

Other Notable Changes

Other notable changes in Krita's development builds from August 16, 2025 - September 24, 2025.

Stable branch (5.2.13):

  • Android: Fix a crash when Krita is in the background. (Change, by Carsten Hartenfels)
  • Touch Input: Properly handle taps when touch painting. (Change, by Carsten Hartenfels)
  • Canvas Input: By default, auto-disable Touch Painting if stylus input is used in a session, to avoid conflicting with touch gestures. (Change, by Carsten Hartenfels)
  • Brush Engines: Fix the Speed input being incorrect at the start of a touch drawing brushstroke. (Change, by Carsten Hartenfels)
  • Brush Engines: Fix brush preview outline centering to account for transparent edges. (bug report) (Change, by Jeff Witthuhn)
  • File Formats: TGA: Fix a crash when importing bad TGA files. (Change, by Dmitry Kazakov)

Stable branch (5.2.14-prealpha):

  • Android: Fix an issue where the canvas wouldn't show when loading a document until reloading the window. (bug report) (Change, by Carsten Hartenfels)

Unstable branch (5.3.0-prealpha):

  • General: Add two empty custom toolbars for users to configure, bringing the total number of toolbars to five. (Change, by Agata Cacko)
  • Text Tool: Add buttons to switch between Preformatted, Inline-wrapped, and Prepositioned text wrapping types. (Change, by Wolthera van Hövell)
  • Assistant Tool: Don't place duplicated control widgets directly on top of each other, and bring them forward when clicked on. (Change, by Aries Moczar)
  • Transform Tool: Add Keep Aspect Ratio action to Transform Tool right-click context menu. (Change, by Agata Cacko)
  • Zoom Tool: Fix regression in zoom target position. (Change, by Carsten Hartenfels)
  • Brush Engines: Switch the default brush outline color from green to magenta. (Change, by Emmet O'Neill)
  • Color Themes: Make some tweaks and updates to the default color themes. Update the Krita Blender theme to match Blender 4 (instead of 2.5). (Change, by Wolthera van Hövell)
  • Python Plugins: Batch Export: Allow specifying an export color profile. (Change, by Kitlith)

Nightly Builds

Pre-release versions of Krita are built every day for testing new changes.

Get the latest bugfixes in Stable "Krita Plus" (5.2.14-prealpha): Linux - Windows - macOS (unsigned) - Android arm64-v8a - Android arm32-v7a - Android x86_64

Or test out the latest Experimental features in "Krita Next" (5.3.0-prealpha). Feedback and bug reports are appreciated!: Linux - Windows - macOS (unsigned) - Android arm64-v8a - Android arm32-v7a - Android x86_64