Today, we bring you a new report on the Maui Project’s progress.
We are a month away from the upcoming 2.0 release, and this blog post is a quick overview of things coming to the next stable release.
So here we go:
One of the most common requests we have had is to publish Maui Apps to F-Droid and other platforms’ stores to distribute future package updates much more easily.
The plan is to have Maui apps on FlatHub, Google Play Store, AppImageHub, and F-Droid, and the news is that we are still working to achieve this goal.
To track progress on this issue and jump in and help, you can follow this ticket:
https://invent.kde.org/maui/mauikit/-/issues/32
Sadly, this month has not been much progress, besides posting the Maui Apps as AppImages for arm64 in the AppImageHub store.
By the way, KDE will be contracting someone to work on the stores; with this; we might get a bit more help to push forward the distribution.
MauiKit 2
Once again, the framework has been clean up, and many bugs have been squashed, resulting in better performance and other optimizations.
Core
- MauiList has been cleaned up, and the MauiModel no longer has a messy usage of the MauiList; this means that you can have one MauiList (the data) and use it in many different MauiModels (the model: filtering and sorting) as wanted.
- MauiModel now has a new property named filteringRole, which allows setting by which role the filtering should happen; instead of filtering by using all of the available roles, let’s say you want to filter the images only mimetype, or only by camera model, etc.
Controls
- The delegate templates GridBrowserDelegate, CollageItem, GalleryRoll, etc., now have an imageWidth and imageHeight property to fine-tune the image sizes, not forced to redraw the images on small delegate size changes.
- The GridBrowserDelegate is now more widely used in the MauiKit controls, resulting in more visual consistency: like in the mobile’s TabView overview and the CollageItem and GalleryRoll.
- The CollageItem template delegate now uses a layout inspired by Dribbble‘s collection delegates.
- The ListBrowser and GridView received fixes to how the padding and margins are handled. However, hiding the scrollbars results in a frozen app due to binding loops from the default Plasma desktop style.
- The Page control header now uses the new Kirigami color set named Header.
- The Page control layout has been cleanup up, and redundant and unused parts were removed like translucent toolbars.
- The ToolActions (joined/grouped buttons) now has a flat style, as seen in many other UI elements in Maui Apps.
- The SplitViewItem can now be closed by dragging it to a closing threshold value.
- The TabView tab buttons now have a contextual menu.
- Slimmer separators were added for a lighter look.
- The ContextualMenu now is a proper Popup, and a new method was introduced to open it with the show()
- The ApplicationWindow no longer draws an application menu button by default. Instead, this is now up to the implementation. An about() function has been added to launch the about dialog.
- The Terminal control will be moved to its own framework library. There are plans from KDE devs to make a QML plugin for Konsole; fingers crossed.
- A new ProgressIndicator was added to avoid using the style ProgressBar that might make the CPU go crazy.
FileBrowsing
- The Tagging instance now can be used from different threads than the main one. This allows moving expensive tagging operations to a different thread; this is done by creating a different database connection for each different thread that requests the operation.
- When building the library, the new option -DKIO_AVAILABLE can be passed to use KIO as backed or not. For example, on platforms like Android, KIO is not available, and a fallback implementation is used instead.
- The PlacesList model now makes distinctions between Places and Bookmarks, where Places are the most common places, such as Downloads, Music, Video, etc., and Bookmarks are added manually by the user.
- Gained a more compact OpenWithDialog control.
- Keyboard shortcuts behavior has been refined.
Accounts
- The AccountsMenuEntry was added and can be used inside any Menu.
- The AccountsDialog and CredentialsDialog now work as expected.
- The MauiAccounts now is a singleton instance shared by the visual controls and the exposed API.
- This split from MauiKit Core will allow us to develop the accounts module in the future better.
TextEditor
- The lines number sidebar now works correctly on the wrapping lines, and the current line is updated correctly.
- The TextEditor visual control has been cleanup and not longer is clutter with visual controls that are not really needed, like a language combobox or text editing buttons.
- The pinch to zoom feature was removed.
- There are now plans to refactor the DocumentHandler, split it from the file loading functions and syntax highlighting, allowing us to have a cleaner implementation to hack on and add more features such as MarkDown support.
ImageTools
- Gained a Geolocation class which allows finding the city based on the GPS coordinates quickly.
- The ImageInfoDialog now has an optional graphical map pointed to the image GPS coordinates. It uses OpenStreet.
- Thanks to Gabriel Dominguez for this contribution!
Maui Apps
And this is where the changes and features introduced to the MauiKit Frameworks get noticeable.
For the upcoming release, we’ll be bumping the version of all the stable apps to 2.0, which means that Clip, Shelf, and the NX Software Center go up to 2.0 too.
Other apps like Sol, Booth, and Strike are still in the Alpha stage and will not have public releases until then.
We focused on making the apps perform better for this cycle and have a better look and feel on phones and desktop computers by cleaning up visual elements and squashing bugs, so what you will notice is slimmer user interface elements and under the hood tweaks.
Index
The file manager is now lighter, with a brand new places sidebar section optimized for touch and less clutter on the toolbars.
The final version should be even more compact; wait for it! 😉
The PathBar received some refactoring, and now it is loaded asynchronously and brings a loading status indicator; it also has a new flat style.
To use embedded terminal coming from the QMLTermWidget plugin, now Index doesn’t need to be compiled with a flag to enable it. Instead, it looks for it at run-time, and if it finds it, it is shown!.
A new Shortcuts dialog listing the available keyboard and gesture shortcuts makes the app features more discoverable. In the future, these keyboard shortcuts could be edited.
The Home Overview listing recent files now are loaded asynchronously and should make Index start-up time faster. There’s, however, an issue with the current Plasma desktop style that, when hiding the scrollbars, creates a binding loop that causes the app to freeze.
Pix
Pix now sports a much cleaner image viewer toolbar, grouping the most relevant actions and focusing on the image. Other controls are only displayed when they make sense.
And following this cleansing, the browser views were also polished, being made more simple.
Pix now make use of the updated MauiKit controls for displaying the Folders and Tags sections.
And coming from MauiKit ImageTools, Pix now can filter the collection by geo-location. The place/cities found are listed under the gallery view, and tapping on them will filter the list to only show images coming from such place.
The image information dialog now also displays a map overview with the location of the image.
Vvave
Some interface elements were refined for the music player, and others were made to be loaded asynchronously to make Vvave start-up time better.
Vvave was updated to make use of the new MauiKit Accounts framework.
The final version will have a couple of small UI improvements coming soon.
Nota
The text editor got a nice overhaul of its main toolbars design, with the current iteration being much clearer and cohesive.
All the features that make Nota a convergent text editor are still present and distributed into menus that don’t get in the way when editing. By the way, Nota also now has a Shortcuts dialog!.
You can still find the file options in the EditorBar in the main center; from there, you can trigger all the available options. To make the editing experience more powerful, the overflow menu also lists advanced features such as splitting views embedded terminal and a focus mode.
The recent files view can still be accessed from the Add button; in the New File dialog, instead of creating a new file or opening one from the system, there’s a new Open Recent File option, which takes you to the Recent Files view.
Clip
The video player was updated to the latest MauiKit changes. And some small visual bugs were fixed.
Station
The video player was updated to the latest MauiKit changes. And some small visual bugs were fixed, like the shortcut buttons styling.
Shelf
Shelf was updated to the latest MauiKit changes. And some small visual bugs were fixed.
The user interface and the navigation pattern were updated to make it more accessible.
Buho
The notes taking app is now more straightforward. Take notes and organize them by filtering or marking them as fav.
Buho was updated to make use of the new MauiKit Accounts framework
Sol
The convergent web browser is getting slowly but surely ready for its first stable release; this iteration includes a new settings dialog for managing privacy, other settings, a history model, and a bookmarks manager.
Still pending is a downloads manager and an ad block.
Strike
Strike is a new and fun UX/UI experiment. How to make a mobile-ready IDE? That’s Strike, an IDE for CMake-based projects. With it, you can load a project from your Linux phone and just hit play to configure, build and deploy the project.
Because it is not a regular phone, it is a Linux phone.
Communicator
The contacts manager was updated to the latest MauiKit changes, and parts removed from the MauiKit ‘s platform classes, like Android contacts and account support, are now part of Communicator.
NX Software Center
This first version of the Nitrux Software Center allows you to browse the AppImageHub store, with a home page listing the most downloaded and recent additions of packages for different categories, or to browse all the packages per category.
The NX SC also works on the PinePhone by listing arm64 packages.
From NX SC, you can manage and launch existing AppImages.
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:
Release cycle
Release date | 2021 | 2022 | 2023 |
---|---|---|---|
February | 1.2.1 | 2.1.1 | 2.2.2 |
May | 1.2.2 | 2.1.2 | 3.0.0 |
August | 2.0.0 | 2.2.0 | 3.1.0 |
November | 2.1.0 | 2.2.1 | 3.1.1 |