Calamares 3.3.0-alpha4 released

Oct 13, 2023

Another alpha along the road to Calamares 3.3, this one contains a huge amount of internal changes to cross off two items on the TODO list: Qt6 compatibility and QML support, and normalizing the C++ namespace used by Calamares. We’re happy to have contributors helping out with the porting and with new features in Calamares modules.

For -alpha5 Anke has fixes to all the QML lined up, Adriaan has Python bindings figured out, so expect that one fairly quickly.

This release contains contributions from (alphabetically by first name):

  • Adriaan de Groot
  • Anke Boersma
  • Emir Sari
  • Evan James
  • Hector Martin
  • Ivan Borzenkov
  • Simon Quigley


  • Qt6 compatibility. You can choose Qt5 (with KDE Frameworks 5) as before, or choose Qt6 (with KDE Frameworks 6). This means that a Qt6-based Linux distribution can use Calamares without needing an extra version of Qt. Note that some KDE Frameworks are required as well, and those need to be Qt6-based also (and are not released as of September 2023).
  • QML-based modules are also supported in Qt6, but the QML is likely to be source-incompatible. The welcomeq module shipped with Calamares now has two .qrc files and uses the ${QT_VERSION_SUFFIX} variable to pick one of the two depending on the Qt version being used. Other modules are likely to follow the same pattern.
  • C++ namespaces have been shuffled around and CalamaresUtils has been retired. This has an effect on all C++ plugins, since this is neither a binary- nor source-compatible change.


  • keyboard module can now be explicitly configured to use X11 keyboard settings or the FreeDesktop locale1 DBus service. The latter is most useful for Calamares as an “initial setup” system, not an installer, in a Wayland session. (thanks Hector)
  • keyboard module now writes X11 layout configuration with variants for all non-ASCII (e.g. us) layouts. (thanks Ivan)
  • keyboard module now can configure keyboard switch. (thanks Ivan)


In the interest of planning the next release, here are some items that I think are required to get the 3.3.0 release out the door:

  • Drop Boost::Python and write the (very small) Python bindings by hand
  • Restore the installation of config files from the repo. This was removed for 3.3.0-alpha2 because forking the repo to modify the configuration is a terrible idea. But this also breaks patching-the-configurations at build- or packaging-time, which is a legitimate use-case.


If you experience an issue with Calamares, please tell us all about it on the Calamares issue tracker. For a full change list, see the full list of issues closed within the current generation (which is many releases).

Back Next