Today, we bring you a new report on the Maui Project’s progress right before the upcoming 2.2.2 release; here you will find some detailed information on the new features, bug fixes, and improvements that have been made to the Maui set of apps and frameworks.
What’s new?
Besides the common bug fixes, some of the highlights include a refactor and cleanup of the Cask components: the plugin templates and the internal ones; the CaskServer interfaces are gaining more features and exposing more properties for interacting with the Cask shell parts. In parallel, there are tweaks and improvements for the MauiKit Frameworks and new features coming to the core Maui Apps.
Porting to Qt6
Work on the migration has been started, and MauiKit can now be compiled with Qt6, however, it has not been yet tested properly, but now that the underlying technologies from KDE Frameworks have been moved to Qt6 on their master branches more progress can be made. The plan is to move MauiMan and MauiKit frameworks first and then proceed with Maui Shell parts. Ideally this year we’ll have all the projects ported to Qt6.
For now, the CMake build files for MauiKit and MauiMan are compatible with Qt6, and the rest of the frameworks should follow.
As part of the Qt6 transition, many MauiKit-Core controls have been refactored and reorganized internally, and some others have been removed or renamed. More info about the steps being taken to migrate to Qt6 and MauiKit 3 can be found here:
https://invent.kde.org/maui/mauikit/-/issues/35
Maui Shell
Maui Shell is composed of multiple sub-projects: servers, startup programs, the compositor, and the graphical shell parts, such as panels, chromes, launcher, notifications, cards, etc.
This release cycle was focused on working on Maui Shell parts to bring the vision closer to a first stable release. Many things are missing and a list of those pending things can be found here: [link]
With the planned migration to Qt6, the Cask compositor will benefit greatly from the new Qt6 Wayland Compositor API changes, such as the ability to add custom protocols and extensions; for example XWayland support, and many other XDG protocols.
Maui Session
Maui session is a set of programs taking care of starting all the needed parts. Part of those needed sub-programs are needed are CaskServer and MauiManServer, auto-start programs, etc, and Cask shell itself.
- Fixes to correctly launch the needed servers: CaskServer and MauiManServer on startup.
- Added env var needed for NVidia GPUs:
Cask
- Cleanup up the sources and removed unneeded files. Split the cask internal implementation controls from the CaskKit plugin with all the template types for common UI elements.
- Now the screenshots taken from the cars are saved into ~/Pictures/Screenshots/
- The screenshot card now has a timer available.
- Thanks to MauiKit work now icons are updated live when the preferred icon theme is changed.
- Updated to the latest changes in MauiKit, from the removed and renamed components.
- Cask now uses the new MauiMan Form-factor APIs for changing the workspace mode: phone, tablet, and desktop.
- Added a toggle item for quickly switching from desktop mode to mobile mode.
CaskServer
- The server gained a new screenshot protection API, it can be activated from an individual app via the public API CaskScreenshotInhibit, or by using the DBus server, and also by adding apps from the Maui Settings Screenshot module under the privacy section.
Maui Settings
In Maui Settings, all the brand new CaksServer and MauiMan options have been exposed and can be easily accessed: Form Factor, Accessibility, Screenshot, and the Theme modules have more options added.
The application now checks and shows warnings about the underlying servers not running – that is crucial: for example for MauiManServer and CaskServer, it also checks if the current session being used is actually a Maui Session.
Maui Settings is now a single instance application and has a server with some command line options to launch a specific module.
To protect apps from being shown in screenshots, you can add the app to a blacklist under the privacy section in the Screenshot module.
MauiMan
- New modules: Accessibility and FormFactor.
- The Theme module gained a bunch of new options to fine-tweak the size of the UI elements in Maui Apps.
- The FormFactor module now allows users to pick manually the preferred style: phone, tablet, or desktop, but it also comes with a FormFactor watcher – based on input information to set a defaultMode and bestMode.
- The FormFactorManager now depends on QtSystems for watching the input devices.
- Added a new method in ServerUtils for checking the current session and if it is a Maui Session.
MauiKit Frameworks
MauiKit Core components have seen many fixes and improvements, from consistency in the UI and UX department, fixes in binding loops bugs, implementation cleanups, and new features or existing ones being exposed.
Overall you will notice an even more cohesive usage of padding, margins, and spacing in elements and content views. More work towards making it perfectly suitable for desktop and mobile use.
Core
- The ScrollView now displays a ScrollBar when needed in desktop mode, the UX here was refined and is much easier actionable with a mouse – not autohiding-.
- The SettingsDialog component can now have a subpage for better organizing dense configuration layouts.
- Fixed issues with the Page floating footer being half-revealed on autohide mode.
- Now checks for changes in MauiMan‘s iconTheme option and propagates any change to the icons to refresh them accordingly on Maui Session.
- ScrollColumn is a new component for easily adding items into a scrollable column layout.
- Better usage of font weights in all the UI elements, such as titles and subtitles.
- New components for creating sections: SectionGroup and SectionItem.
- The SidebarView control has a new option: autohide to hide or not the sidebar on it being collapsed.
- Fixes an issue with setting fixed values in the ApplicationWindow height and with, and also fixes an issue remembering the window’s last size and position.
- Cleaner AboutDialog control.
- Fixes to TabBar implicit height deduction.
- The ItemDelegate control now has a flat property. And it is followed by the browser delegate types.
- Flat elements consistency for browser delegates, menu items, and section items.
- The Page component altHeader positioning issues have been fixed.
- Now uses the MauiMan Accessibility module for checking for singleClick property.
- Control Slider with the mouse wheel.
- Do not show in CSD maximize button if the window has a fixed size.
FileBrowsing
- Browsing tags from FileLoader. This has allowed many Maui apps to drop duplicated code and use this solution instead.
- In the FileBrowser control, the search results view now follows the same properties as the browsing view. In the list view, the result items now have their full path under the file name.
- Fix FileDialog sidebar width.
- Now uses the MauiMan Theme properties for consistency.
ImageTools
- OCR tools
- Now uses the MauiMan Theme properties for consistency.
Calendar
- Added CollectionComboBox – not longer depends on Kalendar application for those types.
Terminal – New!
- Working interactive scrollbars in desktop mode.
- Fix issues with the contextual menu showing up twice on pressed.
- Allow creating custom scheme colors. Use an adaptive color scheme from the current style.
- Allow translucency and blurred background.
- New ColorScheme model.
- Now uses the MauiMan Theme properties for consistency.
TextEditor
- New type ColorschemeModel.
- Now uses the MauiMan Theme properties for consistency.
- The unsaved files title now have a “*” to indicate its modified state.
Style
- Tweak Switch.
- TabButton state for noncurrent tab.
- Fixed the style for ProgressBar
Maui Apps
Although in this new release cycle the focus was on Maui Shell projects, many of the Maui Apps received some love: new features, improvements, and updates.
Some of the new apps are now part of KDE and have been migrated into Invent: Agenda, Arca, Era, Paleta, Brun
Index
- Now uses the new MauiKit-Terminal components and the embedded terminal follows the current color scheme.
- The path bar delegates now are using the old arrow style.
- Removed the ActionBar option and made it default to release the contextual menus from the dense amount of options.
- The settings dialog now uses the new SettingsDialog subpages.
- Overview sections are now more consistent as sections.
Pix
- New sidebar layout for browsing in the folders view.
- Ad extra option for sorting: Add date.
Nota
- Improved the color scheme settings section with a more graphical representation of available color schemes.
- Now uses the new MauiKit-Terminal components and the embedded terminal follows the current color scheme.
- The settings dialog now uses the new SettingsDialog subpages.
Station
- Improved the color scheme settings section with a more graphical representation of available color schemes.
- Now uses the new MauiKit-Terminal components.
- There’s a new option to make the color scheme follow the current app style.
- The settings dialog now uses the new SettingsDialog subpages.
- -station now opens correctly the location when invoked externally with open in terminal.
Vvave
- A new shuffle workflow for the main playlist: instead of random jumps, the main playlist is reorganized.
- A renewed Tracks view, with more smart sections instead of listing all the tracks groups them into subcategories, and searching for a specific track is still easy.
- There’s a new option to choose to display or not the track’s artwork.
- Added SingleWindow entry on desktop file.
NX Software Center
- It’s now updated to the latest MauiKit changes
- It’s now a single-instance application.
- Now has a server and command line options to invoke specific actions, such as: opening a specific app page, a category, or launching a search.
Clip
- Now uses sidebar navigation for browsing the collection sources.
Shelf
- It’s now a single-instance application.
- Now uses sidebar navigation for browsing the collection sources.
- Allow browsing by tagged files from the sidebar.
- Fixed tagging files action.
Strike
- Updated to the latest MauiKit
- Fixes when opening a new project.
And the rest of the fixes to the rest of the applications…
That’s it for now. Until the next blog post, that will be for the 2.2.2 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: