Skip to content
K

Release Announcements

KDE Frameworks 6.21.0

Friday, 12 December 2025

KDE today announces the release of KDE Frameworks 6.21.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
  • [FileContentIndexer] Minor cleanups. Commit.
  • [FileContentIndexer] Some cleanup for DBus related private slots. Commit.
Breeze Icons
  • Fix installation of dark icons with WITH_ICON_GENERATION=OFF. Commit.
  • Add fifteenpuzzle and fifteenpuzzle-symbolic icons. Commit. Implements feature #504973
  • Add .nim mimetype icons. Commit.
Extra CMake Modules
  • ECMAddTests: add functions and variables to preset test name prefix. Commit.
  • Typo--. Commit.
  • FindInotify: Fix behavior on the CMake reconfiguration. Commit.
  • FindInotify: Teach to locate the native inotify impl on systems. Commit.
  • Ecm_add_test: make TARGET_NAME_VAR & TEST_NAME_VAR official. Commit.
KArchive
  • 7z: Fix infinite loop in malformed file. Commit.
KCMUtils
KCodecs
  • [KEncodingProber] Some more tests for UTF-8. Commit.
  • [KEncodingProber] Make UTF-8 state machine RFC3629 compliant. Commit.
  • [KEncodingProber] Add unit tests for UTF-8/UTF-16. Commit.
  • [KEncodingProber] Remove DEBUG_PROBE from public header file. Commit.
KColorScheme
  • Use Qt API instead of KColorSchemeWatcher. Commit.
  • Include QVariant instead of relying on transitive include. Commit.
  • Run clang-format. Commit.
  • Fix clang-format directive. Commit.
  • Simplify KColorSchemeManager code. Commit.
KConfig
  • KConfigIniBackend::parseConfig: reuse allocated buffer to read group name. Commit.
  • Use ECM_TEST_NAME_PREFIX. Commit.
  • Fix FindNext shortcut on macos. Commit.
  • Fix documentation of KSharedConfig::openStateConfig. Commit.
  • Kconfig_target_kcfg_file docs: add "since" note. Commit.
  • Kconfig_target_kcfg_file: avoid recreating same kcfgc file each cmake run. Commit.
  • KF6ConfigMacros: No longer explicitly include CMakeParseArguments. Commit.
  • Kconfig_benchmark: add testParsing benchmark. Commit.
  • KconfigIni: stream parse ini files. Commit. Fixes bug #48702
  • [kwindowconfig] Remove weird note from documentation. Commit.
KContacts
KCoreAddons
  • Update fuzzy matching logic changes from Kate. Commit. Fixes bug #511664
KDav
KDeclarative
  • DeclarativeDragArea: Filter mouse events according to acceptedButtons(). Commit. Fixes bug #384009
KDE Daemon
KDocTools
  • Update user.entities for pt-BR. Commit.
  • Included missing entities at user.entities (pt-BR). Commit.
KGlobalAccel
  • Call unregister() and setInactive() asynchronously. Commit.
KGuiAddons
  • Deprecate KColorSchemeWatcher. Commit.
  • WaylandClipboard: Avoid overriding original UTF-8 text. Commit.
  • SystemClipboard: Destroy old data source after set_selection or set_primary_selection. Commit.
  • Systemclipboard: Dont offer utf8 text again if it's already in the data. Commit.
KHolidays
  • DE-BY: Buß- und Bettag is a school holiday since 1995. Commit. Fixes bug #512302
KI18n
  • Qml: expose a LocalizedContext singleton as KI18n. Commit.
KImageformats
  • Add allocation limit test (0/256 MiB). Commit.
  • AllocationLimit = 0 means no limit. Commit.
  • Fix various typos in the codebase. Commit.
  • XCF: initialize tiles and buffers. Commit.
  • HDR: fix uninitialized buffer. Commit.
  • PSD: add support for GrayA (8/16/32 bit) and Gray 32 bit. Commit.
  • PSD: fix use of uninitialized tmp image. Commit.
  • EXR: fix of uninitialized RGB read buffer. Commit.
  • RGB: fix Use-of-uninitialized-value. Commit.
  • HDR: readHeader() sanity checks. Commit.
  • PSD: return error if a complete line is read/decompressed. Commit.
KIO
  • Kfileplacesview: remove DropAction::MoveAction from the list of supportedActions. Commit. Fixes bug #509231
  • RenameDialog: Add "Compare Files" button. Commit.
  • Use ECM_TEST_NAME_PREFIX. Commit.
  • Add braces around single-line if statements. Commit.
  • KFileItem: Remove or shorten timezone in timeString. Commit.
  • KFileWidget: Guard empty selection when double clicking. Commit.
  • Remove unneeded Q_Q. Commit.
  • Fix creating links to subdirectories of desktop links. Commit. Fixes bug #479350
  • RenameDialog: Set devicePixelRatio on PreviewJob. Commit.
  • RenameDialog: Use KContextualHelpButton. Commit.
  • KPropertiesDialog: Use KFileItem::timeString. Commit.
  • FilePreviewJob: Abort preview if no plugin is found. Commit. Fixes bug #511305
  • Http: Use operation with known verb, if applicable. Commit. Fixes bug #492178
  • FilePreviewJob: After stat'ing the file, report the data back. Commit.
  • Pastejob: Emit ERR_USER_CANCELED when closing paste filename prompt. Commit. Fixes bug #493075
  • Revert "KFileItemActions: Don't show hidden services on Open With menu". Commit. Fixes bug #508607
  • Kurlnavigator: show focus indicator. Commit. See bug #150718. See bug #428440
  • KCoreDirLister: stop looking back at mount points. Commit.
  • KProcessRunner: Avoid setting bogus working directory. Commit.
  • Kfilefilter: workaround to crash in Qt 6.11. Commit.
  • Systemd: prevent passing invalid env vars starting with digit. Commit. Fixes bug #510968
  • Kmountpoint: do not follow symlink before getting realpath. Commit.
  • Trash: don't fallback to home trash if trash is unavailable. Commit. Fixes bug #502315. Fixes bug #481532
  • Trash: force confirmation for ERR_TRASH_FILE_TOO_LARGE. Commit. Fixes bug #475235
  • Escape /* inside comment. Commit.
  • Copyjob: Fallback to file-based progress when byte size is unavailable. Commit. Fixes bug #511241
Kirigami
  • SwipeListItem: Add back checking for parent width and implicitWidth. Commit.
  • Add extra margin only for default title. Commit.
  • Documentation fixes. Commit.
  • Document requirements for new components. Commit.
  • Add TitleSubtitleWithActions. Commit.
  • ListItemDragHandle: Drop outdated comment about DelegateRecycler. Commit.
  • ColumnView: fix re-pushing pages still in pop animation. Commit.
  • Ensure _BREEZEICONS_DIR contains a REAL_PATH. Commit.
  • Update the PageRow.interactive docs for current reality. Commit.
  • HandleButton: fix visibility. Commit.
  • PageRow: fix sidebar open/close animation. Commit.
  • SwipeListItem: Make layout work well after ItemDelegate changes. Commit.
  • Temporarily drop test case that is broken with Qt 6.11. Commit.
  • Chip: change remove button label to avoid assuming what the chip represents. Commit.
  • Chip: make close button work when not interactive. Commit.
  • Make Chip behave more like common Qt Quick Controls. Commit.
  • Add a missing icon to kirigami_package_breeze_icons. Commit.
  • BannerImage: Add property to control heading icon size. Commit.
  • Fix link to api.kde.org. Commit.
  • Controls/AboutItem: align author buttons in fixed column. Commit.
  • SearchDialog: Properly disable search field shortcut. Commit.
  • PrivateActionToolButton: Do not show tooltip if it's identical to text. Commit.
  • OverlayDrawer: fix handle icons. Commit.
  • ApplicationHeader: Make top toolbars the same height/spacing as QWidget ones. Commit.
  • Controls/AboutItem: adjust heading stylings. Commit.
  • ApplicationHeader: Make top toolbars height more consistent. Commit.
  • KF6KirigamiMacros: remove unnecessary CMakeParseArguments. Commit.
  • Globaltoolbar/NavigationButtons: fix Back button in RtL. Commit. Fixes bug #511295
  • DrawerHandle: don't show the handle if is not handleVisible. Commit.
  • Address memory leaks in PagePool. Commit.
  • OverlayDrawer: Move handles in the toolbar. Commit.
  • Documentation typo in DefaultCardBackground component. Commit.
  • AbstractCard: Use default command in documentation. Commit.
  • Card: Remove default value documentation for actions. Commit.
  • IconPropertiesGroup: Fix a few documentation mistakes. Commit.
  • Include qtqml tags in our documentation build. Commit.
  • Abstractapplicationwindow: clarify when to use it. Commit.
  • Page: Fix undefined error when using a Page in a ColumnView outside of a PageRow. Commit.
  • Add cppcheck to CI. Commit.
KJobWidgets
  • Fix double free of JobView in KUIServerV2JobTracker. Commit.
KNotifications
  • Fix build with Qt 6.10 on Android. Commit.
KPackage
KRunner
  • ResultsModel: Include QMimeData. Commit. Fixes bug #511228
  • Emit historyChanged() when history changed. Commit. See bug #507588
  • KF6KRunnerMacros: remove unnecessary CMakeParseArguments. Commit.
KService
KSVG
  • Remove unused signal. Commit.
  • Simplify ImageSet config file handling. Commit.
  • Remove FallbackImageSet config handling. Commit.
  • Wrap useGlobal handling in deprecation macro. Commit.
  • Wrap ImageSet metadata handling in deprecation macro. Commit.
  • Drop unused variable. Commit.
  • Add test for ImageSet::filePath. Commit.
  • Add test for currentImageSetHasImage. Commit.
  • Rename imageSetChanged parameter. Commit.
  • Test ImageSet file selectors. Commit.
  • Drop iconImageSetMetadataPath. Commit.
  • Reduce scope of themeMetadataPath variable. Commit.
  • Remove KDirWatch leftovers. Commit.
  • Run clang-format. Commit.
  • [imageset] Preserve basePath when calling setImageName. Commit.
  • Add Alpine CI build. Commit.
  • Correct some typos in FrameSvg docs. Commit.
  • Clarify what FrameSvg insets are. Commit.
  • Clarify what FrameSvg margins are. Commit.
  • Add FrameSvg::insets(). Commit.
  • Add QMargins getters for margins in FrameSvg. Commit.
  • Fix deprecation syntax. Commit.
  • [imageset] Deprecate metadata. Commit.
  • [imageset] Deprecate setCacheLimit. Commit.
  • [imageset] Deprecate setUseGlobalSettings. Commit.
  • [imageset] Remove unused isDefault. Commit.
  • [imageset] Remove Plasma theme version handling. Commit.
  • Don't use QDir::separator. Commit.
KTextEditor
KTextTemplate
  • Examples: Align cmake_minimum_required versions in examples/ w/ root file. Commit.
KUserFeedback
  • CI - Flatpak - Update Runtime to 6.10. Commit.
KWallet
  • Always reload collections prior to secret_service_get_collections. Commit. Fixes bug #512135
KWindowSystem
  • Use ECM_TEST_NAME_PREFIX. Commit.
  • Use XDG_ACTIVATION_TOKEN env variable for setCurrentXdgActivationToken(). Commit. See bug #509990
KXMLGUI
  • Ktooltiphelper.cpp: fix hint text color. Commit.
QQC2 Desktop Style
  • *Delegate: Update the paddings of all other delegates. Commit.
  • ComboBox: fix paddings. Commit. Fixes bug #512914
  • ItemDelegate: support custom paddings. Commit.
  • DefaultListItemBackground: make alternating background touch the edges. Commit.
  • SwipeDelegate: same behavior between SwipeDelegate and ItemDelegate. Commit.
  • ItemDelegate: More padding/inset to ItemDelegate to match ToolBar paddings. Commit. Fixes bug #487653
  • Consistent toolbar heights with QWidget applications. Commit.
  • DefaultListItemBackground: hide hover effect when control is disabled. Commit.
Solid
  • Fix some missing overrides in win backend. Commit.
  • Backends/udisks2: register "AvailableAnswer" before use. Commit.
  • Upower: expose WearableBattery battery type. Commit.
  • Predicate_parser: prevent an unused warning. Commit.
Sonnet
  • Use ECM_TEST_NAME_PREFIX. Commit.
  • Hunspell: load flatpak sources as well. Commit.
  • Adapt CMake version 4.1 or later. Commit.
Syntax Highlighting
  • Add new QML keywords. Commit.
  • Spdx-comments.xml: update SPDX licenses. Commit.
  • Add support for new wayland interface delimiter. Commit.
  • Fix(cmake.xml): CACHE{name} also can be in if, elseif, and while. Commit.
  • Misc: update comment in cmake.xml generator. Commit.
  • Update cmake refs to new hl state. Commit.
  • Replace regex where possible with plain string matching. Commit.
  • Cmake.xml: update syntax for CMake 4.2. Commit.
  • Highlight Kaitai Struct (.ksy) files as YAML. Commit.
  • Add tool for generating Jinja highlighting and use it on some languages. Commit.
  • CSV: tolerate spaces before double quotes (#38). Commit.
  • Fix import context rule order and update test reference files. Commit.
  • Fix backslash in symbolops entity for proper /\ operator matching. Commit.
  • Merge operator rules to satisfy CI indexer. Commit. Fixes bug #512318
  • Haskell: fix backslash operator tokenization. Commit. Fixes bug #512318
  • Syntax: Add blueprint-compiler syntax highlighting. 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.21.0 may be freely downloaded. Instructions on compiling and installing are available from the KDE Frameworks 6.21.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.21.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.