Friday, 13 February 2026
KDE today announces the release of KDE Frameworks 6.23.0.
This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner.
New in this version
Baloo
- [IndexCleaner] Use one transaction for each excludeFolder during cleanup. Commit.
- [Extractor] Split long extraction runs into multiple transactions. Commit.
- [Extractor] Release DB write lock while content is extracted. Commit.
- [Benchmarks] Replace QTextStream::readLine with QStringTokenizer. Commit.
- [Benchmarks] Verify /proc open result for IO stats. Commit.
- Enable LSAN in CI. Commit.
- [Engine] Replace remaining raw PostingIterator* with unique_ptr. Commit.
- [SearchStore] Replace raw PostingIterator* with unique_ptr. Commit.
- [PostingIterator] Clean up unused headers. Commit.
- [AdvancedQueryParser] Use categorized logging for debug message. Commit.
- [Transaction] Fix invalid qWarning macro usage. Commit.
- Use categorized logging in priority setup code. Commit.
- Clean up priority setup code. Commit.
- [baloo_file] Use categorized logging for warnings. Commit.
- [QueryTest] Fix leak of iterator returned from executed query. Commit.
- [Engine] Fix possible memory leaks in PhraseAndIterator. Commit.
- [Engine] Fix possible memory leaks in {And,Or}PostingIterator. Commit.
- [FileIndexScheduler] Emit correct state on startup. Commit.
- [FileIndexScheduler] Simplify startup/cleanup logic. Commit.
- [IndexerConfig] Properly deprecate obsolete API. Commit.
- [BalooSettings] Enable Notifiers for changes. Commit.
- [FileIndexerConfig] Move filter update to constructor. Commit.
- [balooctl] Minor config command output cleanup, fix error message. Commit.
- [PendingFile] Add proper debug stream operator. Commit.
- [PendingFile] Inline trivial internal method. Commit.
- Use Baloo namespace for KFileMetadata::ExtractionResult specialization. Commit.
Breeze Icons
- Add update-busy status icon. Commit.
- Make base 22px globe icon symbolic. Commit.
- QrcAlias.cpp - pass canonical paths to resolveLink. Commit.
- Make the non-symbolic version of globe icon to be colorful. Commit.
- Create symbolic version for preferences-system-network. Commit.
- Enable LSAN for leak checking. Commit.
- Fix kdeconnect-symbolic icons not being color-aware. Commit.
- Properly resolve links for the resources. Commit.
Framework Integration
- Enable LSAN in CI. Commit.
KArchive
- K7ZipPrivate::folderItem: Limit the amount of folderInfos to a "reasonable" amount. Commit.
- 7zip: defines to constexpr (or commented out if unused). Commit.
- 7zip: make it clear we only support an int number of files. Commit.
- 7zip: convert a bunch of int to qsizetype. Commit.
- 7zip: Remove unused defines. Commit.
- 7zip: Add names to function parameters. Commit.
- 7zip: Use ranges::any_of. Commit.
- 7zip: Convert loops into range-for loops. Commit.
- 7zip: Add [[nodiscard]]. Commit.
- 7zip: Mark 3 qlist parameters as const. Commit.
- 7zip: Mark sngle argument constructors as explicit. Commit.
- 7zip: Use "proper" C++ include. Commit.
- 7zip: Remove unused BUFFER_SIZE. Commit.
- 7zip: Use default member initializer. Commit.
- Enable LSAN in CI. Commit.
- KLimitedIODevice: mark two member variables as const. Commit.
- Kzip: Bail out if the reported size of the file is negative. Commit.
- Fix OSS-Fuzz AFL builds. Commit.
KBookmarks
- Enable LSAN in CI. Commit.
KCodecs
- Protect against null bytes in RFC 2047 charsets. Commit.
- Remove a few temporary allocation on RFC 2047 decoding. Commit.
- [KEndodingProber] Drop broken and irrelevant ISO-2022-CN/-KR detectors. Commit.
- [KEncodingProber] Remove disabled, obsolete GB2312 data. Commit.
- [KEncodingProber] Reduce packed model data boilerplate. Commit.
- [KEncodingProber] Replace pack/unpack macros with constexpr functions. Commit.
- [KEncodingProber] Add tests for ISO-2022-JP and HZ encoding. Commit.
- Enable LSAN in CI. Commit.
- [KEncodingProber] Remove unused byte pos member from CodingStateMachine. Commit.
- [KEncodingProber] Add prober benchmarks. Commit.
- Fix quadratic complexity when searching for the encoded word end. Commit.
- Use QByteArrayView. Commit.
- Don't detach encoded8Bit during encoding. Commit.
- Fix OSS-Fuzz AFL builds. Commit.
KColorScheme
- Enable LSAN in CI. Commit.
KConfig
- Kconfigwatcher: prevent a QThreadLocal to be creatde when exiting. Commit.
- Fix macos standard shortcut conflicts. Commit. Fixes bug #512817
- Kconfigwatcher: Add context argument to connect. Commit.
- Kconfigskeletontest: Fix memory leak. Commit.
- Enable LSAN in CI. Commit.
- KConfigIni: parseConfig simplify implementation. Commit.
- Doc: KConfig: update link introduction. Commit.
- KConfig: better handle Anonymous case. Commit.
- Autotests/qiodevice: add a test for the QFile case. Commit.
- Kconfig_target_kcfg_file: use newer built-in cmake code to create kcfgc file. Commit.
- Kconfigxt: Add KCONFIG_CONSTRUCTOR option. Commit.
- Kconfigskeleton: Add ctor using std::unique_ptr
. Commit. - Kconfig: support passing in a QIODevice. Commit.
KDBusAddons
- Enable LSAN in CI. Commit.
KDeclarative
- Enable LSAN in CI. Commit.
KDE Daemon
- Enable LSAN in CI. Commit.
KGlobalAccel
- Enable LSAN in CI. Commit.
KGuiAddons
- Add Android support for idle inhibition. Commit.
- WaylandClipboard: fix pasting text when QMimeData also has an image. Commit. Fixes bug #513701
- Add KSystemInhibitor as frontend to the xdg-desktop-portal inhibition system. Commit.
- Restore building with wayland < 1.23.0. Commit.
- Ksystemclipboard: Check m_thread in destructor. Commit. Fixes bug #514512
- Examples/python: add an example for KSystemClipboard. Commit.
- Python: fix crash when using KSystemClipboard::setMimeData. Commit.
- Python: specify enum type for KKeySequenceRecorder::Pattern. Commit.
- KImageCache: make findPixmap destination QPixmap have alpha channel if inserted QPixmap had alpha channel. Commit.
- Add another explicit moc include to source file for moc-covered header. Commit.
KImageformats
- Fix oss-fuzz AFL build (again). Commit.
- Fix OSS-Fuzz AFL builds. Commit.
- Text -> test. Commit.
- IFF: add uncompressed RGFX support. Commit.
- IFF: add CD-i Rle7 support. Commit.
- Decode Atari ST VDAT chunks. Commit.
- IFF: add support for CD-i YUVS chunk (and minor code improvements). Commit.
- Add support for CD-I IFF images. Commit.
- Add JXL testfile which previously triggered crash. Commit.
- Jxl: fix crash on lossy gray images. Commit.
- Add gray AVIF files with various transfer functions. Commit.
- Avif: Improved color profiles support. Commit.
KIO
- Add missing since documentation. Commit.
- Add ThumbnailRequest::maximumFileSize. Commit.
- KFilePlacesEventWatcher: Set drag disabled on invalid index and on headers. Commit. Fixes bug #499952
- Fileundomanager: prevent mem leak upon destruction. Commit.
- Core/ListJob: add list Flags ExcludeDot, ExcludeDotDot. Commit.
- Dropjob: add DropJobFlag::ExcludePluginsActions flag support. Commit. See bug #509231. Fixes bug #514697
- DropJob: Polish QMenu before creating native window. Commit.
- Tests: kfilewidgetttest in dropfiles make sure to clean up QMimeData*. Commit.
- FilePreviewJob: Let StatJob resolve symlinks. Commit.
- DropJob: Use CommandLauncherJob for drop onto executable. Commit.
- RenameDialog: Also show file item metadata when thumbnail failed. Commit.
- Dropjob: handle drop from Places View properly. Commit. See bug #509231. Fixes bug #514697
- PreviewJob: Ignore ERR_INTERNAL. Commit.
- KFilePlacesView: better compute the maximum size of icon tolerable. Commit.
- KFileWidget: When navigator loses focus, apply the uncommittedUrl to navigator. Commit.
- RenameDialog: Use size and mtime from preview job stat, too. Commit.
- Listjob: use modern for loop. Commit.
- Listjob: reduce nesting in recurse function. Commit.
- Listjob: split listing entries into a filter and a recurse function. Commit.
- RenameDialog: Fix grammar by adding a comma. Commit.
- Fix binary compatibility. Commit.
- Tests/kfilewidgettests: add command line args the open test. Commit.
- KFilePreviewGenerator: pass dpi to the PreviewJob. Commit. Fixes bug #489298
- Kmountpoint: use statx to get device id. Commit.
- KFileItemActions: Add "Run Executable" action for executable files. Commit.
- Udsentry: add documentation for UDS_SUBVOL_ID. Commit.
- Kioworkertest: add UDS_MOUNT_ID output for stat. Commit.
- StatJob: add StatMountId to retrieve unique mount id. Commit.
- KFilePlacesModel: Add placeCollapsedUrl. Commit.
- FilePreviewJob: Set job error, if applicable. Commit.
- KDirOperator: implement single tap gesture. Commit. Fixes bug #513606
- KCoreDirLister: Add parentDirs of dirs that have not been deleted to pendingUpdates list. Commit. Fixes bug #497259
- KMountpoint: remove redundant code, and reuse a function. Commit.
- PreviewJob: prevent potential crash when FilePreviewJob yields results sync. Commit.
- PreviewJob: estimate device ids first. Commit.
- KDirModel/KFileWidget: Use relative date formatting for Modified field. Commit.
- Listjob: replace misleading comment about repeated key lookups. Commit.
- Stat_unix: document that statx(dirfd wouldn't be any faster. Commit.
- Kioworkers/file: check temp file opening result. Commit.
- Autotests: fix unused warnings. Commit.
- KUrlNavigatorButton: Don't set a button icon. Commit.
- Kioworkertest: add subvolId output for stat. Commit.
- StatJob: add StatSubVolId to retrieve btrfs/bcachefs subvol number. Commit.
- Job: improve property management performance. Commit.
- Job: update mergeMetaData code to be more modern + comment. Commit.
- Udsentry: improve operator>> performance. Commit.
- KPropertiesDialog: Remove unused variable. Commit.
- PreviewJobPrivate: remove unused method declaration. Commit.
- Use QList::takeFirst instead of QList::front & QList::pop_front. Commit.
- PreviewJob: dissolve struct PreviewItem, serves no extra purpose. Commit.
- FilePreviewJob::item(): return const ref to KFileItem directly, by only use. Commit.
- PreviewJob: introduce internal struct PreviewSetupData, to group related data. Commit.
- PreviewJob: introduce internal struct PreviewOptions, to group related data. Commit.
- PreviewJobPrivate: rename determineNextFile to startNextFilePreviewJobBatch. Commit.
- PreviewJob: create PreviewItem instance on-the-fly. Commit.
- PreviewJobPrivate: rename member initialItems to fileItems. Commit.
Kirigami
- ToolbarLayout: Don't draw frames with an empty toolbar. Commit. Fixes bug #512396
- Make the global background actually invisible. Commit.
- Enable back button on first page in RTL. Commit. Fixes bug #511295
- ActionToolBar: fix actions showing both in toolbar and in hidden actions menu. Commit.
- Add new Kirigami logo. Commit.
- Revert "Temporarily drop test case that is broken with Qt 6.11". Commit.
- MnemonicAttached: move to primitives. Commit.
- Fix inline drawers in RTL layout. Commit.
- Do an opacity animation for the menu layers. Commit.
- GlobalDrawer: default size according to contents. Commit. Fixes bug #505693
- SelectableLabel: don't break coordinates of global ToolTip instance. Commit. Fixes bug #510860. Fixes bug #511875
- Controls/SwipeListItem: fix action positions in RtL. Commit.
- ShadowedRectangle: Improve visuals when blending a texture. Commit.
- Make types more explicit for tooling. Commit.
- Make action handling linter-friendly. Commit.
- Templates/private: fix qmldir. Commit.
- Placeholdermessage: don't bind maximum to explicit width. Commit.
- PlaceholderMessage: handle unusually long text better. Commit. Fixes bug #514164
- BannerImage: Don't shadow implicitWidth property. Commit.
- Fix Android icon bundling. Commit.
KItemViews
- Enable LSAN in CI. Commit.
KJobWidgets
- Enable LSAN in CI. Commit.
KNotifications
- Enable LSAN in CI. Commit.
KNotifyConfig
- Enable LSAN in CI. Commit.
KStatusNotifieritem
- Enable LSAN in CI. Commit.
KTextEditor
- Some tests for setVirtualCursorPosition. Commit.
- Add small test for virtual column conversions. Commit.
- Fix fromVirtualColumn. Commit.
- Proper handling of tabs in virtual cursor setting. Commit. Fixes bug #513898
- Proper handling of tabs in virtual cursor setting. Commit. Fixes bug #513898
- Handle any unicode newline sequence during paste. Commit.
- Fix typo. Commit.
- Enable LSAN in CI. Commit.
- Avoid to leak ranges. Commit.
- Don't leak memory. Commit.
- Don't leak a cursor. Commit.
- Ensure we call the cleanups. Commit.
- Don't leak cursors. Commit.
- Fix leaking of completion moving ranges. Commit.
- We re-parent this, use a QPointer to be sure we know if that is still alive. Commit.
- Fix leak in TextBuffer::balanceBlock. Commit.
- Don't leak cursor and range. Commit.
- Avoid to leak the document. Commit.
- Don't leak cursors & ranges. Commit.
- Fix memleak in vi mode mark handling. Commit.
- Don't leak the mainwindow. Commit.
- Ensure the document dies with the toplevel widget. Commit.
- Avoid to leak doc in some tests. Commit.
- Fix memleak in KateLineLayoutMap. Commit.
- Don't leak the document in some tests. Commit.
- Avoid to leak memory in testing. Commit.
- Disable CamelCursor by default. Commit.
- Fix since 6.23 & comments. Commit.
- Docs: Mention that code folding highlight is also disabled. Commit.
- Move bracket highlight suppression to view update logic. Commit.
- Add option to disable bracket match highlight when inactive. Commit.
- Clear m_speechEngineLastUser early to avoid that it is used in error handling for speechError. Commit. Fixes bug #514375
KTextWidgets
- Enable LSAN in CI. Commit.
KUserFeedback
- Enable LSAN in CI. Commit.
KWidgetsAddons
- KPageView: Check for valid indices during list search. Commit. Fixes bug #496143
- Kactionmenu: Use delegating constructor. Commit.
- Add test for KActionMenu. Commit.
- Clean up touch device in tests. Commit.
- Kpageview: Don't leak NoPaddingToolBarProxyStyle. Commit.
- Kacceleratormanagertest: Don't leak action. Commit.
- KCollapsibleGroupBox: Fix arrow indicator not updating immediately. Commit.
KXMLGUI
- Avoid toLower, use case insensitive comparison. Commit.
- De-duplicate case insensitive string equality functions. Commit.
- Fix memory leaks in unit tests. Commit.
- Enable LSAN in CI. Commit.
- Drop (wrong kind of) asserts in KToolTipHelperPrivate code. Commit.
- Replace pointer with optional. Commit.
- Replace simple slot with lambda. Commit.
- Remove pointless QKeySequence->QVariant conversion. Commit.
- Use raw pointers for some commonly used classes's pimpl pointer. Commit.
Prison
- Consistently namespace ZXing version defines. Commit.
- Remove workarounds for ZXing 3.0 not having bumped its version yet. Commit.
- Adapt to more ZXing 3.0 API changes. Commit.
- Actually search for ZXing 3. Commit.
- Fix build without ZXing. Commit.
- Support ZXing 3 for barcode generation. Commit.
- Auto-detect text vs binary content for GS1 Databar barcodes. Commit.
- Enable LSAN in CI. Commit.
- Adapt barcode scanner to ZXing 3 changes. Commit.
- Port away from deprecated ZXing API. Commit.
QQC2 Desktop Style
- Menu: Calculate implicitHeight from visibleChildren. Commit. Fixes bug #515602
- ItemDelegate: Give a bigger padding to the last item. Commit. Fixes bug #513459
- Combobox: use standard menu styling for popup. Commit. See bug #451627
- SearchField: add manual test. Commit.
- Add SearchField. Commit.
- Enable LSAN in CI. Commit.
- Kquickstyleitem: Avoid divide by zero. Commit.
Solid
- Fix(fstab): Return valid URLs for NetworkShare for smb mountpoints. Commit.
- Documentation fixes. Commit.
- Add displayName() implementation to UDev backend with vendor/product deduplication. Commit.
- Extract vendor/product fallback logic into reusable utility function. Commit.
- Improve device vendor/product lookup with hwdb fallback. Commit.
- [UdevQt] Reduce allocations in decodePropertyValue helper. Commit.
- Free lexer-allocated data also when parsing fails. Commit.
- Enable LSAN in CI. Commit.
- Use delete instead of deleteLater() when DevicePrivate refcount drops to 0. Commit. Fixes bug #513508. Fixes bug #494224. Fixes bug #470321. Fixes bug #513089. Fixes bug #513921
- Avoid crash on device removal. Commit. Fixes bug #514791
- Add missing ejectRequested to OpticalDrive interface. Commit.
- Add missing override in winopticaldrive. Commit.
- Add missing signals to StorageAccess backends. Commit. Fixes bug #514176
- Add missing overrride in winstorageaccess. Commit.
- Fix macOS build: Replace make_unique with explicit new for private IOKitDevice constructor. Commit.
- Use more precise type for m_reverseMap. Commit.
- Replace _k_destroyed slot with lambda. Commit.
- Don't call setBackendObject() in DevicePrivate dtor. Commit.
- Remove unneeded intermediate variables. Commit.
- Manage backend object using unique_ptr. Commit.
- Remove unneeded destroyed handling for backend object. Commit.
- Manage DeviceInterface using unique_ptr. Commit.
- Devicemanager: remove unused includes. Commit.
Syndication
- Enable LSAN in CI. Commit.
Threadweaver
- Enable LSAN in CI. Commit.
Installing binary packages
On Linux, using packages for your favorite distribution is the recommended way to get access to KDE Frameworks. Get KDE Software on Your Linux Distro wiki page
Compiling from sources
The complete source code for KDE Frameworks 6.23.0 may be freely downloaded. Instructions on compiling and installing are available from the KDE Frameworks 6.23.0 Info Page.
Building from source is possible using the basic cmake .; make; make install commands. For a single Tier 1 framework, this is often the easiest solution. People interested in contributing to frameworks or tracking progress in development of the entire set are encouraged to use kdesrc-build. Frameworks 6.23.0 requires Qt 6.8.0.
A detailed listing of all Frameworks with API documentation is on api.kde.org.
Get Involved
Those interested in following and contributing to the development of Frameworks can check out the git repositories and follow the discussions on the KDE Frameworks Development mailing list. Policies and the current state of the project and plans are available at the Frameworks wiki. Real-time discussions take place on the #kde-devel IRC channel on Libera Chat.
Supporting KDE
KDE is a Free Software community that exists and grows only because of the help of many volunteers that donate their time and effort. KDE is always looking for new volunteers and contributions, whether it is help with coding, bug fixing or reporting, writing documentation, translations, promotion, money, etc. All contributions are gratefully appreciated and eagerly accepted. Please read through the Supporting KDE page for further information or become a KDE e.V. supporting member through our Join the Game initiative.