Today, we bring you a report on the brand-new release of the Maui Project.
We are excited to announce the latest release of MauiKit version 3.1.0, our comprehensive user interface toolkit specifically designed for convergent interfaces, the complying frameworks, an in-house developed set of convergent applications, and the upcoming convergent shell environment for desktop and mobile devices.
Built on the foundations of Qt Quick Controls, QML, and the power and stability of C++, MauiKit empowers developers to create adaptable and seamless user interfaces across a range of devices, and with this release, we are a step closer to finalizing the migration to a new major version – the upcoming MauiKit4 release.
Join us on this journey as we unveil the potential of MauiKit3 for building convergent interfaces, the roadmap towards MauiKit4 and its new additions, and finally discover the possibilities offered by the enhanced Maui App stack.
Community
To follow the Maui Project’s development or to just say hi, you can join us on Telegram @mauiproject
We are present on Twitter and Mastodon:
Thanks to the KDE contributors who have helped to translate the Maui Apps and Frameworks!
Downloads & Sources
You can get the stable release packages [APKs, AppImage, TARs] directly from the KDE downloads server at https://download.kde.org/stable/maui/
All of the Maui repositories have the newly released branches and tags. You can get the sources right from the Maui group: https://invent.kde.org/maui
MauiKit4 & Documentation
MauiKit Calendar, Accounts, and Image Tools have now been ported to Qt6, joining MauiMan, MauiKit, and File Browsing frameworks. Alongside with the porting efforts, the frameworks are now documented, and available on the KDE API documentation site [HERE]. The remaining frameworks to be ported to Qt6 are MauiKit Terminal, Documents, and Text Editor, which should be fully ported and documented by the upcoming release in May.
The porting also involved updating the framework CMake code to the latest ECM changes introduced for creating QML plugins.
For the upcoming porting of MauiKit Text Editor, there are plans to move to a different backend for rendering the text more efficiently, and for Documents, the comics and ebooks backends will be reviewed and refactored to address crashing issues under Android.
You can find more information about the roadmap and plans for the migration to Qt6 at: https://invent.kde.org/maui/mauikit/-/issues/35
MauiKit Frameworks & Apps
A quick overview of the issues addressed and updates are covered in the following list:
- Updated translations and support for more languages
- Rebase MauiKit ApplicationWindow to QQC2 ApplicationWindow to resolve focus-stealing issues in Android
- Update all the applications’ source code syntax in QML for the upcoming Qt6 port
- Pick up the system light/dark preference for Android in MauiKit3, and move the handling of the Android status bar color from each app to MauiKit’s ApplicationWindow control. For MauiKit4 relay in the QStyleHints new properties
- Split the MauiApp code from the CSDControls. Thus register CSDControls as a new attached property: Maui.CSD [link to docs]
- Expose the MauiKit Application root element via the attached property MauiApp, as Maui.App.rootComponent [link to docs]
- Station fixes for handling the “terminate-session” shortcut and fixes to crashing issues when closing tabs, coming from MauiKit Terminal
- The MauiKit’s PageLayout control has been backported from MauiKit4 to MauiKit3, and its implementation has gained new features, such as moving the collapsable elements to the footer. [link to docs]
- Index app is now using MauiKit’s PageLayout control for splitting the toolbar actions for constrained spaces, the same as Pix
- Pix fix the tags hot-reloading on new tags created
- Fixes to nota syncing the terminal working directory
- Vvave has gained a new option to quickly start a playlist in shuffle mode and a sleep timer: to stop playback and/or close the app after a certain time or end of the playlist
- MauiKit’s AboutDialog has been revised and organized
- MauiKit FileBrowsing control for creating a new file now picks the icon from the name extension
- MauiKit Terminal and Text Editor now have a custom control exposing configurations for selecting custom color schemes
- Index now has options to tweak the embedded terminal in Linux, such as custom color schemes, and reorganized setting entries for the terminal configurations
- Nota now reuses the new Text Editor control for picking the color scheme and new options for tweaking the embedded terminal
- All of the apps now use an exported definition or the copyright notice
- Fixes for all of the apps where the names of developers and other non-translatable strings were being marked as such
- Fixed keyboard shortcuts for Station, Vvave, and other apps
- Added style for the ComboBox component
- MauiKit corrects the usage of singleton instances across threads for all the frameworks, which avoids the double instantiation from the CPP and QML side
- Fixes to MauiKit TextEditor long press actions on touch screens
- Fixes to style hints for the scrollbar policy coming from MauiMan
- Fixes to Nota’s recent view selection mode
- On mobile devices do not cache image or icon previews for the thumbnail delegates
[Known Bugs]
- Nota crashes when opening a new file from the recent view under Android.
- MauiKit Documents fails to open large comic books on Android, causing the app to crash due to the current design of using multiple threads for different pages. This is planned to be solved at MauiKitDocuments4 porting
- MauiKit Text Editor TextArea has a flickering issue, which makes content jumpy on Android only. This is from upstream and should be solved on MauiKitTextEditor4 porting when moving to a different backend.
- MauiKit FileBrowsing support for browsing SD cards on Android is currently disabled due to missing bindings to the “new” Android storage API
[What’s Next?]
For the next release, we plan to work on stabilizing the Maui Shell experience, by adding XWayland support, and a few more things:
- Finalize the porting of the MauiKit Frameworks to Qt6
- Finalize and review the MauiKit documentation
- Start the porting process of the Maui Apps to MauiKit4 AKA Qt6
- Review MauiKit4 on Android
- Review the migration of TextEditor to a new backend
- Fixes to bugs on the Maui Apps stack
- Update the Maui Apps features that are still pending
Maui Shell
For this release, Maui Shell and its components have received minimal updates coming from:
- MauiCore and Maui Settings new modules for Audio and Network
- Updated Maui Settings for MauiKit4 changes
- Review shell aka Cask elements to be up to date with the MauiKit4 changes
That’s it for now. Until the next blog post, that will be a bit closer to the 3.1.1 stable release.
To follow the Maui Project’s development or say hi, you can join us on Telegram: https://t.me/mauiproject.
We are present on Twitter and Mastodon: