Skip to main content

 

We are pleased to announce the Alpha release of Maui Shell!

Alpha release

This new revision of Maui Shell introduces many fixes and missing features, completing parts of Shell’s basic functionality.

Read on to find out how Maui Shell has improved and what new features to look out for:

This cycle focused on Cask, the shelf itself, and encompassing the panel, the dock, launcher, dialogs, cards, etc.

We put a significant part of the work into refining elements such as cards, dialogs, sliders, buttons, etc., to make it all look more cohesive and coherent across different form factors, visually and in the user experience. 

Missing functionality was introduced: from the panel controls for handling: sound, Bluetooth,  dark mode, network, brightness, and media controls, to the backend.

Cards – Phone Mode

Bug fixes are also part of this release; one of the most important is that now the session handles signal inputs (such as SIGINT, SIGTERM, etc.), and the session won’t be closed by using the CTRL+C shortcut.

We added a new PolKit agent for authentication handling, and the calendar events’ initial work has been started.

You can now change the wallpaper, and the shell can pick up the color palette; this is optional. The wallpaper collection is picked up from /usr/share/Wallpapers for now. If you want to install the ‘maui-wallpapers’ collection, you can grab it from here: https://github.com/Nitrux/maui-wallpapers.

Switching from light to a dark mode is a toggle button away; this is only available if the adaptive color scheme option is off.

If you are detail-oriented, you’ll notice many minor papercut fixes made everywhere: the floating panel now has a dark gradient behind it to make it pop up more. Also, the elements used for controls in cards are much more cohesive by being reused, and on the desktop form factor, these are much more compact now.

The Media control card got a new look and now is much easier to the eye, but it can still be expanded to display more controls and information.

We worked on the session startup program called ‘startcask-wayland,’ which helps set up all the needed parts before launching the shell, such as autostart services and setting up the environmental variables.

The launcher now lists the most used apps on the first page, besides the categories and the quick places, recent downloads, and image gallery; this will eventually be optional in the configurations.

For more details, you can check out the previous blog post, which lists changes made to the panels, cards and features introduced:

Maui Shell Dev Diaries

 

Testing

You can download Maui Shell V0.5.0 sources from here.

If you are interested in trying this alpha release, there are a few ways to do it:

You could test it from Nitrux’s upcoming release or grab the sources and build it yourself, build instructions can be found in the readme file, and for help and assistance, you can join us on Telegram (links below).

There is a Wayland session if you’d like to test the Maui Shell. Or you can also try it from another session by using the terminal and launching the program ‘cask‘. For having Cask non-fullscreen mode, you can launch ‘cask -w,’ which will allow you to test different sizes to emulate tablet or phone form factors.

Using a different TTY is also possible to test Maui Shell; in this case, you would need to use the program ‘startcask-wayland’.

If you try it within another session, you can launch’ cask -l /tmp/cask.log’ to generate a log file; this is useful if you want to report an issue later.

To ensure the input works correctly, you need to add your user to the input group.

To grab the sources, here is the repo link:

https://github.com/Nitrux/maui-shell

If you want to build Maui Shell from sources, you need to have MauiKit from the main branch.

 

Launcher – Tablet Mode

Since this is an Alpha release, many functionalities might be buggy, raw, or be nonexistent; this will change in the future as the project evolves with each release.

If you feel more adventurous and want to help implement a particular missing or new feature yourself, you could. Down below, you will find information about how to get involved.

Some of the critical features missing include a lock screen manager, a session manager, XWayland support, power controllers for shutting down and restarting, etc.

Known Issues

  • Drag and drop bwteen apps are broken.
  • Drag and drop from the launcher to the dock crashes the session.
  • If you have set a password manager for the Network connection, the controller won’t work. A fix is to disable this from the Plasma network settings and set it to never ask for a password before connecting.
  • The Powerdevil service is not correctly started, which leads to missing brightness and power management functionality.

Media Cards – Desktop Mode

Beta plans

For the next release, the work will be focused on completing Cask and getting started with the session manager, the power manager, lock screen, keyboard shortcuts, etc.

Notes

To those of you interested in the development of Maui Shell, from a tester, packager, or contributor perspective, here’s some information regarding its development.

Backend stack

Cask uses Qt Quick Controls 2 with QML for the user interface or visual elements. Most of the controllers and functionality are powered by plugins written in C++, be it from Maui Shell or KDE projects:

  • BlueDevil, for handling the Bluetooth connections, and
  • Plasma-nm handles Network connections.
  • KIO
  • PowerDevil, handles power management, such as setting screen brightness, battery state, and power profiles.
  • KSolid
  • PulseAudio
  • Plasma-pa
  • MauiKit
  • Kirigami

These KDE projects expose their functionality as plugins that QML can consume, although some seem to be targeted for Plasma, making it hard to use outside of it.

For Zpace, the compositor, we are using Qt Wayland Compositor. Right now, the shell and compositor live in the same process. There’s an initial idea to use the wroots layer-shell interface to make the shell, aka Cask, live in a separate process.

Zpace positions the surfaces correctly depending on the form factor: floating free for desktop, tilling for tablet, fullscreen for phone, etc.

The programs: ‘startcask-wayland’ invokes ‘cask_session,’ launching the autostart programs and services, including Cask itself.

The previous binaries check and set the right environment variables needed, launching the proper process, such as Cask itself, and services required by the plugins the cards use, such as PowerDevilDBus, etc.

The session manager should handle the processes launched during Cask’s activity, which is still pending work.

If you are interested in contributing, there are a bunch of reasons you could get started, to list a few:

  • You know about Linux file system structure, environment variables, bash, DBus, Systemd, etc.
  • You care about symmetry, consistency, the right amount of padding and spacing, the proper contrast ratio, etc.
  • You want to correct some typos, spelling, or simply correct grammatical errors to make messages clear and clean.
  • To make the UI unique and appealing, you want to propose a design pattern, mockup, etc.
  • You have time to test and report issues on the current features.
  • You know C++ or QML and want to hack.
  • You want to try and deploy Maui Shell on a tablet or phone to test.
  • You know about the Wayland protocol.
  • You want to learn and start hacking and get help to learn more.

So if you want to follow the development of the project or like to contribute, here’s the right place to get started: https://t.me/mauiproject or https://github.com/Nitrux/maui-shell/.

 

Roadmap

Release date March June September December
2021 Testing
2022 Alpha 0.5.0 Beta 0.5.5 Stable 1.0.0 1.2.0
2023 1.3.0 1.4.0 1.5.0 2.0.0
2024 2.1.0 2.2.0 2.3.0 2.4.0

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: