Short answers about Mandara Shell. Each one stands on its own and links to the page with the details.
Mandara Shell is a desktop shell for Linux Wayland compositors. It draws
everything around your windows: the status bar, a dynamic island, the
dock, the launcher, a sidebar, notifications, on-screen displays,
wallpapers, desktop widgets, the lock screen and the login screen. It also
comes with Mandara Studio, a settings app that changes all of it live.
Mandara is written entirely in Rust on GPUI, the GPU-accelerated UI
framework behind the Zed editor, and it ships as one program called
mandara.
Mandara Shell is built specifically to be the complete desktop for all seven of them, from one native binary:
Mandara Shell. It detects which of the seven compositors you are running and switches to that compositor’s native model and configuration support. River and KWin use no include line. Your Mandara settings, theme and widgets carry over when you move between them. Install → compositors
Mandara supports MangoWM, Niri, Hyprland, Umbriel, Sway, River (0.3) and KWin / Plasma Wayland, all with native drivers. On MangoWM and River the bar shows tags as a bitmask (view, toggle-view and move windows between tags), and on Niri, Hyprland, Umbriel and Sway it shows workspaces. Mandara detects the compositor’s version and writes its own config dialect, including Hyprland 0.57’s Lua config. Install → compositors
Only by one line, and on KWin or River not at all. River’s init is a program
Mandara never edits, so the settings go over River’s own protocol and you add
the line that starts Mandara. KWin uses native Plasma protocols, keeps its
settings in Plasma System Settings and uses an XDG autostart entry. For the
other compositors, Mandara adds a single include line to your config and
writes everything else (its keybinds, window rules, layer rules and border
colours) to its own files in ~/.config/mandara/generated/. Each change is
checked with the compositor’s own validator (mango -p, niri validate,
Hyprland --verify-config, umbriel config validate, sway --validate)
and rolled back if the validator objects. mandara uninstall empties those files and keeps
your settings. Install
Run sh -c 'f=$(mktemp) && trap "rm -f -- \"\$f\"" 0 && curl --proto =https -fL https://thehamdiz.github.io/mandara/install.sh -o "$f" && sh "$f" "$@"' sh.
The download command shows progress and verifies the signed release before
opening Mandara’s installer, which installs what your distribution needs (Arch,
Debian, Ubuntu, Fedora, openSUSE, Void, Alpine, Gentoo and Solus) and
hooks Mandara into your compositor. Arch users can also build the supplied
package recipes. Install
Open Studio → About and click Update now. Updates are small binary
patches, signed and checked before they’re applied. From a terminal,
mandara update apply does the same, and mandara update rollback goes
back. Apps and updates
Memory depends on display size, driver, widgets and open panels. The 100 MiB startup and operation target remains open. Earlier measured figures include cleanup that has since been removed; they are historical results, not current ceilings. Studio is a separate process. Performance
All settings live in ~/.config/mandara/config.toml, which Mandara
watches live. Mandara Studio (mandara studio) edits the same file, with
30 pages and every change applied instantly. You can also read or change a
single setting from the command line, for example
mandara msg config set /bar/height 30. Configuration
Yes. Almost everything the interface does is a documented command with
JSON replies: mandara msg <command> talks to the running shell, and
mandara commands --json lists every command with its arguments and
examples. Hooks run your own commands on desktop events, and the
Task progress plugin shows progress that scripts and agents push to
the bar. Scripting, automation and agents
Mandara ships 81 first-party plugins: workspaces, media with lyrics, audio, network, Bluetooth, weather, prayer times, a clipboard manager, screenshots, containers, services, a process hunter, a shortcuts cheatsheet, Tailscale, local AI models, sharing to your phone and more. Some are switched off until you turn them on in Studio → Plugins. Plugins
Third-party plugins are written in Rust and compiled to a WebAssembly
component (wasm32-wasip2) that implements Mandara’s WIT interface. They
run sandboxed, with no file, network or environment access, and they
hot-reload while you work. Plugins can add bar items, panels, sidebar
cards, desktop widgets, settings and commands, and you can publish them to
the GitHub marketplace. Writing plugins
Plasma Wayland is supported through the native KWin driver. Plasma keeps its own compositor settings and secure lock screen; see Plasma setup. GNOME uses its own shell and is not supported. Mandara does not run on X11.
Yes. The interface comes in twenty languages: English, Arabic, Bengali, French, German, Hindi, Indonesian, Japanese, Korean, Marathi, Persian, Portuguese, Russian, Spanish, Swahili, Telugu, Turkish, Urdu, Vietnamese and Chinese. Arabic, Persian and Urdu are laid out right to left, and widgets can show Eastern Arabic digits and the Hijri calendar. Languages
Studio → Looks applies a complete style in one click: the bar, widgets, colours and fonts change together. Beyond that you can pick one of six bar styles, generate colours from your wallpaper, choose a theme preset, add desktop widgets and tune corners, glass and motion. Your desktop
Mandara puts a bar, dock, launcher, notifications, wallpaper engine, lock screen, login manager and settings app into one native binary, where most Wayland shells are built on QML, GTK or JavaScript runtimes. The comparison table lists features side by side. Why Mandara
Open an issue at
github.com/theHamdiz/mandara/issues.
mandara --version prints the exact build (version, git revision and
content hash), which helps a lot in a bug report.
Mandara Shell is free software under the GNU General Public License, version 3 or later. LICENSE.md