Today, we bring you a new special report on the Maui Project’s progress.
Maui 2.1.1 was released almost three months ago, and since then, we have added new features, bug fixes, and improvements to the Maui set of apps and frameworks; the Maui Shell components and new apps have been updated and pushed for a new release. The following blog post will cover changes and highlights from the last three months, which pave the road for a Maui Desktop environment for convergence.
Maui Desktop Environment (Maui DE) encompasses the MauiKit frameworks, Maui Apps, which cover the basic functionalities, and the Maui Shell and all its components. Maui DE aims to introduce a cohesive, modern, fun, and convergent environment for Linux computers in different form factors. This initial release gives a peek into the goal.
You can get the stable release packages directly from the KDE downloads server at https://download.kde.org/stable/maui/
And if you are feeling a bit curious about the Maui DE, you can try this new Manajaro based image for **testing** the current state of the project.
There are new additions to the Maui Project, such as MauiMan, Maui Settings, CaskServer, Agenda, and Paleta, and new apps getting ready for their first stable releases, such as Fiery browser, Strike IDE, Booth camera app, and some others.
So these three months have been a busy time shaping a Maui DE, to give you a glimpse of where Maui wants to go in the near future.
Also, there are updates to the latest libraries used by Maui apps; MauiKit Frameworks hits a new stable version, 2.2.0. They are introducing new components, updating the previous ones, and improving the UX and UI of the style.
The release schedule was updated to better keep in sync with the development workflow of the project. To check the new release plans you can go to the end of this blog post.
MauiMan & Maui Settings
MauiMan, short for Maui Manager, is composed of a DBus server and a library with a public API, both to help keep global setting preferences synced between processes integrated with Maui.
For example, MauiMan helps to keep in sync preferences about the styling preference, wallpaper source, UI elements such as corner radius, accent colors, preferred input method, window controls style, screen orientation, etc.
On Linux, MauiMan includes an executable named MauiManServer, which is a single-instance process that takes care of storing and broadcasting preferences changes via DBus. And a public library that any other projects can link to for quick access to the Maui preferences; this is the case of MauiKit Core which by default syncs to MauiMan and helps Maui apps to follow the system’s global preferences.
Maui Settings is also now using MauiMan to expose those available settings in a graphical way; and also uses the new MauiCore library group for more options; more about MauiCore later.
This change is a needed addition for crafting a Maui Desktop environment, and with this first release, testers will get a glimpse of what will become the Maui DE for convergency.
Includes public APIs exposed to QML for configuring other system preferences, such as audio, network, accounts, power management, etc. We use these interfaces in Maui Shell toggles and the Maui Settings app.
Maui Shell 0.5.5
Maui Shell 0.5.5 is the second beta release of Maui Shell.
We refactored the code for this new release and migrated the libraries powering the system controls into MauiCore.
Most of the work went behind the scenes into the session management and the session starter helpers. A quick rundown of how it works to understand what was updated is: Maui Shell includes three executable binaries: startcask-wayland, cask-session, and cask.
“startcask-wayland” sets the needed environmental variables, connects to the CaskServer API, and invokes cask-session.
“cask-session” starts all the sub-processes needed to run Maui Shell: CaskServer, MauiManServer, and finally, cask. And all the other defined autostart programs.
“cask” is the graphical shell with the composer and all the visible graphical elements.
We added for this release, initial support for a reboot, power off, halt, suspend, and quit. We have added CaskServer as a DBus server that broadcasts to all the running subprocesses to perform one of those actions: reboot, quit, or shutdown. To support those actions, CaskServer expects that the DBus interface org.freedesktop.login1 exists.
Among the bug fixes, applications menus display correctly, and we added initial support for screen rotation (no auto-screen rotation support for now). Maui Shell is now using MauiMan to follow the system preferences.
Agenda, a new Maui app, now powers the calendar. For now, it only displays the dates, but with Akonadi support, adding tasks and events will be possible in upcoming releases.
Cask server is an interface to broadcast session management actions but also will include interfaces to tweak the shell options, such as dock behavior and appearance, top bar features, etc., and an interface to allow an external process to request screenshots, etc.
MauiKit Frameworks 2.2
We made a significant change to establish Maui style as the default look and feel for the Maui apps, and along the way, to support the custom color schemes, with custom accent colors envisioned by the Maui HIG across different form factors and operating systems.
The new style is now precompiled and bundled to each app, which means it is faster, more consistent, and does not break when using other styles.
The style supports different color palettes: light, dark, adaptive – based on the wallpaper option (or up to the app developer to give an adaptive source)-, and auto (which for now fallbacks to system color scheme for better color integration with desktops like Plasma)
Besides those color schemes, users can also pick a custom accent color, and this tints all the other UI elements, giving a subtle but wide range of customization.
Besides that, the new style now supports global preferences for other aspects such as border-radius elements, toggle animations, icon sizes, etc.
We expose these options via MauiMan, and the user can tweak them from the Maui Settings app.
With this overhaul, many other elements were fine-tuned, such as Switches, RadioButtons, CheckBoxes, Sliders, TabButtons, etc. And with complete control over the style, regressions caused by third-party styles are no longer an issue.
The color scheme and elements’ look-and-feel are still under evolution, and if you have feedback, suggestions, or reports, you can open a ticket on the MauiKit repo’s page.
We added a new SideBarView control to replace the old “Drawer” based sidebar. This change now allows a sidebar with the capacity to be resized and placed within any other element – before the QQC2 drawer was global – The addition of the new sidebar also helped to clean up the ApplicationWindow implementation.
- ContextualMenu fixes for the title header.
- Page’s toolbars auto-hide behavior.
- We cleaned up dialog implementation.
FileBrowser, TextEditor, ImageTools, and Accounts
The TextEditor component gained an optional spell checker thanks to KF5 Sonnet.
ImageTools gained support for editing, adding, and removing EXIF metadata.
Maui Apps 2.2
During this cycle, we focus on making the current apps more stable by correcting errors from reported bugs, making the current features more accessible, and shaping the apps to match their desktop alternatives.
Now the file manager can be a single instance app, meaning that invoking it will open the new directories in a new tab in the opened instance instead of creating a new one. This new Index has initial support for the freedektop file manager interface specifications.
The sidebar elements were polished and now look tighter, same for the overview page elements – listing the recent files.
With this update, the app now uses the improvements made to the relying MauiKit frameworks.
Other fixes include:
- Contextual menu fixes.
- We reverted multiple selection states, so now the selection is not cleared when clicking out. Instead keyboard shortcut Esc can be used to clear the selection.
- Improved Focus view faulty implementation.
- Make use of the new MauiKit’s SideBarView.
- Display current track artwork if the available space is enough.
- The Folders page is now the entry view, which is faster to load at startup.
- The GPS scanning is now optional, and We added a toggle entry to the settings dialog. This feature still needs more work; the current solution is too slow.
- The tags page gained a new filter section to filter by common file types quickly.
- Users can now edit EXIF metadata right from the information dialog.
- Users can now drag folders.
- Spell checking.
- Fixes coming from MauiKit-TextEditor.
- Use the new Mauikit “SideBarView.”
- Open documents in multiple tabs.
NX Software Center
Fiery (previously Sol) – New!
Booth – Beta!
- There’s initial working camera functionality for taking photos. And multiple settings are available.
Strike – New!
Bonsai – New!
Agenda – Alpha
Brun – Alpha
Paleta – Alpha
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:
A quick reminder of the project’s immediate future goals:
- Fully utilize CMake. [Done]
- Developers can build apps and the framework with CMake for all targeted platforms.
- More feature-rich applications. [In Progress]
- Pix image editor and GPS location browsing.
- VVave’s metadata editor and cloud streaming.
- Index – feature-rich file management.
- Better integration with Android. Idle states and background playback.
- Improve data synchronization using NextCloud. [Pending]
- Only Buho and VVave have initial support.
- For 2.1, We will add support for Pix as well. [Pending]
- Improve performance. [In progress]
- We have split the MauiKit framework into different components.
- MauiKit::Core controls are faster and more coherent.
- 5X faster startup times for Maui Apps
- Improve the UI cohesion on all supported platforms. [In Progress]
- We continuously improve Maui Style.
- Move beta apps to stable. [In Progress]
- Shelf and Clip have been moved to stable, missing Sol (now Fiery), Booth, Strike, and Bonsai.
- NX SC is avialable at github.com/nitrux/nx-software-center.