MauiMan stands for Maui Manager, and exists for setting, saving, and syncing the configuration preferences for the Maui Apps & Shell ecosystem. These configurations are global, and some of them can be overridden by the apps themselves, but more about that later.
To store the configurations MauiMan uses the
MauiMan.conf config file, located at your system local config path: for example at
- The settings modifications are only written/saved when using the MauiMan API directly.
MauiMan consists of two parts, a (1) background server that syncs and broadcasts the preference properties changes to all the running Maui Apps, and a (2) public API, that allows app developers to easily hook their apps to the system preferences. The MauiMan server program is named
MauiManServer4 and uses the DBus IPC.
The public API and the server are divided into modules, for different settings categories, such as Theme, Background, Accessibility, FormFactor, etc…
To configure any existing preferences, there are different ways to do it, from a graphical interface to editing a text file or even hooking to the public API directly (for developers), in the following sections we’ll cover all the possible ways.
The ideal way to set/modify the configurations, from a user perspective, is to use the Maui Settings application, which exposes all of the MauiMan preferences in a graphical user interface; although, some of the settings presented are “curated” to use predefined and sane values, for example, not allowing to set the border-radius of elements to an unfitting value - rendering the interface unusable. This means that with this approach you dont get full control over the values of the properties in all the cases, but you are less prompt to mess up.
- If any of the needed servers to sync configurations are offline, Maui Settings warns you about it and allows you to launch the server daemon with a single click.
- Keep in mind that Maui Settings is still under heavy development and most modules are still not implemented.
Another way to do interact with MauiMan is by using DBus directly. For this, one can use a graphical application and navigate to
org.mauiman.Manager and then dive into the existing modules for modifying the properties.
- DBusViewer is a handy application to navigate and modify the running services properties.
(!) Using this approach will not save the changes: it will keep the changes in memory as long as the MauiManServer daemon is running, but once the process is restarted those changes will be lost, since changes to the MauiMan properties are only saved when using the MauiMan public API.
Another approach is to manually edit the
MauiMan.conf file. It has a couple downsides:
- The changes won’t be broadcast to all the running applications. Changes won’t be loaded until
MauiManServer4process has been restarted since MauiManServer4 saves in memory the properties and only loads preferences from the conf file on startup.
Using this conf file is a convenient way to set default values for distributions shipping Maui apps, so they can be styled for the distribution preferences. This conf file is located at:
Here’s a snapshot of the conf file contents:
Accessing these MauiMan properties is also possible from an application side too: for developers there is the MauiMan public library which exposes all the properties trough a public API. So if you need to know about the current workspace background image source, you could hook to
MauiMan::BackgroundManager::wallpaper() and connect to the
wallpaperChanged signal to know in real time when the wallpaper has been changed.
Here you will find the complete documentation of all the available modules and its properties.
Most of the properties are already quickly accessible via the MauiKit Style object, (for apps developed using MauiKit) which besides syncing to MauiMan changes can also override these properties with in-app specific values and if needed clear those using the
undefined value to reset back to the default MauiMan values.
For example, for setting the style type as dark for an app, despite the global preference being different:
and to reset the value back to the global system preference:
If you find any syntax errors, missing documentation, or not working code snippets or examples, please consider reporting the issue at MauiKit issues page, with the documentation tag.
If you want to contribute with the documentation efforts, you can contact the Maui Project at Telegram