A little over a month ago, we got our first glimpse of Maui Shell. Developed by the Nitrux Linux team, I was quite impressed with its smooth visuals, and especially its convergence features.
At the same time, I concluded my year of daily riding the PinePhone, which meant it was free to experiment again. As a result, I soon found myself installing Maui Shell, which I spent several hours testing.
Here is what I found!
A Quick Note on Maui Shell’s Development Status
Just before I begin, I want to point out that Maui Shell is still in its early development stages. As such, I’ll do my best to avoid talking about the bugs I’ve noticed and instead focus on the more fundamental aspects of them.
However, I will make exceptions for larger and longer issues, so keep that in mind.
That said, let’s get to testing!
Maui Shell on a phone
As soon as I finished installing it, I found myself on the (now familiar) Maui Shell desktop. Immediately it became very obvious that the scaling was totally wrong, which made it much harder to use.
Luckily the folks at the Maui Project Telegram group were extremely helpful and I managed to fix the scaling in less than an hour (thanks @wachidadinugroho).
Once that was done, I started testing.
Its performance is much slower than molasses
If you read my PinePhone review, you might remember comparing its performance to how fast molasses drips. Unfortunately, Maui Shell takes this to a whole new level. Even the most basic interactions, like opening Quick Control menus, can take up to five seconds!
Unfortunately, my skills don’t go far enough to diagnose this slowness, but it would make sense that it was caused by software rendering. In case you’re curious, software rendering is where graphics aren’t rendered on the GPU, but rather on the much less efficient and optimized CPU.
The other possible culprit I considered was poor optimization (given its initial state). If so, chances are it will be patched over the next few months in preparation for the first stable release of Maui Shell.
However, as I said before, take my early ideas with a grain of salt.
Promising user experience
As with almost all mobile user interfaces, Maui Shell is simple and intuitive to use on a touchscreen. However, it also combines many desktop elements which has made a significant difference in improving the user experience.
For example, swiping down from the top of the screen produced a quick settings menu, similar to those found on Android and iOS.
However, different sections of the top notification bar can be tapped individually to display only related settings, similar to the various applets found on many desktop environments panels and the taskbar.
Now let’s head to window management:
For window management, the Maui Shell team obviously drew inspiration from Gnome and iOS, where a swipe from the bottom of the screen would show a Gnome-like preview of all running apps. I found this extremely intuitive and simple, and I’m honestly quite surprised it hasn’t been done before!
Finally, the dock is also an important aspect of Maui Shell on cellphones. It hides automatically by default and can be accessed by swiping up slightly from the bottom of the screen. From there, it shows icons for all running apps, along with a button to open the app launcher.
Speaking of the App Launcher, it’s very similar to the App Library found in iOS 14 and later. Each of the apps is categorized and can be easily found and launched with just a few clicks.
Overall, the usability turned out to be a bit unique and intriguing. However, this also extends to apps, which are made with Mauikit and Kirigami.
I think the Maui Shell team nailed the fundamentals perfectly.
Apps are awesome
Anything built with Mauikit integrates seamlessly with Maui Shell. By far, the largest collection of Mauikit apps comes from Project Maui, the developers of Maui Shell. Some of them include:
All of these apps work great on both mobile and desktop devices and bring desktop apps to phones. I was particularly pleased with Index, an interesting and functional mobile file manager.
Apart from Mauikit apps, Kirigami apps also work well. As a result, there is a huge library of perfect Maui Shell apps on desktop and mobile devices.
Apart from my observations, there are a few things I would like to mention:
- Unfortunately, it seems that there is no virtual keyboard at the moment. I got around this by using a keyboard connected with USB-C, but that doesn’t mean it’s impossible to use as a phone.
- I also found several scaling issues, which I couldn’t fix. These included applications far more scalable than the shell itself, as well as nothing at all. This could possibly be due to an error on my part, but I certainly can’t expect typical users to be able to dig into obscure Qt-specific environment variables.
Test Maui Shell for yourself
If all of these issues don’t phase you, you can try Maui Shell on a PinePhone by following the instructions below. It should be noted that these are specific to PinePhone, but can be modified to meet other needs:
- Download and Flash Arch Linux ARM to SD Card
- Boot the SD card and connect an external keyboard
- Login using credentials alarm/123456
- From there, connect to Wifi using
nmtuiand update the list of packages using
sudo pacman -Syu
- Run the following commands (these commands will take a long time to run):
sudo pacman -S base-devel git clone https://aur.archlinux.org/packages/maui-shell-git git clone https://aur.archlinux.org/packages/mauikit-git cd mauikit-git makepkg -Asi cd .. cd maui-shell-git makepkg -Asi
- Create a startup script using Nano:
cd nano start.sh
Now type in the file:
#!/bin/sh # in case it's not detected # or you wish to override # # export QT_QPA_EGLFS_PHYSICAL_WIDTH=480 # export QT_QPA_EGLFS_PHYSICAL_HEIGHT=270 export QT_QPA_PLATFORM=eglfs export QT_AUTO_SCREEN_SCALE_FACTOR=0 export QT_SCALE_FACTOR=2 cask -r -plugin libinput
- Make the script executable:
chmod +x start.sh
From here Maui Shell can be started using
What do you think of Maui Shell? Do you think its convergence features are useful? Let us know in the comments below!