Planet KDE's Avatar

Planet KDE

@planet.kde.org.web.brid.gy

Planet KDE site providing newest news from the KDE Project [bridged from https://planet.kde.org/ on the web: https://fed.brid.gy/web/planet.kde.org ]

45
Followers
0
Following
1,101
Posts
20.08.2024
Joined
Posts Following

Latest posts by Planet KDE @planet.kde.org.web.brid.gy

Preview
Upgrades to Frontier LLMs – Qt AI Assistant 0.9.9 for Qt Creator Released! To make it easier to access the latest AI capabilities, we have updated pre-configured LLMs to newer variants.
10.03.2026 08:28 👍 0 🔁 0 💬 0 📌 0
Preview
What is the best way to identify software? Introducing SWHID Modern software is assembled from hundreds of components that organizations often did not write and do not fully control. Identifying those components reliably is becoming a legal requirement. This article introduces SWHID, an open standard for identifying software artifacts.
10.03.2026 07:00 👍 0 🔁 0 💬 0 📌 0
Kdenlive 25.12.3 released The last maintenance release of the 25.12 series is out with the usual batch of stability fixes and workflow improvements. Highlights include small interface refinements such as better dock widget behavior, improved shortcut handling in fullscreen mode, logically grouped marker menu items, and a new option to disable timeline effects in the hamburger menu. The release also brings improvements to multistream clip handling and ripple editing, as well as fixing small memleak in the render widget and a crash in the curve editor. See the changelog below for more details. _The macOS versions will be available at a later time due to technical issues while generating the packages._ ### Kdenlive needs your support Our small team has been working for years to build an intuitive open source video editor that does not track you, does not use your data, and respects your privacy. However, to ensure a proper development requires resources, so please consider a donation if you enjoy using Kdenlive - even small amounts can make a big difference. For the full changelog continue reading on kdenlive.org.
09.03.2026 08:00 👍 0 🔁 0 💬 0 📌 0
This Week in KDE Apps #### New Glaxnimate release, source mode in Marknote and S3 support in Dolphin Welcome to a new issue of "This Week in KDE Apps"! Every week (or so) we cover as much as possible of what's happening in the world of KDE apps. ## Office Applications ### Marknote Write down your thoughts It's been a busy week in Marknote again. Valentyn Bondarenko extensively reworked tables to fix rendering issues (office/marknote MR #143 and office/marknote MR #169). Valentyn Bondarenko also added a new dialog to add note links more easily (office/marknote MR #161) and added subtle animations to various parts of the UI (office/marknote MR #162 and office/marknote MR #168). Shubham Shinde extended the search function of Marknote to also be able to replace text (office/marknote MR #154). Siddharth Chopra added a source mode to Marknote, for people who prefer to edit Markdown using a plain text editor (office/marknote MR #118). Carl Schwan improved the context menu, making it appear directly underneath the button and fixing some accessibility issues (office/marknote MR #166). Finally, there was quite a bit of polish and refactoring done by the whole team in preparation for the release planned next week. ### KMyMoney Personal finance manager based on double-entry bookkeeping Ralf Habacker added a way to list all your unsaved reports and to delete multiple reports at the same time (office/kmymoney MR #322). ## PIM Applications ### Merkuro Calendar Manage your tasks and events with speed and ease Yuki Joou redesigned the schedule view to be less crowded and more concise (pim/merkuro MR #573). Yuki made it possible to set a start date also for tasks and not only for events (pim/merkuro MR #611). She also fixed the sort button state in the todo view (pim/merkuro MR #612), among other various small issues (pim/merkuro MR #579, pim/merkuro MR #609, pim/merkuro MR #610). Zhora Zmeikin fixed a crash when editing or creating a new event (pim/merkuro MR #608). ### Merkuro Mail Read and write emails Yuki Joou also worked on Merkuro Mail and fixed various issues when sending emails (pim/merkuro MR #615). ### Merkuro Contact Manage your contacts with speed and ease Finally, Yuki added a way to copy phone numbers from a contact book entry easily (pim/merkuro MR #614). ### KMail A feature-rich email application Albert Astals Cid refactored how temporary files are stored so they are no longer stored in `/tmp`. This mostly helps in case multiple users use the same machine (pim/messagelib MR #334). ### Kleopatra Certificate manager and cryptography app Thomas Friedrichsmeier changed the font used by plain text email signatures in the Kleopatra and GpgOL.js email viewers to be monospaced, as many signatures depend on that (pim/mimetreeparser MR #91). ## Creative Applications ### Glaxnimate Vector Animation Editor This week we celebrated the first release of Glaxnimate as part of KDE. Welcome to the family! The big highlights of this release are better integration with KDE in terms of theming, improvements in the animation timeline, and better SVG export and import. Read more in the full announcement. In the development branch, Mattia Basaglia continued to improve Glaxnimate. This includes a brand new rendering engine based on ThorVG (graphics/glaxnimate MR #84). This means the rendering is now hardware accelerated, which is faster than the old QPainter-based renderer. Additionally, Mattia improved the backend (graphics/glaxnimate MR #86) and built an experimental WASM renderer based on it for the web (graphics/glaxnimate MR #87). ## Multimedia Applications ### KPhotoAlbum KDE image management software Randall Rude updated the documentation (graphis/kphotoalbum MR #73). ## Developers Applications ### Kate Advanced text editor Leia uwu fixed Kate so that when renaming a file, any open tabs with this file will also be updated accordingly (utilities/kate MR #2043). ### KDevelop Featureful, plugin-extensible IDE for C/C++ and other programming languages Martin Bednar added support for noexcept in the autocompletion model of KDevelop (kdevelop/kdevelop MR #858). ## Network Applications ### NeoChat Chat on Matrix James Graham continued working this week on improving and polishing the new rich text editor in NeoChat (network/neochat MR #2730, network/neochat MR #2729, network/neochat MR #2722, ...) Joshua Goins disabled the search feature in encrypted rooms as the server is not able to search in them (network/neochat MR #2724). ### Kaidan Modern chat app for every device Melvin Keskin improved the usability of the emoji picker and mentioning participants in a group chat (network/kaidan MR #1522). ## System Applications ### Dolphin Manage your files Albert Mkhitaryan added keyboard shortcut support for service menu actions (system/dolphin MR #1167). So now you can assign a shortcut to the context menu actions provided by other applications or user scripts. See doc Nicolai Sehrt added an option for forcing all tabs in Dolphin to have the same width (system/dolphin MR #1154). Méven Car also updated Dolphin so that, by default, tab widths are automatically determined by their title length (system/dolphin MR #1170). Méven Car also centered most settings pages to be a bit more consistent with System Settings (system/dolphin MR #1192). Nekto Oleg improved support for the S3 protocol in KIO-enabled applications like Dolphin. While S3 is commonly associated with Amazon Web Services (AWS), the implementation now also supports custom endpoints and is no longer limited to AWS-compatible services (network/kio-s3 MR #7, network/kio-s3 MR #8 and network/kio-s3 MR #9). Additionally, a new System Settings page makes it possible to configure multiple S3 providers at the same time (network/kio-s3 MR #9 and network/kio-s3 MR #10). ## …And Everything Else This blog only covers the tip of the iceberg! If you’re hungry for more, check out This Week in Plasma, which covers all the work being put into KDE's Plasma desktop environment every Saturday. For a complete overview of what's going on, visit KDE's Planet, where you can find all KDE news unfiltered directly from our contributors. ## Get Involved The KDE organization has become important in the world, and your time and contributions have helped us get there. As we grow, we're going to need your support for KDE to become sustainable. You can help KDE by becoming an active community member and getting involved. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer either. There are many things you can do: you can help hunt and confirm bugs, even maybe solve them; contribute designs for wallpapers, web pages, icons and app interfaces; translate messages and menu items into your own language; promote KDE in your local community; and a ton more things. You can also help us by donating. Any monetary contribution, however small, will help us cover operational costs, salaries, travel expenses for contributors and, in general, keep KDE continue bringing Free Software to the world. To get your application mentioned here, please ping us in invent or in Matrix.
08.03.2026 07:20 👍 0 🔁 0 💬 0 📌 0
digiKam 9.0.0 is released Dear digiKam fans and users, After months of intensive development, bug triage, and feature integration, the digiKam team is thrilled to announce the stable release of **digiKam 9.0.0**. This major version introduces groundbreaking improvements in performance, usability, and workflow efficiency, with a strong focus on modernizing the user interface, enhancing metadata management, and expanding support for new camera models and file formats. * New Features and Major Changes * General Updates and Porting * Bundles Component Versions * Raw Camera Support * User Interface and Usability * Metadata and Tag Management * Preview and Media Support * New Survey Tool * Editor and Plugins * New Advanced Search and Sorting Options * Geolocation Editor * Performance and Stability * Notable Bug Fixes * Internationalization * Future Plans * Final Words * * * # New Features and Major Changes ## General Updates and Porting digiKam 9.0.0 marks a significant milestone with the core code now fully ported to **Qt 6.10.1** for the AppImage and macOS bundles, ensuring improved performance, security, and compatibility with modern operating systems. The Windows Qt6 bundle also benefits from the latest **Qt 6.9.1** and **KDE Frameworks 6.20.0**.
08.03.2026 00:00 👍 0 🔁 0 💬 0 📌 0
FOSDEM 2026 # FOSDEM 2026 This year I had the chance to attend my first ever FOSDEM. My main objective there was the GCompris workshop in FOSDEM Junior track. It was an experimental one with the initiative from the organizer since it was only the third year that this track existed. The workshop had way more adult attendees interested in GCompris for their children than children themselves. So, naturally, it turned more into a dev room than a workshop. Me, together with the organizers came to a conclusion that GCompris isn't fit for the FOSDEM Junior, at least not in the form of: short presentation -> hands free experience. The FOSDEM, for me, was very overwhelming. The amount of people in one place as well as having to choose from many different topics, navigating an unfamiliar city had me drained by the end of the first day. Mostly because of that, on the second day I had my workshop and attended only one talk. Despite that, it was awesome to meet the people of KDE, experience solo travelling for the first time and get to know the core of open source.
07.03.2026 12:00 👍 0 🔁 0 💬 0 📌 0
KDE Gear 26.04 branches created Make sure you commit anything you want to end up in the KDE Gear 26.04 releases to them Next Dates: *   March 12 2026: 26.04 Freeze and Beta (26.03.80) tarball creation *   March 13 2026: 26.04 Beta (26.03.80) release *   March 26 2026: 26.04 RC (26.03.90) tarball creation *   March 27 2026: 26.04 RC (26.03.90) Release *   April  9 2026: 26.04 tarball creation *   April 10 2026: 26.04 packages released to packagers *   April 16 2026: 26.04 Release https://community.kde.org/Schedules/KDE_Gear_26.04_Schedule
06.03.2026 21:45 👍 0 🔁 0 💬 0 📌 0
What's new in QML Tooling in 6.11, part 1: QML Language Server (qmlls) The latest Qt release, Qt 6.11, is just around the corner. This short blog post series presents the new features that QML tooling brings in Qt 6.11, starting with qmlls in this part 1. Parts 2 and 3 will present newly added qmllint warnings since the last blog post on QML tooling and context property configuration support for QML Tooling.
05.03.2026 08:57 👍 0 🔁 0 💬 0 📌 0
Third beta for Krita 5.3 and Krita 6.0 Today we're releasing the third beta of Krita 5.3.0 and Krita 6.0.0. The bug-squashing continues, We received 63 bug reports in total, of which we managed to resolve 8 for this release, making a total of 22 fixed bugs. Beyond that, the manual has been updated for 5.3 and 6.0, complete with dark theme! Please keep testing and reporting! Note that 6.0.0-beta3 has more issues, especially on Linux and Wayland, than 5.3.0-beta3. If you want to combine beta testing with actual productive work, it's best to test 5.3.0-beta3, since 5.3.0 will remain the recommended version of Krita for now. To learn about everything that has changed, check the release notes! ## 5.3.0-beta3 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. * 64 bits Windows Installer: krita-x64-5.3.0-beta3-setup.exe * Portable 64 bits Windows: krita-x64-5.3.0-beta3.zip * Debug symbols. (Unpack in the Krita installation folder) ### Linux Note: starting with recent releases, the minimum supported distro versions may change. > [!WARNING] Starting with recent AppImage runtime updates, some AppImageLauncher versions may be incompatible. See AppImage runtime docs for troubleshooting. * 64 bits Linux: krita-5.3.0-beta3-x86_64.AppImage ### MacOS Note: minimum supported MacOS may change between releases. * MacOS disk image: krita-5.3.0-beta3-signed.dmg ### Android Krita on Android is still **_beta_** ; tablets only. * 64 bits Intel CPU APK * 64 bits Arm CPU APK * 32 bits Arm CPU APK ### Source code See the source code for 6.0.0-beta3 ### md5sum For all downloads, visit https://download.kde.org/unstable/krita/5.3.0-beta3/ and click on "Details" to get the hashes. ### Key The Linux AppImage and the source tarballs are signed. You can retrieve the public key here. The signatures are here (filenames ending in .sig). ## 6.0.0-beta2 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. * 64 bits Windows Installer: krita-x64-6.0.0-beta3-setup.exe * Portable 64 bits Windows: krita-x64-6.0.0-beta3.zip * Debug symbols. (Unpack in the Krita installation folder) ### Linux Note: starting with recent releases, the minimum supported distro versions may change. > [!WARNING] Starting with recent AppImage runtime updates, some AppImageLauncher versions may be incompatible. See AppImage runtime docs for troubleshooting. * 64 bits Linux: krita-6.0.0-beta3-x86_64.AppImage ### MacOS Note: minimum supported MacOS may change between releases. * MacOS disk image: krita-6.0.0-beta3-signed.dmg ### Android No Krita 6.0.0 for Android for now. Please use the 5.3.0-beta3 APKs. ### Source code * krita-6.0.0-beta3.tar.gz * krita-6.0.0-beta3.tar.xz ### md5sum For all downloads, visit https://download.kde.org/unstable/krita/6.0.0-beta3/ and click on "Details" to get the hashes. ### Key The Linux AppImage and the source tarballs are signed. You can retrieve the public key here. The signatures are here (filenames ending in .sig).
05.03.2026 00:00 👍 0 🔁 0 💬 0 📌 0
Preview
Glaxnimate 0.6.0 **Glaxnimate 0.6.0 is out! This is the first stable release with Glaxnimate as part of KDE.** The biggest benefit of joining KDE is that now Glaxnimate can use KDE's infrastructure to build and deploy packages, greatly improving cross-platform support. This allows us to have releases available on the Microsoft Store and macOS builds for both Intel and Arm chips. But there is much more... ### KDE-specific features Glaxnimate now uses the KDE file recovery system making it more reliable. Settings and styles also go through the KDE systems, which, among other things, lets you choose from more color themes for the interface. Translations are also provided by KDE. This makes it easier to keep other languages up to date as Glaxnimate evolves. In fact, the number of available languages has increased from 8 to 26! The script console has also been enhanced with basic autocompletion making scripting easier. ### Timeline The timeline dock now allows affortless scrolling and provides buttons that make moving to different keyframes, and adding and removing them easier too. This contributes to making the animation workflow much smoother. Hiding and showing layers from the timeline now interacts with the undo/redo system. You can also quickly toggle keyframe easing without having to navigate menus. Just hold down the `Alt` key and click on the timeline. ### Format Support SVG import and export has been re-worked, and precompositions are now properly exported and animations improved. You can even export an animation as a sequence of SVG frames. ### Editing We have improved the bezier editing tools, and included the ability to `Alt`-click on bezier points to cycle between tangent symmetry modes. The _Reverse path_ action is now implemented and works for all shapes. This is mostly useful when adding the _Trim path_ modifier. ### Bug Fixes Version 0.5.4 included a significant refactoring of internal logic that introduced several bugs. These have now have been fixed. ## Packager Section The source code tarballs are available from the KDE servers: **URL:** https://download.kde.org/stable/glaxnimate/0.6.0 **Source:** glaxnimate-0.6.0.tar.xz **Signed by:** `97B71AA02D63EA6C5C44C23B962AC48EF0501F0B` Julius Künzel julius.kuenzel@kde.org
03.03.2026 13:20 👍 0 🔁 0 💬 0 📌 0
SOK2026: Porting energy measurement scripts of KEcoLab to Wayland ## About me # Hi Everyone ,I am Hrishikesh Gohain a third year undergraduate student in Computer Science & Engineering from India. For the past few weeks I have been working as a Season of KDE mentee with my mentors Joseph P. De Veaugh-Geiss ,Aakarsh MJ and Karanjot Singh. This post summarizes the work I have done until Week 5. ## About KEcoLab # KDE Eco is an ongoing initiative by the KDE Community that promotes the use and development of Free , Open Source and Sustainable Software. KEcoLab is a project that allows you to measure energy consumption of your software through ci/cd pipeline using a remote lab.It also generates a detailed report which can further be used to document and review the energy consumed when using one’s software and to obtain Blue Angel eco certification. ## About the SOK Project # The Lab computer on which the software runs for testing was migrated to Fedora 43 recently, which comes with Wayland by default. Writing Standard Usage Scenario scripts, which are needed to emulate user behavior, was previously done with xdotool, but that will not work on Wayland. My work so far has been to port the existing test scripts to a Wayland-compatible tool. For those who want to contribute test scripts to measure their own software , the current scripts can be taken as a reference. My next tasks are to prepare new test scripts to measure energy usage of Plasma Desktop Environmen itself. ## Work done so Far # ### Week 1 # In the first week I studied the Lab architecture and how testing of software is done using KEcoLab. The work done by past mentees as part of SOK and GSoC was very helpful for my research which you can read here , here and here. I also set up access to the lab computers through SSH. RDP access had some issues which were solved with the help of my mentors. To replicate the lab environment locally, I set up a Fedora 43 Virtual Machine so that I can test scripts under the same Wayland environment as the lab PC. I also documented and published a blog about the project and shared with my university community to promote the use of Free and Open Source Software and how it relates to sustainability. ### Week 2 and Week 3 # I communicated with my mentors and other community members to decide the new wayland compatible tool. After evaluating different options, we decided to use: * ydotool: for key press, mouse clicks and movements (works using the uinput subsystem) * kdotool : for working with application windows (focusing, identifying window IDs, etc.) A combination of tools was required to meet all our requirements. To help future contributors, I published my first blog on Planet KDE explaining how to set up and use ydotool and kdotool . I also imported the repositories into KDE Invent for long term compatibility and wrote setup scripts for easier installation and configuration. These tools did not work out of the box and I had to make some workarounds and setup before usage which i documented in the blog. ### Week 4 and Week 5 # During these weeks, along with my mentors, I installed and set up the required tools on the Lab PC. I then ported the test scripts of Okular from xdotool to ydotool and kdotool and did testing on my local machine first. Currently, the CI/CD infrastructure through which these scripts run on the Lab PC is temporarily broken due to the migration to Fedora 43. Once these issues are fixed, we will test the new Wayland compatible scripts on the actual lab hardware and compare the results with previous measurements. ## Next Steps # I will be working on measuring energy usage of Plasma Desktop Environment itself. It will be more challenging than measuring a normal software application because Plasma is not a single process. It is made up of multiple components such as KWin (compositor), plasmashell, background services, widgets, and system modules. All of these together form the desktop experience. Unlike normal applications like Okular or Kate, Plasma is always running in the background. So we cannot simply “open” and “close” it like a normal app. Because of this, some changes may be required in the current way of testing using KEcoLab. To properly design the Standard User Scenario (SUS) scripts for Plasma, I will discuss closely with my mentors and also seek feedback and suggestions from the Plasma community. Defining what should be considered a “standard” usage pattern will require careful discussion and community input. ## Lessons learned # It has been a very amazing journey till now. I learned how to make right choices of tools/software after properly understanding the requirements instead of directly starting implementation. ## Thank You Note # I’d like to take a moment to thank my mentors Aakarsh, Karanjot, and Joseph. I am also thankful to the KDE e.V. and the KDE community for supporting us new contributors in the incredible KDE project. KEcoLab is hosted on Invent. Are you interested in contributing? You can join the Matrix channels Measurement Lab Development and KDE Eco and introduce yourself. Thank you!
02.03.2026 16:30 👍 0 🔁 0 💬 0 📌 0
This Month in KDE Apps #### A lot of progress in Marknote and Drawy, a new homepage for Audiotube, and a rich text editor in NeoChat Welcome to a new issue of "This ~~Week~~ Month in KDE Apps"! Every week (or so) we cover as much as possible of what's happening in the world of KDE apps. It's been a while since the last issue, so I'll try my best to summarize all the big things that happened recently. ## Office Applications ### Marknote Write down your thoughts A lot happened in Marknote. We released version 1.4.0 of Marknote, which contains a large number of bug fixes. It also includes a few new features. Siddharth Chopra implemented undo and redo in the sketch editor office/marknote MR #91 and Valentyn Bondarenko made it possible to drag and drop images inside Marknote office/marknote MR #90. Valentyn has also been busy fixing many bugs and improving the stability of Marknote. In the development branch even more happened. Shubham Shinde added a note counter to the notebook sidebar indicating the number of notes in each notebook office/marknote MR #110. Additionally, Shubham implemented text search inside a note office/marknote MR #109; drag-and-drop support for moving notes between notebooks office/marknote MR #111; internal wiki links between notebooks office/marknote MR #115; a table of contents panel office/marknote MR #112; and a button to copy the whole note content office/marknote MR #108. Valentyn Bondarenko further improved the drag-and-drop support for images, which now supports multiple images at once office/marknote MR #104; made image loading async office/marknote MR #99; ported some custom `FormCardDelegate`s to the newer standardized delegates now available in Kirigami Addons office/marknote MR #144 office/marknote MR #122; added support for code blocks office/marknote MR #146 and block quotes office/marknote MR #142; significantly improved support for tables office/marknote MR #143; and delivered an even bigger list of bug fixes, code refactoring, and UI polish. A new release should follow soon :) ### Drawy Your handy, infinite brainstorming tool Drawy saw a massive wave of improvements and new features this month. Prayag delivered a major UI overhaul that includes a new hamburger menu graphics/drawy MR #295; improved zoom and undo/redo controls graphics/drawy MR #193; and a more uniform appearance across the app. He also improved the saving mechanism to correctly remember the last used file graphics/drawy MR #345. Laurent Montel was busy expanding the app's core capabilities, implementing a brand-new plugin system to make adding new tools much easier graphics/drawy MR #352; Laurent also added a color scheme menu to switch themes graphics/drawy MR #372, and introduced the ability to customize keyboard shortcuts. Nikolay Kochulin greatly enhanced how you interact with content, adding support for styluses with erasers and the ability to export your finished canvas to SVG graphics/drawy MR #258; Nikolay also made bringing media into Drawy a breeze by adding support for copying and pasting items, pasting images directly graphics/drawy MR #285, and dragging and dropping content straight onto the canvas graphics/drawy MR #322. Finally, Abdelhadi Wael polished the visual experience by making the canvas background automatically detect and respect the system's current light or dark mode theme graphics/drawy MR #380. ### Okular View and annotate documents Jaimukund Bhan added a setting to open the last viewed page when reopening a document graphics/okular MR #1324. Ajay Sharma made it possible to open embedded file attachments in Okular graphics/okular MR #1312. ## Travel Applications ### KDE Itinerary Digital travel assistant Carl Schwan modernized some dialogs to be more convergent using Kirigami Addons' `ConvergentContextMenu` pim/itinerary MR #413. As always, there were also improvements in terms of ticket support. Carl Schwan improved support for Hostel World, GetYourGuide, and FRS ferries. Volker Krause improved support for FCM flights and French TER. Tobias Fella added support for Gomus annual tickets. Volker Krause also posted a blog post about all the other improvements in the Itinerary/Transitous ecosystem. ## PIM Applications ### Akonadi Background service for KDE PIM apps We removed support for Kolab. If you are using Kolab with KMail, you will need to reconfigure your account with a normal IMAP/DAV account pim/kdepim-runtime MR #154. We also switched the default database backend to SQLite for new installations pim/akonadi MR #311. ### Merkuro Calendar Manage your tasks and events with speed and ease Zhora Zmeikin fixed a crash when editing or creating a new incidence (25.12.3 - pim/merkuro MR #608). Yuki Joou fixed various small issues in Merkuro Calendar (25.12.3 - pim/merkuro MR #610, pim/merkuro MR #611, pim/merkuro MR #609, pim/merkuro MR #579). ### Merkuro Mail Read and write emails Carl Schwan added basic support for displaying travel reservations in the mail view pim/mimetreeparser MR #90. ## Creative Applications ### Kdenlive Video editor Swastik Patel and Jean-Baptiste Mardelle added support for showing animated previews in the transition list (26.04.0 - multimedia/kdenlive MR #816). ## Multimedia Applications ### Photos Image Gallery Valentyn Bondarenko added support for the standard zoom-in and zoom-out shortcuts in Photos (26.04.0 - graphics/koko MR #267). ### Kasts Podcast application Bart De Vries refactored the sync engine to be a bit more efficient (26.04.0 - multimedia/kasts MR #315 multimedia/kasts MR #305). ### AudioTube YouTube Music app Carl Schwan added a home and explore pages to Audiotube (multimedia/audiotube MR #179) and ported the convergent context menu to the standardized one in Kirigami Addons. ## Utilities Applications ### Kate Advanced text editor Leia uwu added a way to clear the search history (26.04.0 - utilities/kate MR #2044). ### KomoDo Work on To-Do lists Akseli Lahtinen released Komodo 1.6.0 utilities/komodo MR #72. This release adds Markdown-style inline links, fixes some parsing issues, and removes the monospace font from tasks. ### Clock Keep time and set alarms Micah Stanley added a lockscreen overlay for the timer utilities/kclock MR #244 and improved the existing one for the alarms utilities/kclock MR #243. ## Network Applications ### NeoChat Chat on Matrix James Graham rewrote the text editor of NeoChat to be a powerful rich text editor (network/neochat MR #2488). James also marked threading as ready, and this feature is no longer hidden behind a feature flag (network/neochat MR #2671); improved the avatar settings (network/neochat MR #2727); and, as always, delivered a lot of polishing all around the place. Joshua Goins improved the messaging around various encryption key options (network/neochat MR #2687). ### Tokodon Browse the Fediverse Aleksander Szczygieł fixed replying to posts with multiple mentions (network/tokodon MR #796). ## System Applications ### Journald Browser Browser for journald databases Andreas Cord-Landwehr introduced a common view for system and user unit logs (system/kjournald MR #79). ## Supporting libraries ### Kirigami Addons 1.12.0 Carl Schwan released Kirigami Addons 1.12.0. George Florea Bănuș added some missing `description` and `trailing` properties to a few of the `FormCard` delegate components (libraries/kirigami-addons MR #421, libraries/kirigami-addons MR #410). Carl Schwan made the configuration dialog modal (libraries/kirigami-addons MR #419). Hannah Kiekens fixed the templates for `KAppTemplate` (libraries/kirigami-addons MR #434). Volker Krause made the date and time picker locale-aware and fixed some issues with RTL layouts (libraries/kirigami-addons MR #431). ## …And Everything Else This blog only covers the tip of the iceberg! If you’re hungry for more, check out This Week in Plasma, which covers all the work being put into KDE's Plasma desktop environment every Saturday. For a complete overview of what's going on, visit KDE's Planet, where you can find all KDE news unfiltered directly from our contributors. ## Get Involved The KDE organization has become important in the world, and your time and contributions have helped us get there. As we grow, we're going to need your support for KDE to become sustainable. You can help KDE by becoming an active community member and getting involved. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer either. There are many things you can do: you can help hunt and confirm bugs, even maybe solve them; contribute designs for wallpapers, web pages, icons and app interfaces; translate messages and menu items into your own language; promote KDE in your local community; and a ton more things. You can also help us by donating. Any monetary contribution, however small, will help us cover operational costs, salaries, travel expenses for contributors and, in general, keep KDE continue bringing Free Software to the world. To get your application mentioned here, please ping us in invent or in Matrix.
02.03.2026 12:01 👍 0 🔁 0 💬 0 📌 0
Preview
Translations in KDE are a lot easier than you think!! In my 5th week of Season of KDE, I have translated the Mankala Engine into Tamil. Things are a lot easier with KDE’s very own translation software called Lokalize. ### Installing Lokalize Here is a guide to get you started with translation in KDE. I had installed KDE Lokalize in my Plasma desktop using: $ sudo apt install localize My project '''Mankala Engine''' already had translation files under the po folder; I had taken them as a reference for the strings that were to be translated. If the project being translated doesn’t have any prior translation, one can install the language template and start the translation from scratch. svn co svn://anonsvn.kde.org/home/kde/branches/stable/l10n-kf5/{your-language} svn co svn://anonsvn.kde.org/home/kde/branches/stable/l10n-kf5/templates I copied the string from the previous translations of my project and changed the text to my intended language of Tamil. After this, we go to Lokalize and configure the settings. * Enter your name and email. * Find your language and also get their mailing list. To setup your project, go to the project folder and select your po files and edit them in Lokalize. ### Creating translation files At the beginning of the files, we have some metadata giving the details about the files, their editor, the dates, and the version. After that, we have the lines for translation, followed by the English strings and then the translated language. English #: src/variantdescriptions.h:25 #, kde-format msgid "" "Bohnenspiel is played on a board with 2 rows, each with 6 holes, and 2 end-" "holes, called stores. Each player owns the store to their right hand and " "controls the holes on their side of the board.\n" Tamil msgstr "" "போனென்ஸ்பீல், 2 வரிசைகளைக் கொண்ட பலகையில் விளையாடப்படுகிறது. ஒவ்வொரு வரிசையிலும் 6 குழிகள் " "மற்றும் 2 இறுதிக்குழிகள் இருக்கும். ஒவ்வொரு ஆட்டக்காரரும் தமது வலதுபுறமுள்ள இறுதிக்குழியைச் சொந்தமாகக் " "கொண்டுள்ளனர். பலகையில் தமது பக்கத்திலுள்ள குழிகளை அவர்கள் கட்டுப்படுத்துவார்கள்.\n" After all the files are created, we should send them to the language moderators or else contact the mailing list of that language and ask for guidance on how these translations can be uploaded. To get involved and be updated with the team, one can join KDE Translation’s matrix channel: #kde-i18n:kde.org ### References & useful resources * https://l10n.kde.org/docs/translation-howto/ - KDE Official Translation Guide * https://raghukamath.com/how-to-translate-krita-to-your-own-language/ - How to translate Krita to your own language? * https://kisaragi-hiu.com/2025-07-07-kde-translation-workflow-en/ - KDE translation workflow
02.03.2026 03:49 👍 0 🔁 0 💬 0 📌 0
What even are Breeze, QtQuick, QtWidget, Union..? I was asked a good question: What are these things? What are the differences? I will try to explain what they are in this post, in bit less technical manner. I will keep some of the parts bit short here, since I am not 100% knowledgeable about everything, and I rather people read documentation about it instead of relying my blogpost. :) But here's the basics of it. It's infodump time. ## QtWidgets QtWidgets is the "older" way of writing Qt applications. It's mostly C++ and sometimes quite difficult to work with. It's not very flexible. More information in here: * https://doc.qt.io/qt-6/qtwidgets-index.html ### QStyle QStyle is the class for making UI elements that follow the style given for the application. Instead of hardcoding all the styles, we use QStyle methods for writing things. This is what I was talking about in my previous post. More information in here: * https://doc.qt.io/qt-6/qstyle.html ### Breeze Breeze is our current style/theme. It's what defines how things should look like. Sometimes when we say "Breeze" in QtWidgets context, it means the QStyle of it, since we do not have other name for it. Repository: https://invent.kde.org/plasma/breeze/ ## QtQuick QtQuick is the modern way of writing Qt applications. In QtQuick, we use QML which is a declarative language for writing the UI components and such. Then we usually have C++ code running the backend for the application, such as handling data. More information in here: * https://doc.qt.io/qt-6/qtquick-index.html * https://doc.qt.io/qt-6/qtqml-index.html ### qqc2-desktop-style qqc2-desktop-style is the Breeze style for QtQuick applications. It tells QtQuick applications what certain elements should look like. Repository: https://invent.kde.org/frameworks/qqc2-desktop-style/ ### Kirigami Kirigami is a set of shared components and items we can utilize in our QtQuick applications. Instead of rewriting similar items every time for new apps, we use Kirigami for many things. We call them Kirigami applications since we rely on it quite a lot. ### Kirigami and qqc2-desktop-style These two are a bit intermixed. For example, Kirigami provides convenient size units we have agreed on together, such as `Kirigami.Units.smallSpacing`. We then use these units in the qqc2-desktop-style, but in other applications as well: Both for basic components that QtQuick provides us which are then styled by qqc2-desktop-style, but also for any custom components one may need to write for an application, if Kirigami does not provide such. I wish the two weren't so tightly coupled but there's probably a reason for that, that has been decided before my time. (Or it just happened as things tend to go.) ## Diagram of the current stack This is how the current stack looks like. ### Problem: Keeping styles in sync As you can see from the diagram, the styles must be kept in sync by hand. We have to go over each change and somehow sync them. Even bigger problem is that these two (QtWidgets and QtQuick) can behave very differently, causing a lot of inconsistent look and behavior! But this is why Union was made. ## Union Union is our own "style engine" on top of these two. Instead of having to keep two completely different stacks in sync, we feed Union one single source of truth in form of CSS files, and it then chews the data out to both QtQuick and QtWidgets apps, making sure the both look as close to each other as possible! I think it's entirely possible to create other outputs for it too, such as GTK style. Our ideal goal with Union is to have it feed style information even across toolkits eventually, but first we just aim for these two! :) And yes the CSS style files are completely customizable by users! But note that the CSS is not 1-to-1 something one would use to write for web platforms! ### Note about Plasma styles Plasma styles are their own thing, which are made entirely out of SVG files. I do not know if Union will have an output for that as well, or do we just use the qqc2-desktop-style directly in our Plasma stack (panels, widgets) so we can deprecate the SVG stack. Nothing has been decided in this front yet as far as I know. * * * Yeah that's a lot of stuff. Over +20 years of KDE we have accumulated so many different ways of doing things, so of course things will get out of sync. Union will be a big step in resolving the inconsistencies and allowing users easily to customize their desktop with CSS files, instead of having to edit two or three different styles for different engines and then having to compile them all and load them over the defaults. I hope this post helps open up this a bit. Please see the previous post as well, if you're interested in this work: https://akselmo.dev/posts/breeze-and-union-preparing/
01.03.2026 17:19 👍 0 🔁 0 💬 0 📌 0
Breeze QtWidgets style changes to help us prepare for Union We have worked on some spring cleaning for Breeze, which helps us to prepare for Union and the changes it brings. This post is a bit more technical. Help us test things! If you are running Plasma git master branch, you may have noticed that Breeze has gotten various (small) changes to it. **Note that these changes are NOT in 6.6 branch** , just in master branch. Current target is **Plasma 6.7** but **that may change (6.8)** if we still have some issues with it! And to clarify, I do not know when Union releases to wider public yet. These changes will be most likely before Union. This all is happening for two reasons: 1. Bring Breeze on-par with the current QtQuick styling, which is our _current vision_ for Breeze 2. Find out any discrepancies and fix them, to make moving to Union theming more seamless In more technical terms, this means we have made `QStyle::PE_PanelItemViewItem` (docs) more round. This primitive is used in a lot of places. For example, see the background of the places panel element here: It looks much more like the items in our System Settings for example, since they're rounded too. However this has not been easy: Due to how QStyle works, we have to add margins to the primitive itself, otherwise it will be touching the edges of the view, making it look bad. These changes have made us notice bunch of visual oddities since we have +20 years of cruft across our stack, working on top of Breeze style without taking QStyle into account. People use completely custom solutions instead of relying on QStyle, though the QStyle API is not easy to work with so I do understand why it can be annoying. ## Why does using QStyle API matters in regards to Union? This is all fine and good if we just decide to use Breeze always and forever. But we're not! With Union style engine, people are going to do all kinds of cool things. First of course we just are trying to make 1-to-1 Breeze "copy" with Union, since it's a good target to compare that everything works. But when people are going to make their cool new themes with Union, our QtWidgets stack will not always follow that, due to all the custom things they're doing! So we need to minimize custom styling within QtWidgets apps and frameworks, and make sure they use QStyle APIs, so that Union can tell them properly what to do. A more practical example: 1. KoolApp directly paints a rectangle with `QPainter` as a selection background. * It's a regular rectangle, 90 degree angles. 2. Union style engine is released to the public and everyone starts making their own themes 3. Someone makes a theme that makes all selection backgrounds a rounded rectangle 4. They then open KoolApp and notice nothing changes! Since KoolApp draws its on its own. 5. Everyone is unhappy. :( However, when KoolApp is updated to use `drawPrimitive` like this: // Remove the old background //painter->setRenderHint(QPainter::Antialiasing); //painter->setPen(Qt::NoPen); //painter->setBrush(color); //painter->drawRect(rect); // Use style API instead ... style()->drawPrimitive(QStyle::PE_PanelItemViewItem, &option, &painter, this); ... // Then for text, add some spacing at start and end so it does not hug the edges of the primitive const int margin = style()->pixelMetric(QStyle::PM_LayoutHorizontalSpacing); // NOTE: you can use QStyle::SE_ItemViewItemText to get the subelement of the text // NOTE: If you use HTML to draw rich text, you will have to do adjustments manually! // Because nothing can be ever easy. :( ... Now the background uses what the QStyle gives it, which in turn is whatever Union has declared for it. I understand there are cases where someone might want to draw their custom thing, but if at all possible, please use QStyle API instead! It will make theming much easier on the long run. ## Why change now? Why not wait for Union? It's better to start catching this all now. It can be more tough to find the bugs with Union styling later on, because it changes much more than just one style: It changes the whole styling engine. When we tinker with Breeze theme to find out these discrepancies, it's easier to spot if the problem is in Breeze theme itself or the application/framework drawing the items. With Union, we can also have a bug in Union too, so it adds one more layer to the bughunt. So when Breeze looks fine with apps, we can be sure that any changes Union brings, it can be either a bug in Union or the style Union is using, instead of having to _also_ hunt down the bug from application/framework. Think of it as a gradual rollout of changes. :) ## A call for testing The current Breeze style changes we have now in git master branch are already out there if you're using KDE Linux for example. What we need is YOU to test out our stack. Test out other peoples Qt apps too. So please check this VDG issue and join there: https://invent.kde.org/teams/vdg/issues/-/issues/118 Read the tasks section, look over what others have shared, share information, etc. **Report everything in that issue!** Any help is appreciated, from spotting small errors to fixing them. **I doubt our QtWidgets and QtQuick styles can be 1-to-1 without Union** , so do not worry too much about that. At the moment goal is just to make sure the **Breeze QStyle is properly utilized.** Perfect is the enemy of good and all that. I hope this does not cause too much annoyance for our git master branch users, but if you're using master branch, we hope you're helping us test too. :) Let's make the movement from separate QtWidgets/QtQuick style engines to one unified Union style engine as seamless as possible. And this will help other QtWidgets styles too, such as Fusion, Kvantum, Klassy, etc..! Happy testing!
28.02.2026 15:40 👍 0 🔁 0 💬 0 📌 0
OSM Hack Weekend February 2026 Last weekend I attended another OSM Hack Weekend, hosted by Geofabrik in Karlsruhe, focusing on improvements to Transitous and KDE Itinerary. ### KDE Itinerary The Itinerary UI got a bit of polish: * Better defaults when importing a full trip from a previous export. * Better defaults when adding an entrance time to an event that doesn’t have a start time yet, also preventing invisible seconds interfering with input validation. * Allowing to import shortened OSM element URLs as well. A few changes in the infrastructure for querying public transport information aren’t reflected in the UI yet: * Added support for GBFS brand colors. * Initial work on booking deep-links for journeys. There were also a bunch of fixes in the date/time entry controls related to right-to-left layouts used by e.g. Arabic or Hebrew (affects all KDE apps using Kirigami Addons). Kirigami Addons date picker in French, Korean, Arabic and Hebrew. ### Transitous #### Ride Sharing We investigated using Amarillo ride sharing data in Transitous, which are available for example in Baden-Württemberg, Germany and South Tyrol, Italy. As far as Transitous is concerned those are just GTFS/GTFS-RT feeds with a special route type. Felix added a dedicated mode class for ride sharing in MOTIS, so this can also be filtered out, as well as support for passing through a booking deep-link. So once the next MOTIS release is deployed for Transitous we can add Amarillo feeds as well. A ride sharing connection in the MOTIS UI. #### Meta Stations For cities with multiple equally important main railway stations it can be useful to be able to specify just the city as destination and let the router pick an appropriate station. When choosing your precise destination (which usually isn’t the railway station) this already works correctly, but when only looking at the long-distance part of a trip this would fail for places like Paris or London. One approach to address this are so-called “meta stations”, a set of stations that the router considers as equivalent destinations, even when being far apart. MOTIS v2.8 added support for a custom GTFS extension to specify such meta stations, and we now have infrastructure for Transitous to generate a suitable GTFS feed based on a manually maintained map of corresponding Wikidata items, including translations into a hundred or so languages. While this works we also identified issues in the current production deployment where the geocoder would rank meta stations so low that they are practically unfindable. Fixes for this have been implemented in MOTIS. #### SIRI-FM Elevator Data Holger and Felix implemented the missing bits for finally consuming the DB OpenStation SIRI-FM feed, which provides realtime status information of elevators, something particularly important for wheelchair routing. The main challenge here is that the SIRI-FM feed only references elevators by an identifiers which is described in the DB OpenStation NeTEx dataset, but without being geo-referenced there. So this data had to be mapped to OSM elements first, which is what the router ultimately uses as input. This also provides some of the foundation to eventually also consume elevator status data from the Swiss SIRI-SX feed. ### You can help! Getting people to work together in the same room for a few days is immensely valuable and productive, there’s a great deal of knowledge transfer happening, and it provides a big motivational boost. However, physical meetings incur costs, and that’s where your donations help! KDE e.V. and local OSM chapters like the FOSSGIS e.V. support these activities.
28.02.2026 10:00 👍 0 🔁 0 💬 0 📌 0
Preview
Why Do We Need OMEMO? Imagine you’re sending a private message to a friend.
27.02.2026 00:00 👍 0 🔁 0 💬 0 📌 0
Preview
Qt Extension 1.12.0 for VS Code Released We're happy to announce the release of version 1.12.0 of the Qt Extension for Visual Studio Code! This is our biggest release yet, featuring PySide6 support, full CMake Presets integration, Qt translation file support, and many other improvements across the board.
26.02.2026 15:40 👍 0 🔁 0 💬 0 📌 0
Qt Creator 19 RC released We are happy to announce the release of Qt Creator 19 RC.
26.02.2026 12:03 👍 0 🔁 0 💬 0 📌 0
Preview
Creating a wooden board with Perlin Noise in Mankala During this **Season of KDE** , we made a lot of design changes to the **Mankala Engine**. We successfully redesigned most of the components including the entire home page, boards and game variants. Now I was in the middle of creating a new cover image to select game variants. I tried to create a natural wooden board for **Bohnenspiel** , and well, we got most of the things nicely done. ### Designing a board I had used **perlin noise** and a custom shader to give the wooden-like texture to the board. I used this function in our shader for the random generation of the particles. glsl float rand(vec2 n) { return fract(sin(dot(n, vec2(12.9898, 4.1414))) * 43758.5453); } To get a smooth, wooden-like surface, I used a function that interpolates between these random points. After experimenting with it a bit, I mixed and blended them with random values and was able to get a continuous noise surface. glsl float n = noise(v.yx * vec2(2.0, 12.0)); float rings = sin(v.x * 20.0 + n * 10.0); ### Improvements in Wooden Texture But to get the wood effect, this was still not enough, as if we were to render this directly, then we would have gotten a blurry, cloud-like texture. So, we stretched the noise heavily across one axis to give it a wave-like effect, having a more similar texture to a board. This made a color stretch of dark and light brown. qml ShaderEffect { anchors.fill: parent property real time: 0.0 property variant color1: "#8B4513" property variant color2: "#D2691E" ### Final look I used **QML's ShaderEffect** component to compile it and connect it to the MenuCard component in Mankala, which would act as a cover image while selecting Bohnenspiel. At last, I added some shadows and depth to make it more realistic, giving a feel of wood carving to the board. Thanks for reading :)
26.02.2026 04:58 👍 0 🔁 0 💬 0 📌 0
Preview
New in Qt 6.11: QRangeModel updates and QRangeModelAdapter When introducing QRangeModel for Qt 6.10 I wrote that we'd try to tackle some limitations in future releases. In Qt 611, `QRangeModel` supports caching ranges like `std::views::filter`, and provides a customization point for reading from and writing role-data to items that are not gadgets, objects, or associative containers. The two biggest additions make it possible to safely operate on the underlying model data and structure without using `QAbstractItemModel` API.
25.02.2026 12:39 👍 0 🔁 0 💬 0 📌 0
Krita 5.2.16 bugfix release! Today we're releasing Krita 5.2.16. The previous version of 5.2 had issues with saving heif, heic and avif files, and while we are busy preparing 5.3, we decided this was worth it to make another release over. ## 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. * 64 bits Windows Installer: krita-x64-5.2.16-setup.exe * Portable 64 bits Windows: krita-x64-5.2.16.zip * Debug symbols. (Unpack in the Krita installation folder) ### Linux Note: starting with recent releases, the minimum supported distro versions may change. > [!WARNING] Starting with recent AppImage runtime updates, some AppImageLauncher versions may be incompatible. See AppImage runtime docs for troubleshooting. * 64 bits Linux: krita-5.2.16-x86_64.AppImage ### MacOS Note: minimum supported MacOS may change between releases. * MacOS disk image: krita-5.2.16-signed.dmg ### Android Krita on Android is still **_beta_** ; tablets only. * 64 bits Intel CPU APK * 64 bits Arm CPU APK * 32 bits Arm CPU APK ### Source code * krita-5.2.16.tar.gz * krita-5.2.16.tar.xz ### md5sum For all downloads, visit https://download.kde.org/stable/krita/5.2.16/ and click on "Details" to get the hashes. ### Key The Linux AppImage and the source tarballs are signed. You can retrieve the public key here. The signatures are here (filenames ending in .sig).
25.02.2026 00:00 👍 0 🔁 0 💬 0 📌 0
Preview
In Memory of Robert Kaye I interviewed Robert back in 2017 because he was going to deliver the opening keynote at Akademy that year. He
24.02.2026 10:37 👍 0 🔁 0 💬 0 📌 0
Preview
SPDX Cryptographic Algorithm List: February 2026 Update The SPDX Cryptographic Algorithm List now includes 120+ algorithms and 7 properties. The community is growing, the roadmap is clear, and the list is moving toward the SPDX website. Here is the February 2026 update.
24.02.2026 07:00 👍 0 🔁 0 💬 0 📌 0
Preview
KDE Plasma 6.6.1, Bugfix Release for February Tuesday, 24 February 2026. Today KDE releases a bugfix update to KDE Plasma 6, versioned 6.6.1. Plasma 6.6 was released in February 2026 with many feature refinements and new modules to complete the desktop experience. 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: View full changelog
24.02.2026 00:00 👍 0 🔁 0 💬 0 📌 0
Preview
Designing Mankala Logos While working on the Mankala Next Gen project for Season of KDE, I needed to create two distinct logos: one for the game itself and another for the mankalaengine backend. What started as a straightforward design task in Inkscape quickly became a lesson in SVG optimization when my initial exports ballooned to over 5MB. Here's how I designed the logos and brought them down to a reasonable file size. ## The Design Process I used Inkscape 1.4.2 to create both logos with a consistent visual identity: * **Mankala Next Gen Logo** (`logo.svg`): A 48mm × 48mm design featuring a blue gradient (#3d49e9 to #73d5ff) with embedded texture patterns * **Mankala Engine Logo** (`mankalaengine-v2.svg`): A companion logo with similar styling but distinct visual elements to represent the backend engine Both logos started with: * Gradient fills for depth and modern aesthetics * Embedded raster textures for visual interest * Rounded rectangles with 1.32mm corner radius * Shadow effects using gradient overlays ## The 5MB Problem After my initial export, I was shocked to see the SVG files were over 5MB each. For what should be simple vector graphics, this was completely unacceptable for web use. The culprit? Embedded PNG textures encoded as base64 data URLs directly in the SVG. While Inkscape makes it easy to embed raster images into vector files, it comes at a massive file size cost. ## Optimization Techniques Here's how I reduced the file size while maintaining visual quality: ### 1. Texture Simplification The embedded textures were 266×266px PNG images with full color data. I: * Reduced texture resolution where possible * Converted to grayscale patterns * Used SVG patterns instead of full raster images when feasible ### 2. Gradient Optimization Instead of complex gradient meshes, I used simple linear gradients: <linearGradient id="linearGradient1"> <stop style="stop-color:#3d49e9;stop-opacity:1;" offset="0" /> <stop style="stop-color:#73d5ff;stop-opacity:1;" offset="1" /> </linearGradient> ### 3. Removing Unnecessary Metadata Inkscape adds extensive metadata to SVGs. I cleaned up: * Sodipodi-specific attributes * Inkscape namespaces that aren't needed for rendering * Hidden layers and unused definitions ### 4. Pattern Reuse Both logos share similar pattern definitions. By referencing the same pattern with different transforms, I avoided duplicating the base64 data: <pattern id="pattern1" ...> <image xlink:href="data:image/png;base64,..." /> </pattern> <pattern id="pattern2" xlink:href="#pattern1" patternTransform="matrix(...)" /> ## The Results After optimization: * File sizes reduced from 5MB+ to manageable sizes * Logos remain crisp at all resolutions (vector benefits) * Load times improved dramatically for web use * Visual quality maintained ## Lessons Learned 1. **Be cautious with embedded rasters** : Inkscape makes it easy to embed images, but consider linking external files or using pure vector alternatives 2. **Export settings matter** : Use "Optimized SVG" export option in Inkscape 3. **Test file sizes early** : Don't wait until the end to check your SVG file size 4. **Gradients over textures** : Simple gradients often look just as good as complex textures 5. **Reuse definitions** : SVG's `<defs>` section is powerful for reducing duplication ## Tools Used * **Inkscape 1.4.2** : Primary design tool * **Text editor** : For manual SVG cleanup and optimization * **SVGO** : Command-line tool for automated SVG optimization (optional) The final logos now serve as the visual identity for both the Mankala game and its engine, with file sizes appropriate for modern web development. ## References & Further Reading * Inkscape Official Documentation - Comprehensive guide to Inkscape features * SVG Optimization Guide by CSS-Tricks - Deep dive into SVG optimization techniques * SVGO GitHub Repository - Automated SVG optimization tool * MDN SVG Tutorial - Learn SVG fundamentals * Inkscape Export Options - Guide to optimized SVG exports * Base64 Encoding and SVG Performance - Understanding the performance impact of embedded images * KDE Visual Design Group - Design guidelines for KDE projects
23.02.2026 00:00 👍 0 🔁 0 💬 0 📌 0
KMyMoney 5.2.2 released ## Overview The KMyMoney 5.2.2 release contains numerous bug fixes and improvements to enhance stability, usability, and performance of KMyMoney. The focus has been on addressing crashes, improving the user interface, and fixing data handling issues. The source code is available on various mirrors world-wide. ## Major Changes and Improvements ### Stability Improvements * **Crash Fixes** : Multiple crash scenarios have been resolved: * Fixed crash when closing split view (Bug 514619) * Fixed crash when closing ledger * Fixed crash when double clicking schedule group header * Fixed crash when applying unassigned difference to split (Bug 515690) * Fixed crash in date entry when data has more than 3 sections (Bug 509701) * Prevented crash by eliminating lambda slot issues (Bug 510209) * Prevented infinite recursion in amount edit widget (Bug 513883) ### User Interface Enhancements * **Keyboard Navigation** : * Fixed numeric keypad handling when NUMLOCK is off (Bug 507993) * Fixed handling of numeric keypad decimal separator * Allow Shift+Return to store a split or transaction * Allow the equal key to increment the date like the plus key (Bug 507964) * Start editing transactions only with specific keys * **Editor Improvements** : * Fixed access to tab order editor inside the schedule editor * Fixed access to tab order editor inside the split editor * Select payee from completer popup with return key (Bug 516300) * Focus out on payee widget takes the selected payee from the popup (Bug 508989) * Use modified values when pressing Return key (Bug 510217) * **Visual Improvements** : * Improved repainting during reconciliation (Bug 514417) * Reduced ‘jumping’ of ledger view * Changed method to paint selected ledger items * Use different background color for transaction and split editor * Improved column selector * Use full view size if account view has only one column (Bug 511890) ### Reports and Charts * **Report Fixes** : * Fixed bug in reports that date column is shown too small (Bug 507843) * Fixed pivot reports with transactions in closed accounts (Bug 511553) * Fixed display of reconciliation report (Bug 507993) * Fixed handling of data range (Bug 512718) * Fix handling of tags in reports (Bug 511104) * **Chart Improvements** : * Include limit lines in balance chart (Bug 513754) * Fixed marker line for credit limits (Bug 513187) * Show balance and value based on current date ### Data Management * **Transaction Handling** : * Don’t clear payee of second split onwards in scheduled tx (Bug 511821) * Allow changing the memo in multiple transactions at once (Bug 513948) * Select new investment transaction created by duplication (Bug 513882) * Fixed generation of payment dates in MyMoneySchedule (Bug 513834) * Assign an initial payee to each split * Partial match on payee name in credit transfer * Fixed removal of splits (Bug 508957) * Clear the split model before loading another transaction (Bug 509138) * **Search and Filter** : * When searching text in the ledger view also consider split memos (Bug 507851) * Also search for transaction ID and date in journal filter (Bug 512748) * Fixed option to hide unused categories (Bug 514445) * Hide zero accounts in payment account section of home page ### Investment Features * **Investment Transaction Editor** : * Fixed price display in investment transaction editor (Bug 507664) * Update label when security changes (Bug 507664) * Don’t modify price widget content if not needed (Bug 509454) * Provide access to zero balance investments even if filtered out ### Budget and Schedule Management * **Budget Improvements** : * Allow to modify the budget year when the first fiscal month is january (Bug 515391) * Set the dirty flag when changing budget name and year (Bug 514221) * Improved setting of the first day in the fiscal year * **Schedule Features** : * Allow modifying loan schedule using schedule editor (Bug 509029) * Keep the schedule type for loans (Bug 513387) * Fixed calculation of number of remaining payments (Bug 509417) ### Categories and Accounts * Allow direct creation of sub-categories (Bug 514987) * Setup sorting of securities to be locale aware (Bug 508529) * Keep column settings in institutions view * Fixed auto increment of check number ### Currency and Localization * The Chilean peso has no fractional part (Bug 286640) * Support date formats using multiple delimiter characters (Bug 510484) * Fixed various i18n calls and translation issues * Replaced unsupported i18n.arg in multiple locations ### Online Banking * Make sure KBanking configuration is stored permanently * Prevent duplicate generation of KBanking settings code * Prevent editing online job when no id is present (Bug 512665) * Show import stats also for Web-Connect imports ### Performance Improvements * Improved file load time * Improved reconciliation performance * Don’t update the home page too often * Prevent starting the transaction editor during filtering (Bug 508288) * Keep selected ledger items only upon first call (Bug 508980) ### Technical Improvements * **Data Integrity** : * Mark file as dirty after modifying user data (Bug 514575) * Report references of splits to unknown accounts and stop loading * Use correct method to determine top level parent id (Bug 507416) * Speedup check if account id references a top-level account group * **Build and Dependencies** : * Fixed build error with Qt 6.10 * Support Qt < 6.8 (Bug 507927) * Add missing find_package for QtSqlPrivate (Bug 509512) * Port libical v4 for function name changes * Port the icalendar plugin to the upcoming libical version 4 * Update flatpak runtime to 6.10 * Various flatpak dependency updates (aqbanking, gwenhywfar, xmlsec, libchipcard) * **Code Quality** : * Prevented variable shadowing * Resolved compiler warnings * Fixed various typos * Removed unused code and header files * Fixed coverity issues (CID 488310, CID 488368) ### VAT Transactions * Fixed Net→Gross UI update in new transaction editor for VAT transactions (Bug 514180) * Don’t clear/replace debit/deposit boxes during autofill ### Home Page * Don’t modify running balance when hiding reconciled transactions globally (Bug 508033) * Fixed display of preferred accounts on home page * Keep current settings of column selector ### Miscellaneous * Don’t provide defaults that cannot be changed through GUI (Bug 514307) * Enable QAction before using it (Bug 508081) * Add option to make ledger filter widget visible permanently * Use unique style for wizards * Move the account selector of the ledger view to the left side * Improved onlinejoboutbox view * Don’t add the commit hash to tagged versions * Start transaction editor if action is triggered (Bug 508420) * Emit signal when returning value from calculator in amount widget (Bug 509135) * Suppress warning about invalid date in KDateComboBox (Bug 509312) ## Bug Fixes by Category ### Critical Bugs Fixed * Bug 507416 – Crash when opening existing database (REOPENED) * Bug 507843 – Link not working on any report * Bug 507664 – ‘Total for all shares’ and ‘fraction’ settings ignored when entering investment buy * Bug 507851 – Text search doesn’t search through transaction’s memo field if written in a single split item ### Additional Bug References Over 50 bugs were addressed in this release. For a complete list, please refer to the KDE Bugzilla. ## Installation and Upgrade ### Upgrading from 5.2.1 This release is a drop-in replacement for 5.2.1. Simply install the new version and your existing data files will work without modification. ### Flatpak Users The flatpak version has been updated with the latest dependencies and includes home filesystem access permission. ## Known Issues * Bug 507416 (crash when opening existing database) has been reopened and is still under investigation for certain edge cases involving legacy data from Skrooge imports. ## Contributors We would like to thank all contributors who helped make this release possible through code contributions, bug reports, translations, and testing. ## Getting Help * Website: https://www.kmymoney.org * Support: https://kmymoney.org/support.html * Bug Reports: https://bugs.kde.org/enter_bug.cgi?product=kmymoney ## License KMyMoney is released under various open source licenses. See the LICENSES folder in the source distribution for details. ## Details A complete description of all changes can be found in the ChangeLog
22.02.2026 12:17 👍 0 🔁 0 💬 0 📌 0
Preview
Parallelizing a Game AI Engine: Root-Level Optimization As part of my Season of KDE work on the Mankala game engine, I am trying to impleemnt root level parallelization to speed up the AI's move evaluation. Here's how I achieved about 2x speedup. ## The Problem: Sequential Move Evaluation The Mankala AI uses the minimax algorithm to evaluate moves, searching 7 levels deep into the game tree. At each level, the tree branches into 6 possible moves, creating ~280,000 positions to evaluate per search. On my Intel i5-11260H system, a single move evaluation took 0.003-0.007 seconds sequentially. While this seems fast, it adds up during gameplay and prevents deeper searches that would make the AI stronger. The solution? Parallelize the move evaluation. ## The Approach: Root-Level Parallelism Root-level parallelism is elegantly simple: evaluate each top-level move on a separate thread. Instead of evaluating moves 0, 1, 2, 3, 4, 5 sequentially, we evaluate them in parallel: Sequential: Parallel (8 threads): Move 0 → [search tree] Thread 0: Move 0 → [search tree] Move 1 → [search tree] Thread 1: Move 1 → [search tree] Move 2 → [search tree] Thread 2: Move 2 → [search tree] Move 3 → [search tree] Thread 3: Move 3 → [search tree] Move 4 → [search tree] Thread 4: Move 4 → [search tree] Move 5 → [search tree] Thread 5: Move 5 → [search tree] This works because each move creates a completely independent search tree—no shared state, no synchronization needed during the search itself. ## Implementation: Five Threading Models Rather than just implementing one approach, I decided to compare five different threading models to see which performed best and which was easiest to maintain. ### 1. OpenMP: The Simplest Solution OpenMP turned out to be the winner for simplicity. A single pragma directive parallelizes the entire loop: int parallelRootMiniMax(Player player, const Rules& rules, const Board& state, int num_threads) { std::vector<int> moves = rules.getMoves(player, state); int best_move = -1; int best_score = N_INFINITY; #pragma omp parallel for schedule(dynamic) num_threads(num_threads) for (size_t i = 0; i < moves.size(); ++i) { Board new_state = state; rules.move(moves[i], player, new_state); Table table; int score = alphaBeta(next_player, rules, new_state, DEPTH - 1, N_INFINITY, P_INFINITY, table).eval; #pragma omp critical { if (score > best_score) { best_score = score; best_move = moves[i]; } } } return best_move; } The `schedule(dynamic)` clause is crucial—it ensures threads grab moves as they finish, automatically balancing the load when some moves take longer to evaluate than others. ### 2. pthreads: Manual Control For comparison, I implemented the same logic using POSIX threads. This required significantly more code—about 60 additional lines for thread creation, data passing, and result collection. While it gave fine-grained control, the performance was nearly identical to OpenMP. ### 3. std::thread: Modern C++ The C++11 std::thread approach provided a cleaner interface than pthreads while maintaining similar performance. I used an atomic counter for dynamic work distribution: std::atomic<size_t> next_move_idx{0}; auto worker = & { while (true) { size_t idx = next_move_idx.fetch_add(1); if (idx >= moves.size()) break; // Evaluate move[idx]... } }; ### 4. Taskflow: Task-Based Parallelism Taskflow provided the highest-level abstraction. I am still in the progress of implementing Taskflow. ### 5. Sequential: The Baseline The sequential version served as our performance baseline, ensuring we could accurately measure speedup. ## The Results: Performance Analysis Testing on my 12-core Intel i5-11260H system inside the Fedora container: ### Thread Scaling (OpenMP) | Threads | Time (s) | Speedup | Efficiency | |---------|----------|---------|------------| | 1 | 0.007 | 0.42x | 42.3% | | 2 | 0.004 | 0.74x | 36.8% | | 4 | 0.003 | 1.19x | 29.7% | | 8 | 0.002 | 2.20x | 27.5% | ### Method Comparison (8 threads) | Method | Time (s) | Speedup | |-------------|----------|---------| | Sequential | 0.004 | 1.00x | | OpenMP | 0.002 | 2.20x | | pthreads | 0.003 | 1.50x | | std::thread | 0.003 | 1.60x | ## Understanding the Numbers The speedup of 2.20x with 8 threads might seem lower than the theoretical maximum of 8x, but there are good reasons: 1. **Very Fast Searches** : At 0.003 seconds, thread overhead dominates 2. **Limited Parallelism** : Only 6 moves to evaluate (not enough work for 8 threads) 3. **Amdahl's Law** : Sequential portions (setup, result collection) limit speedup ## Lessons Learned ### 1. Simplicity Wins OpenMP's single pragma achieved the same performance as 60 lines of manual pthread code. Unless you need fine-grained control, use the simplest approach. ### 2. Dynamic Scheduling Matters Move evaluation times vary significantly. Static work distribution led to load imbalance, while dynamic scheduling kept all threads busy. ### 3. Thread-Local Data is Key Each thread needs its own transposition table. Sharing a table required locking, which killed performance. ### 4. Measure Everything My initial assumption was that pthreads would be fastest due to lower overhead. OpenMP actually performed better due to its sophisticated runtime. ### 5. Context Matters Root-level parallelism is perfect for Mankala's characteristics (6 moves, moderate depth). For games with different properties, other approaches might work better. ## Future Optimizations While root-level parallelism is sufficient for Mankala, there are advanced techniques that could push performance further: * **Parallel Iterative Deepening** : Search multiple depths simultaneously * **Lazy SMP** : Multiple threads with shared transposition table (used in Stockfish) These techniques add significant complexity but can provide 5-10x additional speedups for more complex games. ## Conclusion Implementing root-level parallelism in the Mankala engine achieved a 2.2x speedup with minimal code complexity. The key takeaways: * Root-level parallelism is simple and effective for game AI * OpenMP provides the best balance of simplicity and performance * Always measure—performance intuitions are often wrong The parallelized engine is now faster and more responsive, making the Mankala game more enjoyable to play. And the best part? The code remains simple and maintainable. * * *
22.02.2026 00:00 👍 0 🔁 0 💬 0 📌 0
This Week in Plasma: 6.6 is Here! Welcome to a new issue of _This Week in Plasma!_ This week we released Plasma 6.6! So far it’s getting great reviews, even on Phoronix. 😁 As usual, this week the major focus was on triaging bug reports from people upgrading to the new release, and then fixing them. There were a couple of minor regressions as a result of the extensive work done to modernize Plasma widgets’ UI and code for Plasma 6.6, and we’ve already got almost all of them fixed. In addition to that, feature work and UI improvements roared into focus for Plasma 6.7! Lots of neat stuff this week. Check it all out: ## Notable new features ### Plasma 6.7.0 While in the _Overview_ effect, you can now switch between virtual desktops by scrolling or pressing the `Page Up`/`Page Down` keys! (Kai Uwe Broulik, KDE Bugzilla #453109 and kwin MR #8829) On Wayland, you can optionally synchronize the stylus pointer with the mouse/touchpad pointer if this fits your stylus usage better. (Joshua Goins, KDE Bugzilla #505663) The old print queue dialog has been replaced with a full-featured print queue viewer app, allowing you to visualize multiple queues of multiple printers connected locally or over the network! It still offers a good and normal experience for the common case of having one printer, but now also includes loads of enterprisey features relevant to environments with many printers. (Mike Noe, print-manager MR #280) You can now exclude windows from screen recording using permanent window rules! (Kai Uwe Broulik, kwin MR #8828) Added a new `--release-capture` command-line option to _Spectacle_ that allows invoking it with its “accept screenshot on click-and-release” setting using automation tools. (Arimil, spectacle MR #479) ## Notable UI improvements ### Plasma 6.6.1 The _Custom Tiling_ feature accessed with `Meta`+`T` no longer inappropriately respects key repeat, and therefore no longer becomes practically impossible to open with a very high key repeat rate. (Ritchie Frodomar, KDE Bugzilla #515940) Close buttons on the default “Thumbnails” `Alt`+`Tab` task switcher are now more legible on top of the window thumbnails. (Nate Graham, kwin MR #8830) After Before The _Networks_ widget now shows a more appropriate icon in the panel or _System Tray_ when you disable Wi-Fi. (Nate Graham, plasma-nm MR #526) After Before ### Plasma 6.7.0 The _System Monitor_ app and widgets now respect your chosen “binary unit” choice. This means for example if you’ve asked for file sizes to be expressed as “GB” (gigabyte, or one billion bytes) rather than “GiB” (gibibyte, or 2^30 bytes), the system monitoring tools now respect that. (David Redondo, KDE Bugzilla #453854) If the auto-generated scale factor for a screen is very close to 100%, 200%, or 300%, it now gets rounded to that value, prioritizing performance and visual fidelity. (Kai Uwe Broulik, kwin MR #8742) The _Color Picker_ widget now displays more sensible tooltip and placeholder text when it hasn’t been used yet. (Joshua Goins, kdeplasma-addons MR #1010) After Before Various parts of Plasma now consistently use the term “UEFI Firmware Settings” to refer to UEFI-based setup tools. (Kai Uwe Broulik, plasma-workspace MR #6246 and plasma-desktop MR #3541) The “Terminate this frozen window” dialog now shows a little spinner as it tries to terminate the window, so you don’t think it’s gotten stuck. (Kai Uwe Broulik, kwin MR #8818) The _Widget Explorer_ sidebar now appears on the screen with the pointer on it, rather than always appearing on the left-most screen. (Fushan Wen, plasma-workspace MR #6251) ## Notable bug fixes ### Plasma 6.6.1 Fixed a case where KWin could crash during intensive input method usage. (Vlad Zahorodnii, KDE Bugzilla #506916) Fixed a case where KWin could crash when waking up the system while using the _Input Leap_ or _Deskflow_ input-sharing apps. (David Redondo, KDE Bugzilla #515179) Fixed a case where _Discover_ could crash while trying to install updates. (Harald Sitter, KDE Bugzilla #515150) Fixed a regression that broke drag-and-drop onto pinned _Task Manager_ widget icons. (Kai Uwe Broulik, KDE Bugzilla #516242) Fixed a regression that made certain popups from third-party software appear in the wrong place on the screen. (Vlad Zahorodnii, KDE Bugzilla #516185) Fixed a minor visual regression in the _Zoom_ effect on rotated screens. (Vlad Zahorodnii, kwin MR #8817) Fixed a layout regression that made the _Task Manager_ widget’s tooltip close buttons get slightly cut off for multi-window apps while window thumbnails were manually disabled. (Christoph Wolk, KDE Bugzilla #516018) Fixed a layout regression that slightly misaligned the search bar in the _Kicker Application Menu_ widget. (Christoph Wolk, KDE Bugzilla #516196) Fixed a layout regression that made some _System Tray_ popups always show an unnecessary hamburger menu. (Arjen Hiemstra, KDE Bugzilla #516135) Fixed a regression that made some GTK apps not notice system-wide changes to the color scheme and enter their dark mode. (Nicolas Fella, KDE Bugzilla #516303) Fixed a button added to Plasma 6.6 not having translated text. (Albers Astals Cid, plasma-workspace MR #6305) Fixed server-to-client clipboard syncing in Plasma’s remote desktop implementation. (realies, krdp MR #144) The new _Plasma Login Manager_ introduced in Plasma 6.6 no longer shows accounts on the system that a human can’t actually log into. (Matthew Snow, plasma-login-manager MR #109) Fixed a layout issue that made a label in the panel configuration dialog disappear when using certain Plasma styles. (Filip Fila, KDE Bugzilla #515987) Fixed a layout issue that made the notification dialog too tall for very short text-only notification messages. (Kai Uwe Broulik, plasma-workspace MR #6145) Fixed an issue that set the screen brightness to too low a level on login in certain circumstances. (Xaver Hugl, KDE Bugzilla #504441) Fixed a layout issue that made the song or artist names in the _Media Player_ widget get cut off too early when the widget was placed in a panel in between two spacers. (Greeniac Green, KDE Bugzilla #501166) Improved the _Weather Report_ widget’s reliability with forecasts from the Environment Canada provider. (Eric Soltys, kdeplasma-addons MR #1008) Made the progress indicator built into icons in the _Task Manager_ widget move in the appropriate direction when using the system with a right-to-left language like Arabic or Hebrew. (Oliver Beard, KDE Bugzilla #516053) Custom icons embedded in third-party widgets that appear in the _Widget Explorer_ sidebar now also appear in those widgets’ “About this widget” pages. (Mark Capella, KDE Bugzilla #509896) ### Plasma 6.7.0 Eliminated a source of visual glitchiness with certain fade transitions while using an ICC profile. (Xaver Hugl, KDE Bugzilla #515194) ### Frameworks 6.24 Fixed a case where KDE’s desktop portal could crash when copying certain data over a remote desktop connection. (David Edmundson, KDE Bugzilla #515465) ## Notable in performance & technical ### Plasma 6.6.1 Improved animation performance throughout the system by leaning more heavily on the Wayland _Presentation Time_ protocol. (Vlad Zahorodnii, KDE Bugzilla #516240) ## How you can help KDE has become important in the world, and your time and contributions have helped us get there. As we grow, we need your support to keep KDE sustainable. Would you like to help put together this weekly report? Introduce yourself in the Matrix room and join the team! Beyond that, you can help KDE by directly getting involved in any other projects. Donating time is actually more impactful than donating money. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer, either; many other opportunities exist. You can also help out by making a donation! This helps cover operational costs, salaries, travel expenses for contributors, and in general just keeps KDE bringing Free Software to the world. ## To get a new Plasma feature or a bugfix mentioned here Push a commit to the relevant merge request on invent.kde.org.
21.02.2026 00:03 👍 0 🔁 0 💬 0 📌 0
Second beta for Krita 5.3 and Krita 6.0 Today we're releasing the second beta of Krita 5.3.0 and Krita 6.0.0. Our thanks to all the people who have tested the first beta. We received 49 bug reports in total, of which we managed to resolve 14 for this release. Note that 6.0.0-beta2 has more issues, especially on Linux and Wayland, than 5.3.0-beta2. If you want to combine beta testing with actual productive work, it's best to test 5.3.0-beta2, since 5.3.0 will remain the recommended version of Krita for now. This release also has the new splash screen by Tyson Tan - "Kiki Paints Over the Waves"! To learn about everything that has changed, check the release notes! ## 5.3.0-beta2 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. * 64 bits Windows Installer: krita-x64-5.3.0-beta2-setup.exe * Portable 64 bits Windows: krita-x64-5.3.0-beta2.zip * Debug symbols. (Unpack in the Krita installation folder) ### Linux Note: starting with recent releases, the minimum supported distro versions may change. > [!WARNING] Starting with recent AppImage runtime updates, some AppImageLauncher versions may be incompatible. See AppImage runtime docs for troubleshooting. * 64 bits Linux: krita-5.3.0-beta2-x86_64.AppImage ### MacOS Note: minimum supported MacOS may change between releases. * MacOS disk image: krita-5.3.0-beta2-signed.dmg ### Android Krita on Android is still **_beta_** ; tablets only. * 64 bits Intel CPU APK * 64 bits Arm CPU APK * 32 bits Arm CPU APK ### Source code You can build Krita 5.3 using the Krita 6.0.0.source archives. The difference is which version of Qt you build against. ### md5sum For all downloads, visit https://download.kde.org/unstable/krita/5.3.0-beta2/ and click on "Details" to get the hashes. ## 6.0.0-beta2 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. * 64 bits Windows Installer: krita-x64-6.0.0-beta2-setup.exe * Portable 64 bits Windows: krita-x64-6.0.0-beta2.zip * Debug symbols. (Unpack in the Krita installation folder) ### Linux Note: starting with recent releases, the minimum supported distro versions may change. > [!WARNING] Starting with recent AppImage runtime updates, some AppImageLauncher versions may be incompatible. See AppImage runtime docs for troubleshooting. * 64 bits Linux: krita-6.0.0-beta2-x86_64.AppImage ### MacOS Note: minimum supported MacOS may change between releases. * MacOS disk image: krita-6.0.0-beta2-signed.dmg ### Android Due to issues with Qt6 and Android, we cannot make APK builds for Android of Krita 6.0.0-beta2. ### Source code * krita-6.0.0-beta2.tar.gz * krita-6.0.0-beta2.tar.xz ### md5sum For all downloads, visit https://download.kde.org/unstable/krita/6.0.0-beta2/ and click on "Details" to get the hashes. ### Key The Linux AppImage and the source tarballs are signed. You can retrieve the public key here. The signatures are here (filenames ending in .sig).
20.02.2026 00:00 👍 0 🔁 0 💬 0 📌 0