Friday, 14 November 2025
KDE today announces the release of KDE Frameworks 6.20.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
Breeze Icons
- Fix up "starred-*" icons. Commit. Fixes bug #511152
- Add RTL versions of open-link icon. Commit. Fixes bug #506268
- Provide external-link-symbolic as an alias to open-link-symbolic. Commit.
- Try to avoid to depend on stuff generated by CMake. Commit.
- Add 16px version of the RTL document-send icon. Commit. See bug #509254
- Add document-send RTL version. Commit. Fixes bug #509254
- Make only 24 px generation a parameter. Commit.
- Try to avoid that we have targets that run always. Commit.
Extra CMake Modules
- Generate-fastlane-metadata.py use https://kde.org/donate. Commit.
- Strip username and password from Fastlane source URLs. Commit.
- KDEClangFormat: Avoid error w/ CMP0175 enabled. Commit.
- [FindFFmpeg] Skip version check on Windows. Commit.
- KDE*CompilerSettings: add note why no cmake_policy is set. Commit.
- Public KDE-specific modules: set module cmake_policy. Commit.
- Module templates: set module cmake_policy. Commit.
- Public general modules: set module cmake_policy. Commit.
- Public find modules: set module cmake_policy. Commit.
- ECMGenerateExportHeader: set module cmake_policy, not just one policy. Commit.
- ECMGenerateExportHeader: do not push/pop module policy explicitly. Commit.
- ECMQmlLoader: generic languages should have lower precedence. Commit. Fixes bug #509902
- FindFFmpeg: add AVFILTER and SWRESAMPLE components. Commit.
- Add FindFFmpeg.cmake used by many KDE project. Commit.
- Fix QML modules to be rebuilt all the time with Qt5. Commit.
- Ecm_generate_headers: support headers in clang vs. deduplicated header files. Commit.
- CMakeLists.txt - remove trailing '/' to fix CMP0177 warning. Commit.
- ECMSetupQtPluginMacroNames: fix setting up names for own build. Commit.
Framework Integration
- Kpackage-install-handlers: check file.open result. Commit.
KArchive
- Use CamelCase Qt include. Commit.
- 7z: Change for{if{}} to if{for{}}. Commit.
- Autotests/kcompressiondevicetest.cpp spell check. Commit.
- 7z: Fix infinite loop in malformed file. Commit.
- Ktar: Fix/Tweak the skip error condition. Commit.
- Add nodiscard attribute to open(...) declarations. Commit.
- Ktar: Optimize memory allocations. Commit.
- KTar: Use skip instead of seek for skipping. Commit.
- TestTarReadWrite: Also test with KCompressionDevice. Commit.
- Add some const. Commit.
- 7z: Fix assert/crash in malformed file. Commit.
- Explicitly convert enum to int for QString::arg. Commit.
- 7z: Break early on failure in K7ZipPrivate::folderItem. Commit.
KCompletion
- Use QCOMPARE vs QVERIFY. Commit.
KConfigWidgets
- Use QCOMPARE vs QVERIFY. Commit.
KContacts
- Use default. Commit.
- Add deathdate in vcardtool. Commit.
- Add Q_PROPERTY. Commit.
- Add DeathDate vcard4 support. Commit. See bug #337759
- Minor optimization. Commit.
- Add missing [[nodiscard]]. Commit.
- Add [[nodiscard]] ignore commit. Commit.
- Modernize use "[[nodiscard]]". Commit.
- Allow to translate resource type. Commit.
- Fix use QVERIFY/QCOMPARE. Commit.
- Prepare to implement sound type support. Commit.
- Version is used here. Commit.
- We need to implement vcard4 sound support. Commit.
- This check was already done some line ago. Commit.
- Type can be lower case. Fix import emails. Commit.
- Remove namespace. Commit.
- Fix some cppcheck warnings. Commit.
- Fix autotest. Commit.
- Fix ANNIVERSARY/BDAY support in vcard 4.0. Commit. See bug #337759
- Add support for importing image vcard 4. Commit. See bug #337759
- Load vcard4 photo uri. Commit.
- Const'ify. Commit.
- Add debug operator. Commit.
- Add LOGO vcard4 support. Commit. See bug #337759
- Allow to export photo as uri. Commit.
- Store photo support. Commit.
- Add photo vcard4 support. Commit. See bug #337759
- Const'ify variable. Commit.
- Extract code. Commit.
- Add photo v4 support. Commit.
- Add missing Q_REQUIRED_RESULT. Commit.
- Remove unused include. Commit.
KCoreAddons
- Add missing include moc. Commit.
- Typo--. Commit.
- Use QCOMPARE vs QVERIFY. Commit.
- Update test expectation. Qt time formatting has changed. Commit.
- Fix the non-local license text. Commit.
- Switch to std::enable_if_t (API consumers now required to use >= C++17). Commit.
- Fix duplicate license text for known but externally linked licenses. Commit.
KDBusAddons
- Remove unnused enum. Commit.
KDE Daemon
- Use newer version of session management enablement. Commit.
KFileMetaData
- [ExtractorCoverageTest] Fix typo in clang-format processing directive. Commit.
KIconThemes
- [kiconcolors] Drop ActiveText. Commit.
- [kiconcolors] Drop Complement and Contrast. Commit.
- InvalidateFilter is marked deprecated in qt6.10. Commit.
- Use QCOMPARE vs QVERIFY. Commit.
- Remove version checks for Qt 6.8.0 that is now the minimum required. Commit.
- Avoid saving state between multiple usages of IconDialog. Commit. Fixes bug #460451
KImageformats
- PSD: limit memory usage on corrupted files. Commit.
- Fix assert on broken data. Commit.
- PSD: minor fixes while reading Image resource Section. Commit.
- IFF: fix crash on malformed files. Commit.
- Iff: Fix crash on malformed files. Commit.
- PSD: improve sections size checks. Commit.
- TGA: ignoring large metadata on dev area. Commit.
- Check device before read. Commit.
- Fix possible infinite loop when reading a broken jp2. Commit.
- On demand buffer allocation on PCHG decompression. Commit.
- Fix possible read overflow with malformed data. Commit.
- Fix wrong palette check. Commit.
- Use internal FP32 conversion instead of FP16. Commit.
- Fix read test failing on aarch64. Commit.
- Remove Qt version checks now that 6.8.0 is the minimum required. Commit.
- Fix assert on broken data. Commit.
- CI: Try newer libjxl for ossfuzz. Commit.
- Tga: Reduce Warning to Debug. Commit.
- Fix crash on malformed files. Commit.
- Fix crash on malformed files. Commit.
KIO
- Add missing since documentation. Commit.
- Kfileitemactions: use actionsKey instead of name to check KAuth. Commit.
- [ktelnetservice] Disable session management. Commit.
- [kioexec] Disable session management. Commit.
- [kiod] Use better way to disable session management. Commit.
- Trashimpl: better determine trashForMountPoint for network file systems. Commit. Fixes bug #506755
- KNewFileMenu: prevent emiting rejected signals when not rejected. Commit.
- Knewfilemenu: when in mkdir -p mode don't append a / for last dir. Commit.
- Kioworkers/file: check QFile::open return and early return. Commit.
- KCoreDirLister: Enable using mime globs. Commit. Fixes bug #450612
- Reenable kdirlister test on non-Windows. Commit.
- KIO::MetaData::toVariant(): document internal type of returned variant. Commit.
- Autotests: enable connectionbackendtest. Commit.
- Apply 1 suggestion(s) to 1 file(s). Commit.
- Autotests: favicontest make a test more fault tolerant in Win. Commit.
- [http] Emit WorkerResult::pass() and return when a redirection is received during webdav directory listing. Commit.
- [http] Remember that we're doing webdav while handling redirects. Commit. Fixes bug #486790
- Kifileitemactions: Remove unused QMimeDatabase instance creation. Commit.
- KIO::MetaData: port inline methods away from deprecated QMapIterator. Commit.
- Previewjob: expose standardthumbnailer fileName property. Commit.
- File_unix: print errnum in rename when failing. Commit. See bug #510810
- Kpasswdserver: Set cancel button on dialog. Commit.
- JobTest: add renameFileWithNoUDSACCESS test. Commit. See bug #510567
- Kfileitems: Use internal name again for sorting. Commit. Fixes bug #510470
- Add typo fix commit to .git-blame-ignore-revs. Commit.
- Fix various typos. Commit.
- Use QCOMPARE vs QVERIFY. Commit.
- RenameDialog: wrap the question text. Commit.
- Ensure QNetworkReplies are always deleted with a scope guard. Commit.
- Fix HTTP network error propagation. Commit.
- Forward all KIO error codes, not just ERR_ACCESS_DENIED. Commit.
- Delete network reply also when handling a redirection. Commit.
- Autotest/jobtest: make sure to check error return when a job fails. Commit.
- CopyJob: Skip permission check if there is no UDS_ACCESS entry. Commit. Fixes bug #510567
- KFileWidgets: Allow saving to currentfolder with empty input field in special cases. Commit. See bug #507193
- KFilePlaces: add a link to systemsettings recent config. Commit. Fixes bug #507966
- [ftp] Claim that dir is writable during stat. Commit. Fixes bug #510456
- KNewFileMenu: move the messageWidget below the input. Commit.
Kirigami
- Fix documentation for AlignedSize. Commit.
- Add missing FrameContrast enum documentation. Commit.
- Fix documentation for closeDialog. Commit.
- Keep passive notifications inside the SafeArea. Commit.
- ActionTextField: don't let inline buttons accept focus on click. Commit.
- ActionTextField: use display property to control icons-only-ness. Commit.
- OverlayDrawer: Fix handle positioning on RTL layouts. Commit.
- Fix accessibile properties on ActionTextField properties. Commit.
- Support menus in bottom ActionToolbars. Commit.
- Feat: Expose closeDialog as a signal to the PageStack attached property. Commit.
- ActionTextField: adopt some good ideas from the PlasmaExtras version. Commit.
- ActionTextField: use standard implementation for inline action buttons. Commit. Fixes bug #484301
- Use reversed open-link when needed and present. Commit. See bug #506268
- PageRow: Fix dialogs not being closable via Escape. Commit.
- PlatformTheme: setFrameContrast value. Commit.
- CardsListView: Make sure it never will have horizontal scrolling. Commit. Fixes bug #477493
- Cmake: Add missing icon for android. Commit.
- ActionsMenu: Restore the icon for submenus. Commit.
- PageRow: Different style for the push/pop animation/gesture. Commit.
- Make Separator always perfectly pixel-aligned. Commit. Fixes bug #510353
- Fix up overlay sheet header content width w.r.t close button. Commit.
- Fix up overlay sheet's close button location. Commit.
- Platform: Include child Quick items when updating child PlatformTheme instances. Commit. Fixes bug #510480
- Remove outdated comment. Commit.
- Typo fix. Commit.
- SelectableLabel: Only enable shortcuts if the label has focus. Commit.
- Platform: Skip update() in PlatformTheme if we don't have a window. Commit. Fixes bug #493921
KItemModels
- Remove Qt version checks now that 6.8.0 is the minimum required. Commit.
KQuickCharts
- Limit item count in ItemBuilder to basically uint16_t. Commit.
KTextEditor
- Remove unnecessary toEdge function. Commit.
- Use KateViewInternal::Bias in move() signature. Commit.
- Use void return type. Commit.
- Remove the loops in the cursors. Commit.
- Remove unnecessary methods and const overloads. Commit.
- Remove operator overloading. Commit.
- Remove unnecessary constructors. Commit.
- Remove Bias::none enumerator. Commit.
- Make function internal to the class. Commit.
- Remove useless getter function. Commit.
- Improve the test, use higher level api. Commit.
- Move findMatchingFoldingMarker to KateBuffer. Commit.
- Cleanup includes in kateviewinternal.h. Commit.
- Include kateviewinternal.h less. Commit.
- Move include to source file. Commit.
- Move spellcheck function from DocumentPrivate. Commit.
- Remove useless function. Commit.
- Remove unused function. Commit.
- Add QJsonObject. Commit.
- Cleanup headers, deinline and remove unnecessary includes. Commit.
- Use normal function pointer, std::function is not needed here. Commit.
- Dont use std::pair/QPair, use named structs. Commit.
- Add API to obtain the editor widget from View and vice versa. Commit.
- Clear modeline matches if the model is irrelevant. Commit.
- Add new config entries to public api docs. Commit.
- Add "hide-cursor-if-inactive". Commit.
- Add disable-current-line-highlight-if-inactive view option. Commit.
- Simplify kateprinter, remove unnecessary KatePrinterPrivate class. Commit.
- Make KateVariableExpansionManager a non QObject. Commit.
- Move expandText to the file where its used. Commit.
- Optionally return invalid cursor for coordinates outside text. Commit.
- Kateview_test: extract lambda coordinatesToCursor(). Commit.
- Explicitly convert enum to int for QString::arg. Commit.
KUserFeedback
- Properly handling large timeouts for encouragement timer. Commit. Fixes bug #511102
- Use const pointer. Commit.
- Add missing explicit keyword. Commit.
- Port deprecated invalidateFilter method (qt6.10). Use beginFilterChange/endFilterChange. Commit.
- Use QCOMPARE vs QVERIFY. Commit.
- Remove old qt check. Commit.
KWallet
- Use QCoreApplication for kwallet-query. Commit.
- Remove unused QtWidgets dep from API. Commit.
- Enable KCrash for kwalletd6. Commit.
- KSecretd: Use modern way of disabling session management. Commit.
- Kwalletd: Disable session management. Commit.
- Fix dismissing prompt for Unlock. Commit.
- Use securelySeeded like in KWalletPortalSecrets::generateSecret. Commit.
- Backend: Simplify random gathering to QRandomGenerator. Commit.
KWindowSystem
- Platforms/wayland: Prevent reinstalling window effects with the same parameters again. Commit.
- Kwaylandextrastest: Port to UI file. Commit.
- Remove Qt version checks now that 6.8.0 is the minimum required. Commit.
- Fix creating empty future. Commit.
- Fix KWaylandExtras::xdgActivationToken when KWindowSystemPrivateV3 isn't available. Commit.
Sonnet
- Remove double margins around groupbox. Commit.
- Fix load default ignore list when we call slotDefault method. Commit.
- Add missing [[nodiscard]]. Commit.
- Use [[nodiscard]]. Commit.
- Show headers in qtc. Commit.
- Ensure parent is alive when removing eventfilters. Commit. Fixes bug #492444
- Add SpellCheckDecorator destruction autotests. Commit. Fixes bug #492444
Syndication
- Show headers in qtc. Commit.
Threadweaver
- Use QCOMPARE vs QVERIFY. 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.20.0 may be freely downloaded. Instructions on compiling and installing are available from the KDE Frameworks 6.20.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.20.0 requires Qt 6.5.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.