KDE Frameworks 5.104.0

Saturday, 11 March 2023

KDE today announces the release of KDE Frameworks 5.104.0.

KDE Frameworks are 83 addon libraries to Qt which provide a wide variety of commonly needed functionality in mature, peer reviewed and well tested libraries with friendly licensing terms. For an introduction see the KDE Frameworks release announcement.

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


  • extactor: add KAboutData

Breeze Icons

  • Add draw-number

Extra CMake Modules

  • Load translations for application-specific language also on Win and Mac (bug 464694)
  • ECMGenerateExportHeader: fix duplicated addition of deprecation macros code
  • Find wayland.xml from wayland-scanner.pc


  • Don’t include screen connector names in screen position/size data (bug 460260)
  • Fix multimonitor window size restoration (bug 460260)
  • Sort connector names for multi-screen size/position keys (bug 460260)


  • KConfigDialogManager: Fix logs formatting


  • Deprecate KPluginMetaData::initialPreference
  • Convert BugReportUrl in desktoptojson (bug 464600)
  • exportUrlsToPortal: stop fusing remote urls (bug 457529)
  • Show deprecation warning about desktoptojson tool


  • Guard nullable property access, and bind instead of assigning once
  • AbstractKCM: Rewrite padding expressions to be more readable
  • Add import aliases, bump internal import versions as needed
  • Drop unused QML imports
  • [managedconfigmodule] Fix deprecation comments
  • [configmodule] Deprecate constructor without metadata
  • [configmodule] Deprecate setAboutData


  • Install version header


  • Mobi extractor: only extract what is asked (bug 465006)


  • Skip reloading global registry settings instead of asserting


  • Add holidays for Dominican Rebublic (bug 324683)
  • Kf5 add cuba holidays (bug 461282)
  • holidayregion variable ‘regionCode’ shadows outer function


  • KI18nLocaleData target: add include dir for version header to interface
  • Load translations for application-specific language also on Win and Mac (bug 464694)


  • Properly mark panel icon group as deprecated
  • Deprecate KIconLoader overloads in KIconButton and KIconDialog


  • wayland: Guard wayland object destructors (bug 465801)


  • DeleteOrTrashJob: when trashing a file in trash:/ delete it instead (bug 459545)
  • Set bug report URL for Windows Shares KCM (bug 464600)
  • OpenFileManagerWindowJob: fix opening multiple instances under Wayland [KF5] (bug 463931)
  • Add missing URLs in KCMs for reporting bugs (bug 464600)
  • kshorturifilter: return directly if cmd is empty
  • [kprocessrunner] Use aliased desktop file name for xdg-activation


  • Dialog: Don’t let user interact with footer during transitions
  • For styling and recoloring, use down property instead of pressed
  • Fix mistyping of Kirigami.Settings.isMobile


  • KDescendantProxyModel: Do not remove indexes from mapping before announcing the removal


  • DownloadItemsSheet: Fix scrolling (bug 448800)

KPackage Framework

  • Check pluginId contains ‘/’ before using it as package type (bug 449727)


  • Install version header


  • KF5KRunnerMacros: Add compat code and warning for in KF6 renamed configure_krunner_test macro


  • Fix deprecation ifdef
  • Deprecate KService::serviceTypes and KService::hasServiceType
  • application: Add X-SnapInstanceName
  • Add method to query supported protocols for a service


  • Improve cstyle performance (bug 466531)
  • Improve performance of rendering spaces with dyn wrap disabled (bug 465841)
  • documentSaveCopyAs: Use async job api (bug 466571)
  • Optimize rendering spaces with dyn wrapping (bug 465841)


  • Remove extra semicolon
  • Deprecated KWindowSystem::allowExternalProcessWindowActivation
  • [kstartupinfo] Deprecate setWindowStartupId
  • [kstartupinfo] Deprecate KStartupInfo::currentStartupIdEnv
  • [kstartupinfo] Fix API docs for currentStartupIdEnv


  • settings: fix -Wlto-type-mismatch in NetworkManager::checkVersion decl


  • KPrisonScanner target: add include dir for version header to interface


  • Place Purpose::Menu headers into C++ namespace subdir, w/ compat headers


  • ProgressBar: Pause indeterminate animation when invisible
  • Added flat combobox without outline unless hovered
  • TextField: Fix password-protection code from affecting normal text fields (bug 453828)
  • Drawer: Fix RTL by copying sizing code from upstream Default style
  • Drawer: Use simpler sizing expressions from upstream Default style
  • Don’t check for selectByMouse on a non-existent root for TextArea
  • use again the palette coming from Kirigami.Theme (bug 465054)
  • Only enable TextArea context menu when able to select by mouse

Security information

The released code has been GPG-signed using the following key: pub rsa2048/58D0EE648A48B3BB 2016-09-05 David Faure faure@kde.org Primary key fingerprint: 53E6 B47B 45CE A3E0 D5B7 4577 58D0 EE64 8A48 B3BB

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 5.104.0 may be freely downloaded. Instructions on compiling and installing are available from the KDE Frameworks 5.104.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 5.104.0 requires Qt 5.15.2.

A detailed listing of all Frameworks and other third party Qt libraries is at inqlude.org, the curated archive of Qt libraries. A complete list 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