Skip to content
theHamdizPublic

About

The complete desktop shell for Hyprland, Niri, MangoWM, Sway, River & Umbriel, with NixOS support: bar, dock, launcher, widgets, lock & login screens and a live settings app in one native Rust binary. Under 100 MiB RAM, 0.1 ms frames, 15 languages.

Topics

Resources

Stars

66 stars

Watchers

3 watching

Forks

Repository files navigation

Mandara: the phoenix rising from a Mediterranean wave beside the wordmark. A beautiful, fast desktop shell for Wayland, in under 100 MiB, tuned for 144 Hz.

A beautiful, fast Linux desktop that fits in under 100 MiB of RAM.
Design-first, spring-animated and written entirely in Rust.
Frames built in about 0.1 ms, ready for 1000 Hz displays: a shell that feels like an instrument, not a toolkit.

Install Mandara

GitHub stars Latest release Last commit Join the Mandara Discord Documentation GPL-3.0-or-later Support on Ko-fi

100% Rust Wayland native GPU rendered MangoWM, Niri, Hyprland, Umbriel, Sway, River Classic 73 plugins plus WebAssembly 15 languages
RAM under 100 MiB VRAM under 190 MiB Idle CPU 0.1%

Mandara Shell desktop over the Corniche at sunset: the edge-frame bar with rounded screen corners and the song playing, a headline clock, a to-do list taped on torn paper, two sticky notes (Weekend plans and Ideas), a month calendar, the agenda of upcoming events and the dock

Install · Documentation · Studio · Plugins · Commands · What's new


Mandara Shell is a native Linux Wayland desktop shell, written in Rust on GPUI. It's everything around your windows: the bar, a dynamic island, a dock, a launcher, a sidebar, notifications, wallpapers, desktop widgets, the lock screen and the login screen, plus a settings app that changes all of it live. It runs on MangoWM, Niri, Hyprland, Umbriel, Sway and River Classic, and it's one small, fast program you install with one command.

It's made to feel good to use. Panels pour out of the bar on real spring physics, colours follow your wallpaper and your music, and the whole desktop stays light enough to run all day without you noticing it.

One shell, many desktops

Pick a bar style, a wallpaper and a few desktop widgets, and Mandara turns into a different desktop. Each of these takes a minute in Studio, and every widget can be moved, resized and restyled right on the desktop.

A music desktop: floating glass-pill bar, a turning vinyl record with the album art and controls, a pocket player, a dot-matrix clock and a flowing wave visualizer over glossy ribbons in sunset colours
Music corner: glass pills, a turning record, a pocket player and a live wave visualizer.
A night desktop: the notch bar, an analog clock on a scalloped cookie dial, tonight's moon, the sun's arc with the time to sunrise and a dotted weather disc under the northern lights
Night sky: the notch bar, a cookie-dial clock, the moon, the sun's arc and the weather.
A light desktop: the island bar, a quote from Ferdowsi's Shahnameh, a to-do list on a soft card, the focus timer and the month calendar over a pastel mesh of rose and lilac, in light mode
Daylight: light mode, the island bar, a quote, your to-dos, the focus timer and the month.

At a glance

What A complete Wayland desktop shell: bar, island, dock, launcher, sidebar, notifications, OSDs, wallpapers, desktop widgets, lock screen, login manager, settings app
Compositors MangoWM, Niri, Hyprland, Umbriel, Sway and River Classic (0.3), all first-class; your own config gets one include line at most, nothing more
Built with 100 % Rust, one binary (mandara), GPU-rendered with GPUI and wgpu
Resources Under 100 MiB RAM, under 190 MiB video memory, about 0.1 % CPU idle
Settings ~/.config/mandara/config.toml, edited live by Mandara Studio (mandara studio)
Automation mandara msg <command> with JSON replies; mandara commands --json lists them all
Plugins 73 built in; third-party plugins in Rust, compiled to sandboxed WebAssembly
Languages 15, including right-to-left Arabic, Persian and Urdu
License GPL-3.0-or-later

What sets Mandara apart

Mandara is built for one job: being the complete desktop for MangoWM, Niri, Hyprland, Umbriel, Sway and River Classic. These are the strengths it was designed around, each one measured or shipped today:

  1. Six compositors, each first-class. It speaks every compositor's own IPC natively: MangoWM's and River's tag bitmasks (view, toggle-view, tag moves), Niri's scrolling columns, Hyprland's, Umbriel's and Sway's workspaces. It reads each compositor's version and writes its exact config dialect, down to Hyprland 0.57's Lua config.
  2. It never breaks your compositor config. It adds one include line (none at all on River, whose settings it sends over River's protocol); everything else goes into its own drop-in files. Every change is checked by the compositor's own validator (mango -p, niri validate, Hyprland --verify-config, umbriel config validate, sway --validate) and rolled back if it objects.
  3. A whole desktop in one native binary. Bar, dynamic island, dock, launcher, side bars and sidebar, notification center, on-screen displays, wallpaper engine, desktop widgets, clipboard manager, screenshots, screen recording, offline OCR, polkit agent, lock screen, login manager and a settings app: one Rust program, no QML, JavaScript, Python or shell glue.
  4. Fast by measurement, not by claim. Under 100 MiB of RAM, under 190 MiB of video memory, about 0.1 % CPU idle, and frames built in 0.1–0.2 ms: 95% of frames finish inside the 1 ms a 1000 Hz display allows. How it's measured
  5. Real motion. Analytical spring physics that can be interrupted mid-flight, and OKLCH colour blending, so every morph, slide and theme change stays smooth.
  6. Every setting live, in a real app. Mandara Studio has 31 pages; drag a slider and the bar follows as you drag. Nothing needs a config file unless you want one.
  7. A colour engine, not a colour picker. Material You (HCT) palettes from your wallpaper, hand-tuned themes, and opt-in theming of Ghostty, GTK 3/4, Qt 5/6, Kvantum, Zed, kitty, foot, Alacritty, btop and more.
  8. Your desktop, your look. Six bar styles on any edge, side bars that join the top bar into one frame, one-click Looks, dozens of desktop widgets placed per monitor, and three launcher looks.
  9. Safe, rich extensions. 73 plugins built in. Third-party plugins are Rust compiled to sandboxed WebAssembly: a crashing plugin is switched off and the shell keeps running.
  10. Scriptable end to end. Almost everything the interface does is a mandara msg command with JSON replies, so scripts and AI agents can drive and inspect the whole desktop. How
  11. Installs and updates itself, safely. One command sets it up on Arch, Debian/Ubuntu, Fedora, openSUSE, Void, Alpine, Gentoo and Solus, takes over an existing setup without losing it, and updates arrive as small, signed binary patches from Studio → About → Update now. NixOS gets a flake with NixOS and Home Manager modules.
  12. Made for everyone. 15 interface languages, right-to-left Arabic, Persian and Urdu included, and fonts chosen for every script it shows.

Why you'll like it

  • It's light. The whole desktop needs less memory than a browser tab and sits at about 0.1 % CPU when idle. How
  • It looks the way you want. Six bar styles (now including a notch that hangs from the top edge), side bars of icons and pills that join the top bar into one frame, one-click Looks, desktop widgets, a hundred dials for corners, glass and motion, and themes made from your wallpaper. Your desktop
  • Everything is a click away in Studio. 31 pages of settings, all live: drag a slider and the bar follows as you drag. Mandara Studio
  • It does a lot out of the box. A media island with lyrics, a sound mixer per app, screenshots and screen recording, copying text from the screen, a launcher with three looks (a list, an icon grid or a centred Spotlight-style search bar), a clipboard that sorts what you copy, a drag-and-drop app installer, night light, and 73 built-in plugins. Everything else
  • It welcomes you in. A matching lock screen and login screen with your own wallpaper, and ready-made looks for both. Lock screen and login
  • It speaks your language. Fifteen languages, with Arabic, Persian and Urdu laid out right to left. Languages
  • It plays well with scripts and AI agents. Nearly everything the interface does is also a command with JSON replies. Automation

A look around

Media island
Media: colours from the album art, a live spectrum and synced lyrics.
Sound panel with per-app volume
Sound: every output, your microphone and every app playing.
Weather
Weather: an animated sky, hourly and five-day forecasts.
System resources
Resources: CPU, memory, every GPU, temperatures and disks.

The six Looks, each on a wallpaper of its own: Corniche Dusk (glass pills and a headline clock over a rose sunset), Pharos Ink (a hairline bar over ink contours), Montaza Crimson (an Arabic clock over a red and amber glow), Qaitbay Forest (a giant stacked clock over green hills), Anfushi Wave (a glowing wave over layered sea) and Night Frame (a side bar framing the northern lights), in dark mode or light mode to match your page
Six Looks, one click each: the bar, widgets, colours and fonts change together.

Mandara Login in its Mandara design: a big clock, the avatar and a glass password field floating over glossy cyan, violet and pink ribbons
Mandara Login, the login screen: the Mandara design
Mandara Login in its Midnight card design: a quiet clock over one outlined card with the user, password and session, in midnight navy and citrine over dusk waves
…and its Midnight card design
The lock screen over soft violet and coral waves: the date, a big clock, the avatar and the password field
The lock screen, made to match

Studio: the login screen designer with a live preview
Mandara Studio: every setting, live, with previews like this login screen designer.

Desktop widgets

Dress up your desktop with dozens of widgets: clocks of every kind, calendars with your events, the sky, the weather, what's playing, a to-do list you tick right there, quick toggles, a desk cat and more. Each one can sit on a glass or solid plate, take a shape (a circle, a scalloped cookie, a flower, torn paper…) and wear a frame like washi tape or a polaroid. Pick Western or Eastern Arabic digits, the Gregorian or Hijri calendar and the language of the day names. Widgets come from plugins, so you turn on only the ones you want, and plugins can add their own. Desktop widgets

Desktop widgets: a cookie analog clock, a quote, a month calendar, a taped to-do list on torn paper, a sticky note, the focus timer and upcoming events
Your day: tick tasks, start the timer, see what's next.
Music widgets: a turning record, a pocket player, a cover cut to a flower, a side pill, an LED meter, a dot-matrix clock and the desk cat
What's playing, painted six ways, with the desk cat bobbing along.
A sky dashboard over the sea at golden hour: the sun's arc with sunrise and sunset rising over the horizon, a clock, a weather disc, the next hours as a temperature curve, tonight's moon and a day-and-night globe
The sky: the sun's arc, the moon, the globe and the weather, as one dashboard.
Widgets in Arabic over desert dunes: a dot-matrix clock in Eastern Arabic digits with the Gregorian and Hijri dates, an orbit clock, a Hijri month, the weather in words, a countdown and a date tile on a scalloped plate
Your language: Eastern Arabic digits and the Hijri calendar.

Install

One command, from any shell:

sh -c 'cd "$(mktemp -d)" && curl -fsSL "https://github.com/theHamdiz/mandara/releases/latest/download/mandara-$(uname -m)-linux-gnu.tar.gz" | tar xz && exec ./mandara-*/bin/mandara install'

The installer checks its own signature, sets up what your distribution needs, and hooks into your compositor without touching your own config files (no compositor yet? it offers to install one). It works on Arch, Debian and Ubuntu, Fedora, openSUSE, Void, Alpine, Gentoo and Solus. Updates arrive by small binary patch: Studio → About → Update now.

On NixOS, Mandara is a flake: try it with nix run github:theHamdiz/mandara, or add it to your system with programs.mandara.enable = true; (a NixOS module and a Home Manager module come with it). Nix keeps it updated.

→ Install guide: Arch packages, NixOS, other options, coming from another setup.

Common questions

Does Mandara change my compositor config? Only by one include line. Everything else goes to ~/.config/mandara/generated/, and each change is checked by the compositor's own validator and rolled back if it objects.

How do I update? Studio → About → Update now. Updates are small, signed binary patches.

Can I script it or let an AI agent drive it? Yes. Nearly every action is a mandara msg command with a JSON reply, and scripts can push live progress to the bar.

Can I write my own plugins? Yes, in Rust, compiled to a sandboxed WebAssembly component. They hot-reload while you work and can be shared through the GitHub marketplace. Writing plugins

More answers in the FAQ.

Learn more

Star history

Mandara Shell's GitHub stars over time

Supporting Mandara

Mandara is free, open source and always will be. If it makes your desktop a little nicer and you'd like to say thanks, you can chip in toward the AI credits and developer time that go into it:

Buy me a coffee on Ko-fi

It's entirely optional. Using Mandara, telling a friend, writing a plugin or reporting a bug helps just as much. Thank you!

License

Mandara Shell is free software under the GNU General Public License, version 3 or later (LICENSE.md, notice in COPYRIGHT.md). Vendored code keeps the license in its folder, and fonts and models downloaded on demand keep their own: OFL for Google Fonts, Apache-2.0 for the PaddleOCR models and the Depth Anything V2 Small depth model.

About

The complete desktop shell for Hyprland, Niri, MangoWM, Sway, River & Umbriel, with NixOS support: bar, dock, launcher, widgets, lock & login screens and a live settings app in one native Rust binary. Under 100 MiB RAM, 0.1 ms frames, 15 languages.

Topics

Resources

Stars

66 stars

Watchers

3 watching

Forks

Releases

Contributors

Languages