Wednesday, 9 September 2026
KDE today announces the release of KDE Frameworks 6.30.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
Extra CMake Modules
- List ECM sources explicitly instead of using GLOBS. Commit.
- ECMInstalledLibraryCheck: add more separating linebreaks to generated files. Commit.
- ExecuteKDEModules: add newer KDE modules to test. Commit.
- ExecuteKDEModules: split off support for apple platform, document it. Commit.
- ECMInstalledLibraryCheck: use $cond:string over $IF:cond,string,. Commit.
- Add ECMInstalledLibraryCheck. Commit.
- Ecm_generate_export_header: make VERSION optional, default to PROJECT_VERSION. Commit.
- ECMSetupVersion: support version args in
. and forms. Commit. - ECMSetupVersion: use final hex number in version header, not calculation. Commit.
KCalendarCore
- Use QLocale for concatenating recurrence days. Commit.
- Improve translation contexts for some of the recurrence descriptions. Commit.
- Src/vcalformat.cpp - fix spelling typo in a comment. Commit.
- Adapt recurrenceDescription unit tests to English translations. Commit.
- Add Incidence::recurrenceDescription. Commit.
- Fix Incidence::statusName property name. Commit.
- Add translated enum names for Incidence::secrecy and Incidence::status. Commit.
- Change parseScheduleMessage to take a QByteArray as input. Commit.
- Add translated names for attendee status and role enums. Commit.
- Fix tr() message context. Commit.
- Expose Calendar and ScheduleMessage to python bindings. Commit.
- Add translated error messages. Commit.
KCMUtils
- Documentation fixes. Commit.
- Fix documentation for SettingsStateBinding. Commit.
- Fix docs for KQuickManagedConfigModule. Commit.
- Kcmutils_generate_module_data: add missing var init, for safer usage. Commit.
- Add missing EXCLUDE_DEPRECATED_BEFORE_AND_AT default variable declaration. Commit.
- No longer explicitly include CMakeParseArguments. Commit.
- Fix types in QML documentation. Commit.
KCodecs
- [KEncodingProber] Fix signedness issues for mBestGuess index. Commit.
- [KEncodingProber] Return 0.0 confidence if encoding signals wrong syntax. Commit.
- [KEncodingProber] Clean up float constants and C-style static casts. Commit.
- [KEncodingProber] Drop charlen tables from state machine models. Commit.
- [KEncodingProber] Remove need for charlen table from MBCS probers. Commit.
- [KEncodingProber] Remove some erroneously copied comment. Commit.
- [KEncodingProber] Remove no longer used method. Commit.
- [KEncodingProber] SBCS: Replace model pointer with reference. Commit.
- [KEncodingProber] SBCS: Replace unbounded array pointer with span. Commit.
- [KEncodingProber] Move sequence counter sum out of loop. Commit.
- [KEncodingProber] Test for Cyrillic encodings (and Unicode reencodings). Commit.
- [KEncodingProber] Test for ASCII only UTF-16 encoded texts. Commit.
KColorScheme
- Kcolorschemetest: explicitly cast enum values to int for arithmetic ops. Commit.
KFileMetaData
- Reenable Qt 6.12 CI. Commit.
- [PostscriptDscExtractor] Fix time offset parsing for Qt 6.12. Commit.
- [PostscriptDscExtractor] Modernize QString usage. Commit.
- [SimpleExtractionResult] Fix copy constructor. Commit.
- [EmbeddedImageData] Remove some dead, unreachable code and data. Commit.
- Fix a few nodiscard warnings for QFile::open. Commit.
- [ExtractorPlugin] Allow alias names when matching extractor mimetypes. Commit. Fixes bug #522678
- [kfilemetadata_dump] Provide information about cover images etc. Commit. See bug #500113
- [FFmpegExtractor] Extract cover image from Matroska streams. Commit. See bug #500113
- [FFmpegExtractorTest] Move test class declaration to implementation file. Commit.
KGuiAddons
- Add geo: URI handler for Cartes. Commit.
- Add support to pass along the unmodified geo: URI in an URL template. Commit.
- Fix geo: URI query string encoding. Commit.
- Reuse explicitly provided image data. Commit. Fixes bug #519651
- Waylandclipboard: Check isInterruptionRequested in prepare read loop. Commit. Fixes bug #517743
KImageformats
- Jp2: Fix new[] vs delete by not doing new[]. Commit. Fixes bug #525120
- QRoundOrZero_T: fix possible assert in qRound. Commit. Fixes bug #524678
- Autotests: Add non-standard HEIF image. Commit.
- Heif: re-enable decoding of non-standard images. Commit. Fixes bug #495686
- Add HEIC test files with crop transformation. Commit.
- Heif: check crop values. Commit.
- Jxl: Do not rewind after reading final frame. Commit.
- Rgb: reject RLE start offsets that underflow the raster data. Commit.
- Avif: Do not rewind in jumpToNextImage(). Commit.
- Ossfuzz: call functions used in animations. Commit.
KIO
- Bring KSycoca::setupTestMenu code here. Commit.
- Copyjob: name the copy lists for what they hold. Commit.
- KUrlNavigator: Set the frameShape to StyledPanel. Commit.
- KDirModel: Pass UTC time to KFormat::formatRelativeDateTime(). Commit.
- Drop duplicated explicit install() call on kio_help plugin. Commit.
- KDirSortFilterProxyModel: Avoid creating QDateTime instance. Commit.
- [ftp] Send commands in upper case consistently. Commit. Fixes bug #523927
- Autotests: Run the http worker tests as part of the suite. Commit.
- Http: Keep one network manager for the life of the worker. Commit.
- KOpenWithDialog: fix pattern matching in filterAcceptsRow(). Commit. Fixes bug #524085
- Previewjob: drop the synchronous cached-thumbnail lookups. Commit.
- Desktopexecparsertest: fix typo in installation var. Commit.
- Desktopexecparsertest: add missing quotes for a string definition argument. Commit.
- Previewjob: make the previews in the order they were asked for. Commit.
- File worker: reserve an entry for the fields it always carries. Commit.
- Kcoredirlister: let the list of items grow instead of sizing it per batch. Commit.
- Http: Keep a large request body out of memory. Commit.
- Kmountpoint: Write the Latin-1 strings as literals. Commit.
- Kmountpoint: add SupportsFileCloning for COW filesystems. Commit.
- PreviewJob: Read cached thumbnails in bounded batches before generating. Commit.
- Gui: Read and write the thumbnail cache in one place. Commit.
- PreviewJob: add cachedPreview() for a synchronous cache-only lookup. Commit.
- Kfileitemactions: test service menu submenu. Commit.
- Kfileitemactions: fix submenu lifetime using main menu as the parent. Commit. Fixes bug #524239
- Http: Report how far an upload has got, not what the answer weighs. Commit. Fixes bug #518511
- Avoid MIME content-sniffing on slow filesystems. Commit.
- Systemdprocessrunner: Handle when unit returns failure. Commit.
- Don't show percent-encoded strings for items of desktop:/ IO worker. Commit. Fixes bug #522470
- KIO: hand what a message carries over as it is within a process. Commit.
- Properties: show how much room a folder takes up, not only its data. Commit. Fixes bug #457363
- Jobtest: set the language the expected text is written in. Commit.
- Filepreviewjob: Check remote-skip conditions before checking mimetype. Commit.
- File: ask statx for the permission bits that are read from its answer. Commit.
- File: let a folder with the setgid bit give a copied file its group. Commit. Fixes bug #399270
- File worker: ask for the mount of the destination while looking at it. Commit.
- File worker: create copy destinations relative to a pinned directory fd. Commit.
- OpenURLJob: Stop reading BrowserApplication from kdeglobals. Commit.
- KMountPoint: cache mount lookups by unique mount id. Commit.
- Autotests: verify KFileCopyToMenu prunes missing recent destinations. Commit.
- Autotests: test for non_existing directories removed. Commit.
- Kfilecopytomenu: Limits max entries and removes unavailable links from the list. Commit.
- Git-blame-ignore-revs: add code reorganization commits. Commit.
- Kfileitemactions: reorder functions for better readability. Commit.
- Openurljobtest: wait for the launched processes before ending a test. Commit.
- Autotests: ask the mime database which type a test means. Commit.
- Openurljob: open a shell script rather than refuse it as a program. Commit. Fixes bug #522948
- Knewfilemenu: reorder execute functions to match the order they are called in slotActionTriggered. Commit.
- Knewfilemenu: allow overriding system templates with local templates. Commit. Fixes bug #473991
- Knewfilemenu: set application link title to not be misleading. Commit. Fixes bug #520949
- Knewfilemenu: fix relative symlinks. Commit. Fixes bug #508444
- RenameFileDialog: offer the rename operation of the last rename. Commit. Fixes bug #523932
- RenameFileDialog: free what the dialog owns. Commit.
- SlaveBase: do not take a missing total for a finished transfer. Commit.
- DeleteJob: pass on the bytes its rmdir subjob reports. Commit.
- Kio_file: delete a tree natively on unix, and report the bytes deleted. Commit.
Kirigami
- Fix typo in documentation. Commit.
- Remove wrong API documentation marker. Commit.
- Pull TODO out of API documentation. Commit.
- Fix \since syntax. Commit.
- Fix documentation syntax in ScenePosition. Commit.
- Fix documentation syntax in PagePool. Commit.
- Fix documented QML import name. Commit.
- Add missing \inherits to C++ types. Commit.
- Mark SafeArea as internal. Commit.
- Fix parameter name in documentation. Commit.
- Add missing parameter marker in documentation. Commit.
- Add missing full stops in documentation. Commit.
- Remove non-functional link. Commit.
- Remove * from QML API documentation comment. Commit.
- Qml-format InlineViewHeader. Commit.
- Qml-format LinkButton. Commit.
- Fix type name in documentation. Commit.
- Add explicit \inherits where needed. Commit.
- ColumnView: better layout for pinned items. Commit.
- ListItemDragHandle: stop the dropAnimation if one is still running. Commit. Fixes bug #517233
- InlineMessage: Use smallSpacing for the label also on its right. Commit.
- Typo--. Commit.
- SwipeListItem: add a deprecated notice. Commit.
- SwipeListItem: Don't make the content item overlap the icons. Commit. Fixes bug #518436
- Forms/flat: Fix padding calculation for subtitle. Commit.
- Flat/FormGroup: remove unused import. Commit.
- Flat/FormGroup: make spacing around headings more like FormLayout. Commit.
- Flat/FormGroup: simplify layout. Commit.
- Flat/FormGroup: make header more accurate to FormLayout. Commit.
- OverlaySheet: make the scrim darker. Commit. Fixes bug #447965
- Fix Overlaysheet touchscreen behavior. Commit.
- Drop unneeded AUTOMOC_MOC_OPTIONS. Commit.
- FormGroup(cards): fix resize loop. Commit.
- Drop explicit CMake settings duplicatd from KDECMakeSettings. Commit.
- Include KDECMakeSettings/KDEFrameworkCompilerSettings early. Commit.
- Remove duplicated KDEInstallDirs module include. Commit.
- Forms: Explicitly specify individual paddings when setting padding. Commit.
- Units::eventFilter: fix to react just to font change of app instance. Commit.
- FormEntry: make it possible to get the inner spacing. Commit.
- FormEntry: make spacing more consistent. Commit.
- Finish making GlobalDrawer.isMenu behave the same everywhere. Commit.
- ImageColors: de-flake test_extractColors. Commit.
- Kirigami app template: use PROJECT arg with ecm_setup_version(). Commit.
- FormEntry(flat): make sure the trailing area is actually fillHeight. Commit.
- Add another safety check before automatically popping hidden pages. Commit.
- FormEntry(flat) some minor fixes. Commit.
- FormEntry(flat) some minor fixes. Commit.
- FormEntry(all): rename forceExpanedContents with fullWidth. Commit.
- Form: center contents only horizontally. Commit.
- FormEntry (both): completely propagate Layout properties. Commit.
- FormEntry(cards): fix the flipping of switches. Commit.
- FormEntry (flat): reorganize the internal layout. Commit.
- FormEntry: make links inthe subtitle clickable. Commit.
- FormEntry: introduce forceExpandedContents. Commit.
- Docs: Explicitly ignore basictheme_p.h in Platform documentation. Commit.
- Docs: Suppress "can't link to index.html" warnings. Commit.
- Docs: Don't generate documentation for private types. Commit.
- Forms: Fix documentation of FormAlignmentGroup members. Commit.
- Forms: Fix documentation of FormGroup type. Commit.
- Docs: Ensure the Forms module is properly included in indices. Commit.
- Icon: Don't try to load empty fallback icons. Commit.
- Set implicitwidth at 3d gridunits only for cards layout. Commit.
- Keep the ToolBarPageFooter menu inside the SafeArea. Commit.
- Make the Page globalFooter page property a QQC2.Page type. Commit.
- Keep ToolBarPageFooter buttons inside the SafeArea. Commit.
KJobWidgets
- Kjobcreator: Fix tab order. Commit.
KNotifications
- Notificationtester: Add URL text field. Commit.
KTextEditor
- Only show bracket match preview if the view is visible. Commit.
- Vi-mode: Fix append to block for tabs. Commit.
- Vi-mode: Fix cursor column swap with tabs. Commit.
- Vi-mode: Fix operations in selection ranges with tabs. Commit.
- Vi-mode: Fix success message for non-successful save commands. Commit. Fixes bug #473077
- Vi-mode: Fix "save all" command for unnamed files. Commit.
- Fix resolution for KateVi::Range debug operator. Commit.
- Vi-mode: Implement filename registers. Commit.
- Vi-mode: Fix yank highlight for blocks with tabs. Commit.
- Vi-mode: Simplify method to detect waiting for characters. Commit.
- Vi-mode: Refactor the method for leaving insert mode. Commit.
- Vi-mode: Fix checks for setting user marks. Commit. Fixes bug #520734
KWallet
- Properly handle when the portal fails to open the wallet. Commit.
- Remove unused variable. Commit.
- Remove some default function args. Commit.
- Ksecretd: Remove unused method parameters. Commit.
- Remove leftovers from KSecretsService. Commit.
- Ksecretd: Remove unused sessionTimeout parameter from pamOpen. Commit.
- Ksecretd: Remove wrong comment. Commit.
- Remove unused WId parameter from sync(). Commit.
- Drop KSecretD::sync. Commit.
- Ksecretd: Fix Completed argument when dismissing collection creation. Commit.
- Ksecretd: Drop appId. Commit.
- Drop defunct Leave Open option from kcfg. Commit.
- Ksecretd: Remove unused force parameter from internalClose(). Commit.
- Ksecretd: Drop CloseCancelled handling. Commit.
- Remove unneeded KSecretD::networkWallet. Commit.
- Drop unneeded KSecretD::doCloseSignals. Commit.
- Ksecretd: Drop unused walletOpened signal. Commit.
- Ksecretd: Make sure collection is reported as unlocked after PAM unlock. Commit. See bug #459287
- Ksecretd: Make parameter names consistent. Commit.
- Ksecretd: Drop unneeded intermediate function. Commit.
- Drop long-time commented out code. Commit.
- Add missing KWALLET_BUILD_DEPRECATED_SINCE in cpp file. Commit.
- Add desktop file for kwalletd. Commit.
- Run clang-format. Commit.
- Drop dead CMake code for tests. Commit.
- Deprecate Wallet::requestChangePassword(). Commit.
- Deprecate Wallet::lockWallet(). Commit.
- Deprecate Wallet::sync(). Commit.
- Ksecretd: Remove unused force parameter from close(). Commit.
- Ksecretd: Drop KWalletSessionStore. Commit.
- Drop unused handleSession from ksecretd. Commit.
- Drop Close When Idle handling from kwalletd. Commit. Fixes bug #524500
- Propagate locked status from backend to kwalletd. Commit.
- Add formatting commit to ignore list. Commit.
- Drop isPath handling. Commit.
- Drop unused function. Commit.
- Fix logic errors in internalOpen. Commit. Fixes bug #524373. Fixes bug #524592
- Autotests: fix dependency version var name. Commit.
- Fix memory leaks in kwalletd. Commit.
- Add Leave Manager Open to kcfg file. Commit.
- Export kcfg file in CMake config. Commit.
- Drop pseudo access control for wallet. Commit.
KWindowSystem
- Remove outdated & unused CMakeFindFrameworks include. Commit.
Oxygen Icons
- Fixes. Commit.
- More fixes. Commit.
- Bug fixing. Commit.
- Missing icon sizes. Commit.
- Minor bug fix. Commit.
- Add go-parent-folder icons for Bug 524878. Commit.
- Minor fix i hope to a rendering bug. Commit.
- Another derivative icon. Commit.
- More bug fixing. Commit.
- Bug fixing. Commit.
- New size and clean up, the symbolic needs to point to point to a correct version of the icons for how its used in plasma, renaming on the applet to the correct linked version would be more optimal IMO. Commit.
- Miss commit fix. Commit.
- New icon for KDebugSettings. Commit.
- Small improvements. Commit.
- More sizes. Commit.
- Just for testing. Commit.
- Aparently forgot to submit the source svg. Commit.
- 32X32 AND 22X22 OF KTIMER ICON VERSIONS. Commit.
- Improvement in visibility. Commit.
- New icon. Commit.
- Renaming. Commit.
- Missed an icon raster. Commit.
- Fixing a bug and removing the faoux backlight. Commit.
- New ktimer icon still missing the small sizes. Commit.
Syntax Highlighting
- Add DotEnv syntax highlighting. Commit.
- Repository.h: Make Repository::eventFilter() protected. Commit.
- Syntax/yaml.xml: Have BuildStream files use the yaml highlighter. Commit.
- Associate .envrc files with Bash. Commit.
- Add KDL syntax highlighting. Commit.
- Add Just syntax highlighting. Commit.
- Initialize more cmake variables explicitly. 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.30.0 may be freely downloaded. Instructions on compiling and installing are available from the KDE Frameworks 6.30.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.30.0 requires Qt 6.9.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.