Changelog
What changed in each Mandara release, written for the people who use it.
Newest first. mandara changelog prints it in a terminal, and Studio →
About → What’s new shows it too.
Unreleased
0.26.1 — 2026-11-11
Applying a login screen from Studio no longer fails with “unknown variant
logo”.
Fixed
- Applying a login screen from Studio no longer fails with “unknown variant
logo”. Updating Mandara replaces your own copy without a password, but the root-owned copies it runs as an administrator stayed on the version they were first installed with, and an old one couldn’t read the newer config. Studio now refreshes its admin helper when it’s older than the Mandara you run (one extra approval, once per update), and applying the login screen also brings the login screen’s own copy up to date, so the screen you see at boot reads what you designed.
0.26.0 — 2026-11-10
Mandara Login has three new looks that move the sign-in off the middle of
the screen: Ghostline, Chrome Halo and Meridian. The Productive bar is a
work desk of its own, on a portrait screen the login screen is no longer
drawn oversized, and the website is readable in every colour and never
wider than your phone.
New
- Three new login screen looks: Ghostline, Chrome Halo and Meridian. Studio → Login screen → Looks now has six designs, three to a row, each with a small picture of where things sit. Ghostline puts the sign-in on the left in a bracketed wireframe panel on graphite, with live readouts (keyboard layout, uptime, time zone), a terminal password line that fills one cell per key, and a thin clock beside a ruler of the day on the right. Chrome Halo sets a light clock inside a slowly turning ring of iridescent light that brightens as you type, with a machined two-layer sign-in module and a pill button on the right. Meridian has no boxes at all: your name and password sit on one fine line across a calm dawn field, over enormous faint numerals, in light or dark. Every piece is also a setting you can mix into any look: clock faces, card styles, the terminal and recessed fields, the pill button, the HUD, prism and horizon overlays, and Light colours. All three work on FreeBSD too, and
mandara greeter --demo --look ghostline (or chrome-halo, meridian, with --scheme light or dark) previews them.
Improved
- The Productive bar preset has a look of its own. It used to be the Glass pills bar with a few items swapped. Now it’s a work desk along the bottom edge: the focus timer and the window you’re in sit in the middle, your to-dos and notes on the left, system load and the clock on the right, each group on a soft capsule of its own. Its card in Studio → Bars → Presets draws exactly that, and picking another preset afterwards takes the capsules away again.
Fixed
- The website is readable in every colour and never wider than your phone. Every piece of text now meets the WCAG AA contrast minimum in light and dark, in all seven Looks: the notification caption, the FreeBSD and immutable-system cards’ lists, links and label, the right-to-left language labels and the typed agent line, which disappeared completely in Pharos Ink. The design and its decorations are unchanged. On a phone the page stays exactly as wide as the screen: the turning shapes in the hero and the shortcut search box no longer push it sideways, at any width from 320 px up.
- The login screen fits portrait screens. On a screen turned upright, Mandara Login sized everything by the screen’s height and drew it far too large. It now sizes by the shorter side, so a portrait screen looks like the same screen turned landscape.
0.25.1 — 2026-11-10
On FreeBSD, the login screen’s power buttons no longer need the operator
group, which could read your disks. The website looks right on phones
again, and the text on the AI Shell Agent card no longer jitters.
Fixed
- The login screen on FreeBSD no longer needs the
operator group, which could read your disks. Mandara Login’s Sleep, Restart and Shut Down buttons now go through ConsoleKit2 with one small polkit rule that lets the login screen’s user do exactly those three things and nothing else. The next mandara install writes it and takes that user back out of operator, where 0.24 and 0.25 had put it, and tells you it did. The first press after boot no longer leaves the login screen waiting forever, and mandara greeter power-rule shows or undoes the rule.
- The website fits phones again. Its top bar is two tidy rows on a phone: the name with the Discord, Ko-fi and GitHub buttons, then the page links beside a small light / dark switch. The text on the AI Shell Agent card (and the NixOS, FreeBSD and immutable cards) no longer jitters while the shape behind it turns.
0.25.0 — 2026-11-10
Mandara runs on FreeBSD: every release now has a FreeBSD build, with its
system readings, updates and installer. On Arch, Update all updates your
AUR packages inside Mandara too. The System monitor widget shows NVIDIA and
AMD GPUs, files in the dock’s Downloads open with your default app, and
the Trash opens in your file manager.
New
- Three new bar presets: Stanley Bridge, Pharos Beam and Raml Tram. Studio → Bars → Presets has three more one-click bars named after Alexandria. Stanley Bridge splits the tile dock into three floating docks of squircle buttons that span the bottom like a bridge’s arches. Pharos Beam hangs a narrow lantern of tonal tiles and scalloped accent buttons from the top edge. Raml Tram runs one line of flower stops along the top and down the left edge, a top bar joined to a rail. Each has its own little drawing on its card, everything in it stays adjustable afterwards, and picking another preset puts back exactly what it set.
mandara msg bar style stanley-bridge (or pharos-beam, raml-tram) applies one from the terminal.
- System monitor is a monitoring bar now, not Classic with other items. The preset became a style of its own: a slim status line along the bottom edge where every reading sits on a square-cornered stat block, CPU and memory meters and network rates up front in the middle, in your monospace font. Its card shows a little strip of bar graphs, so it no longer looks like Classic’s.
mandara msg bar style system-monitor applies it.
- App icons in the workspace buttons of every bar style. The styled bars ignored App icons (Studio → Plugins → Workspaces): tags showed the plain pills, and on a rail only numbers. Now every style draws each tag as a button in its own shapes (a flower on Rail and Raml Tram, a cookie or circle on Expressive, a squircle on Tile dock, a burst on Pharos Beam, connected tiles on Segmented) with the icon of the app on it, the tag you’re on in the accent and empty ones showing their number. Turning App icons off shows numbers only, as on the classic bar.
- Your AUR packages update in Mandara too. On Arch, Update all now runs pacman, then your AUR helper, then Flatpak, all in the Updates panel’s one progress card instead of opening a terminal, and the AUR’s own Update button updates just the AUR. Mandara uses the AUR helper you have (paru first, then yay, pikaur, Aura, trizen or CachyOS’s Shelly), or the one you pick under Studio → Plugins → Updates → AUR helper. The helper always runs as you, never as root, and when it installs what it built, its sudo asks for your password in Mandara’s own password dialog (once more after the system step, since sudo can’t reuse that approval; the dialog says so). The card shows which package is downloading, building or installing, Cancel stops a build, and a package that doesn’t build is named with the reason, with Open in terminal when it needs you.
mandara install on FreeBSD. The installer recognises FreeBSD (and GhostBSD), installs everything from FreeBSD’s own packages with pkg, turns on D-Bus and seatd in rc.conf and starts them, adds you to seatd’s group so a compositor can open the seat, sets up the admin helper the FreeBSD way, and can install Niri, Hyprland, Sway or River Classic for you. What FreeBSD doesn’t have (NetworkManager, BlueZ, monitor brightness over DDC/CI) is skipped with a short note instead of an error.
- Your system at a glance on FreeBSD. The process hunter, Resources, mini stats, the desktop system monitor and Studio’s Performance page read FreeBSD’s own counters, so CPU, memory, swap, load, uptime, temperatures (with coretemp or amdtemp loaded), drives and network traffic all show real numbers. Batteries come from UPower or straight from ACPI, brightness from FreeBSD’s backlight devices, and the volume keys and sound panel drive FreeBSD’s own sound system when neither PulseAudio nor PipeWire runs.
- Network and power on FreeBSD. The network panel shows your wired and Wi-Fi links from ifconfig and wpa_supplicant, updates the moment a link changes, and joins Wi-Fi networks without your passphrase ever showing up in a process list. Lock, sleep, restart and shut down go through ConsoleKit2, or through FreeBSD’s own
shutdown and acpiconf behind Mandara’s password dialog. What FreeBSD can’t do (Bluetooth, power profiles, hibernation, hotspots, and the plugins that manage systemd, coredumps, Linux sockets and Linux apps) is locked in Studio with a sentence saying why.
- Mandara Login on FreeBSD. Once greetd is built (it isn’t packaged for FreeBSD yet; the guide shows how),
mandara greeter use mandara switches login screens through rc.conf, reads greetd’s config from /usr/local/etc/greetd, and Unlock keyrings at login writes PAM lines FreeBSD understands. Mandara’s password dialog works with FreeBSD’s polkit and ConsoleKit2 sessions too.
- Mandara runs on FreeBSD. Every release now comes with a FreeBSD build for FreeBSD 14.4 and newer on amd64, signed and checked like the Linux ones. The one-line install recognises FreeBSD, downloads that build (with FreeBSD’s own
fetch when curl isn’t installed) and hands over to mandara install, and Studio → About → Update now keeps it current with small patches, just as on Linux. See the FreeBSD section of the install guide for the packages it uses and the compositors that run it.
- The main menu in your bar’s gaps. On glass pills, the island, the micro pill, the notch and the Segmented and Tile dock styles, the space between the pieces belongs to the desktop, so a right-click there opened the desktop’s menu. Turn on Main menu in the bar’s gaps (Studio → Bars → Bar → Behaviour) and a right-click anywhere in the bar’s strip opens the main menu instead. The desktop’s menu is still a right-click anywhere else on the desktop, or one tile away on the main menu’s Apps & tools page (Desktop menu). Off by default; full-width and side bars have no gaps, so Studio says so there.
- A main menu rail as tall as the menu. Rail height (Studio → Bars → Drop-down panels → Main menu) can stretch the main menu’s rail to the height of the panel beside it. Its buttons spread out evenly from top to bottom, with equal gaps and the divider halfway between the pages and the shortcuts, and a mashrabiya lattice in the tiles’ accent rises from the rail’s foot and fades out on its way up, in every tile style, light and dark, and right to left. The rail still hugs its buttons by default.
- Mandara installs on image-based systems. On Bazzite, Silverblue, Kinoite, Bluefin, Aurora and the other Fedora Atomic images, on openSUSE Aeon, Kalpa and MicroOS, and on Vanilla OS, the same one-line install now puts Mandara in your home folder and adds only the system packages your image is missing, checked one by one so nothing it already ships is layered again. Everything that needs no reboot is set up right away; then, after one question, the missing packages go into your next image in one
rpm-ostree, transactional-update or abroot step, and the installer tells you to restart. Mandara Login’s greetd and cage come in the same step, and after the reboot it’s one click away in Studio → Login screen. On SteamOS, whose system can’t keep packages, Mandara installs into your home folder and tells you what it couldn’t add. The Updates panel agrees: on these systems it shows your Flatpak updates and leaves the system itself to its own tool.
- System updates on FreeBSD. The Updates panel counts your package updates with pkg, and Update all updates the whole system right in the panel, behind Mandara’s own password dialog. On a traditional base system it updates your packages with pkg, then your release’s security and errata patches with freebsd-update. On a base system installed from packages (FreeBSD 15’s VM and cloud images, or its installer’s Packages choice) the panel counts the base system’s updates too, and pkg updates it alongside everything else, never freebsd-update. Everything downloads first (and can be cancelled until then), then installs, with the same live phases, counts and log as elsewhere; a new kernel or kernel module suggests a restart, and a -STABLE system or a release past its end of life gets its packages updated with a clear warning about the base system.
- Mandara runs on FreeBSD. Every release now comes with a FreeBSD build for FreeBSD 14+ on amd64 (14.4 and newer, FreeBSD 15 included), signed and checked like the Linux ones. The one-line install recognises FreeBSD, downloads that build (with FreeBSD’s own
fetch when curl isn’t installed) and hands over to mandara install, and Studio → About → Update now keeps it current with small patches, just as on Linux. See the FreeBSD section of the install guide for the packages it uses and the compositors that run it.
Improved
- Preset cards look like their bars. The plain bar presets’ cards now draw a dot for each item in each group, so a busy bar looks busy and Classic and Minimal no longer share one picture.
- Fresh login and lock screen pictures. The README and the lock and login guides now show Mandara Login in all three of its designs (Mandara with its emblem, Midnight card and Material You), the lock screen in its Mandara and Material You designs, and Studio’s Login screen page with its three looks.
- The System monitor desktop widget shows your NVIDIA GPU, and every reading is yours to pick. The widget now reads its GPUs from the same place as the Resources panel, so NVIDIA cards (through
nvidia-smi) show up next to AMD and Intel ones, with load, video memory, temperature and power draw, one line per GPU when you have several. Two new readings join the rest, VRAM and Swap, off until you switch them on. Pick what the widget shows in Studio → Desktop widgets → Readings, or right-click the widget in Edit desktop and choose Readings to tick them right there. A GPU reading your machine can’t show is locked with the reason (no graphics card, nvidia-smi missing, or a card that doesn’t report it), and the widget leaves it out instead of showing an empty row. Existing widgets look exactly as before.
- Discord and Ko-fi in the website’s top bar. Join the community or support Mandara right from the floating bar, next to GitHub, in the page’s own colours.
- FreeBSD and immutable systems on the website. The install section gets a FreeBSD card and an “Immutable? No problem!” card beside NixOS, each with how to install there. The “Ask in your words” card types its example without moving the text around it, and the bar styles’ preview sits centred beside its list.
- Mandara in motion, right on the homepage. The website’s first screen now plays a 40-second film: Looks recolouring the whole desktop in one click, the four bar styles, the launcher, panels springing open, live widgets, Studio changing colours as you watch, the Material You lock screen, and a nod to FreeBSD. It loops quietly with the sound off, Sound on plays its original soundtrack, and it loads only after the rest of the page.
- The
! shell agent uses far less memory and answers sooner. Its compilers now read their weights straight from the model file instead of copying them into memory, and Qwen keeps its word table compressed. In our tests a Qwen request’s private memory fell from about 1.6 GiB to under 700 MiB and FunctionGemma’s from about 570 MiB to about 470 MiB, and an English request with Qwen shows its candidates in about a fifth of a second instead of over a second, because Qwen now loads after the search. The previews are the same as before.
- A closed sidebar uses no memory for its cards. Sudoku, 2048, Radio, Feeds, Reddit and every other sidebar card are now made when the sidebar opens and let go a moment after it closes: their views, rows, posts, pictures, timers and connections go, a game is saved and put away, a third-party plugin shown only in the sidebar is unloaded, and the memory goes back to the system. Before, every card was built at startup, even with the sidebar never opened, and stayed for good. Opening the sidebar is as quick as before, a quick close and reopen keeps the cards as they were, and anything you were in the middle of comes back: a half-typed task or list name in To-do, and in Notes the note you had open (in its editor, at the same spot), your search and a topic name you were typing.
Fixed
- Files in the dock’s Downloads open again. Clicking a file in a stack’s fan did nothing: pressing on any file but the one next to the dock closed the fan before the click finished, and the files that did get through went to the desktop portal, which shows its own app chooser for files instead of using your default app and never said when that failed. Every file in the fan now takes the click, and files open straight in the app you picked for their type in Studio → Applications → Defaults, then your system’s defaults (a type without an app of its own uses its parent’s, so a
.log opens in your text editor). Folders open in your file manager. If no app opens a file, or the app can’t start, a notification says so and where to pick one.
- The Trash opens in your file manager. Opening the Trash from the dock handed
trash:/// to whatever claims that address. It now opens in your own file manager (the one in Studio → Applications, or your default for folders): Nautilus, Nemo, Caja, Thunar, PCManFM and PCManFM-Qt get trash:///, Dolphin gets trash:/, and COSMIC Files and any other manager get the Trash folder itself (~/.local/share/Trash/files, created if it’s missing). A desktop widget that opens trash:/// does the same.
- The login screen preview keeps its buttons apart. In
mandara greeter --demo, the Midnight card’s colour scheme switcher no longer sits on top of Exit demo: anything in a top corner moves just below the preview’s buttons, in right-to-left languages too. The real login screen keeps the switcher where it was.
- The Feeds and Reddit sidebar cards show up. Both plugins came with a sidebar card, but Studio’s Add a widget list, the Add to sidebar button on their plugin pages and
mandara msg sidebar tab widget add didn’t offer them, so you couldn’t put them on a tab. They’re there now, next to the Radio, Sudoku and 2048 cards, and a check keeps every future card on that list. The Reddit card also shows a Find communities button when you follow no community, instead of nothing at all.
- Login screen backups only root can touch.
mandara greeter use kept its backups inside the login screen user’s own folder, so that user could swap in a backup that sudo mandara greeter restore would then carry out. Backups now go to /var/lib/mandara-greeter-backups, which only root can change, and a restore runs only the service commands its switch could have made, for that switch’s own login managers. Backups made by older releases still restore when root owns them and nobody else can change them.
Under the hood
- Mandara compiles for FreeBSD. The whole workspace, its tests included, now builds for FreeBSD 14 (amd64) without a single warning, and the FreeBSD check in CI is a required one: a change that breaks the FreeBSD build can’t land. The bar, panels and Studio use the same Wayland layer surfaces there as on Linux.
- Mandara compiles for FreeBSD. The whole workspace, its tests included, now builds for FreeBSD 14 and 15 (amd64) without a single warning, and the FreeBSD check in CI is a required one: a change that breaks the FreeBSD build can’t land. The bar, panels and Studio use the same Wayland layer surfaces there as on Linux.
0.24.0 — 2026-11-09
Update your whole system right from the Updates panel. Pick how every
control looks, or set them all at once with a preset. Mandara Login and the
lock screen get a Material You design, the power menu can float as cards in
the middle of the screen, and four bar styles look nothing like the usual
strip. The Mandara emblem shows on the login screen again.
New
- Update your whole system from the Updates panel. Update all now installs your updates right in the panel instead of opening a terminal: Mandara runs your distribution’s own package manager (pacman, APT, DNF, Zypper, XBPS or apk) and asks for your password with its own dialog, then updates your Flatpak apps. You see each phase as it happens (refreshing, downloading 3/46, installing 12/46, running hooks) with a progress bar and the latest log lines, you can cancel while it’s still downloading, and the update keeps going if you close the panel. When it’s done you get a clear summary, a gentle “restart to finish” when the kernel or another core package changed, and plain explanations when something needs you (another program using the package manager, no network, a conflict, a full disk). Nothing is ever forced, and the AUR, image-based systems and the new Run updates → In a terminal setting still use your terminal.
- NixOS generations in the Updates panel. On NixOS the panel now lists your system generations (date, NixOS version, kernel, which one is running and which one booted) and your home-manager generations. Update your flake inputs or channels and rebuild with Switch, Next boot, Test or Build only while the build’s own progress fills the bar, see which inputs changed, roll back or switch to any generation after a confirmation, compare a generation with the running one (changed packages and closure size), and clean up old generations, keeping the running and booted ones.
- A Material You design for the login and lock screens. Studio → Login screen → Looks has a third look next to Mandara and Midnight card, and Studio → Lock appearance has a new Design choice with it. Its colours come from your wallpaper (Material’s tonal scheme from the picture behind, cross-fading when another person’s wallpaper takes over); the clock is big and stacked, hours in a tone of your accent, and its variable weight grows from thin as the screen wakes; your picture sits in Material’s scalloped twelve-sided shape, which turns a little with each key you press and morphs into a circle while your password is checked. The password field is Material’s filled field (the hint floats up as you type, the line under it turns your accent or red), with a round button beside it that squares off while held, and the sessions and other people are Material chips and menus, with tonal power buttons. The shape password symbols, right-to-left languages and reduced motion all work as before. Every part stays editable in the Login screen’s other tabs (new choices: Hours over minutes, Hours in the accent colour, Weight while idle, a Scalloped avatar, Chips for other users, a Filled field, a Chip session picker, Tonal power buttons, Emblem in the accent colour and Colours from the wallpaper), and the Mandara and Midnight card designs look exactly as they did.
- Pick how your buttons, toggles, fields, chips, meters and cards look. Studio → Themes has a new Components tab, next to Colors & style, for every control the shell and Studio draw. Buttons can be Square, Expressive (round at rest, the corners square off while you press and spring back), Cut (corners cut at an angle) or Elevated (a soft shadow that lifts on hover); toggles can be Material (an outlined switch whose thumb grows and shows a check), Expressive (the thumb stretches as it slides, check boxes round into circles as they fill, radio dots spring in) or Round; text fields and search boxes can be Filled, Outlined (the hint floats up into a gap in the outline as you type) or Pill; chips and choices can be Material (an outlined group with fine dividers) or Connected (separate buttons that round fully when chosen); meters, progress bars and rings can be Material (a gap and a stop dot), Wavy or Segmented, always in the same space as before; and cards get Asymmetric, Square, smooth Squircle or Cut corners and a Raised or Outlined style. The designs apply everywhere at once: panels, the sidebar, the main menu, the bar’s resource rings and layout pill, notification actions, the volume and brightness OSD, the launcher’s search field and chips, tray menus, the installer and Studio itself, which follows a change the moment you make it. Every design is drawn as a real preview of the control on cards of one size, and five presets at the top (Classic, Material You, Expressive, Minimal and Brutalist soft) set every component in one click, leaving your corner size, shadows, panel edges and slider handle alone. Nothing changes until you pick something: every component keeps its classic look by default, right-to-left languages are mirrored, and reduced motion turns the springs off.
- Looks bring their own components. Each of the six Looks now comes with fitting component designs (Pharos Ink with Minimal, Night Frame with Brutalist soft, Anfushi Wave and Montaza Crimson with Expressive, Qaitbay Forest with Material You, Corniche Dusk with the classic ones), shown on the Look as a small badge. Picking a Look applies them along with the rest of the Look; a design you choose afterwards stays yours until you pick a Look or preset again, and Keep my component designs when changing looks under Themes → Components keeps your own designs whatever Look you pick. Restore my look brings your designs back too.
- Read Reddit in a panel. The new Reddit plugin (Studio → Plugins, off until you switch it on) shows your communities, their posts and whole comment threads right from the bar: hot, new, top rated or rising, search within a community, galleries and pictures sized for the panel, comments you can fold and expand, more replies loaded in place, and a button to open a post in your browser or copy its link. Discover has a starter list of communities by topic, and you add, remove and reorder yours there. NSFW posts stay hidden and spoilers covered unless you choose otherwise, and nothing refreshes while the panel is closed. It works right away in a clearly labelled limited mode on Reddit’s public feeds (one request a minute, no scores or reply threads); add a free “installed app” you create once on Reddit for full mode, and the panel walks you through it. Its token never leaves memory and renews by itself. Pick cards, compact rows or a picture-first grid from the panel’s header, and add a sidebar card with a community’s top posts. Type
reddit, subreddit or r/linux in the launcher to get there.
- Radio. A new opt-in plugin plays internet radio: about seventy hand-checked stations on shelves for news, talk, pop, rock, jazz, classical, electronic, lo-fi, ambient, world music, Arabic, Qur’an recitation and kids, plus any station you add by its address (Mandara listens for a moment first to make sure it plays). The panel has a large now-playing card with the song title, live badge, format and buffer health, favourites you can reorder, search, a sleep timer that fades out and volume per station; the bar shows the station’s art and a scrolling title, and a compact sidebar card (now playing, favourite, previous / play / next and volume) goes on any sidebar tab. Media keys, the media panel and the lock screen follow it, a dropped stream reconnects by itself, and you can search the radio-browser.info directory once you switch it on. Nothing runs until you press play. Turn it on in Studio → Plugins → Radio.
- Sudoku and 2048, in the bar and right on your desktop. Two new games, off until you switch them on in Studio → Plugins (or type “sudoku”, “2048” or “games” in the launcher and pick Turn on). Play them in the bar’s drop-down panel, as a card in the sidebar, or add them as a desktop widget and play right there: click the board to give it the keyboard, click anywhere else to give it back. One game is shared between the panel, the sidebar and the desktop and kept when you close it, restart the shell or log out, along with your best times and scores.
- Sudoku deals puzzles with exactly one solution at four levels (Easy, Medium, Hard and Expert), with pencil marks, highlights for the selected cell’s row, column, box and digit, red conflicts, undo and redo, counted hints and mistakes, and a timer that only runs while the game is in sight. Play with the arrows and number keys (N for notes, H for a hint), the mouse or touch; a solved board gets a little wave of light (none with reduced motion).
- 2048 slides its tiles on the shell’s springs and pops them as they merge, with a 4 × 4 board or a 3 × 3, 5 × 5 or 6 × 6 one, your score and best score, one step of undo, and the choice to keep going past 2048. Use the arrows or WASD, drag with the mouse or swipe with a finger. Studio → Plugins has each game’s settings (level, highlights, timer, animations, undo, board size and accent colour), and Studio → Desktop widgets its width and style (Glass, Solid or Minimal).
mandara msg sudoku and mandara msg 2048 play them from a script.
- A power menu made of cards. Studio → Power & idle → Session menu → Style has a new Cards choice: lock, log out, sleep, restart, shut down and your other entries each float as their own card in the middle of the screen over the dimmed desktop, with the icon on a soft plate and the name underneath. Pick Card layout → Row to line them up side by side (wrapping onto a second row when there are many) or Column to stack them (wrapping into more columns). The cards pop in one after another, follow your card corners and style from Themes → Components, and work with the arrow keys (which move the way they point, also in right-to-left languages), Tab, Home and End, the number keys, Enter and Esc. Hold to confirm and the entry selected on open work as before, with the mouse, the keyboard or a finger on a touchscreen. Reduced motion shows them all at once, and small screens shrink the cards so they always fit.
- Four bar styles that look nothing like the usual strip. Studio → Bars → Presets has four new styles. Expressive is a tall bottom bar inside a thin frame round the whole screen, joined to a rail on the left: your tools sit on round accent buttons, widgets like the weather and the track playing on soft tonal tiles, and the launcher, clock, workspaces, sound, network and Bluetooth run down the rail on scalloped cookie badges. Tile dock is one floating island of large squircle tiles at the bottom, Rail a wide left rail of flower-shaped buttons in a screen frame, and Segmented drops the bar altogether for rows of connected tiles under the top edge. Each is made of settings you can keep tuning under Bars → Capsules and Spacing: items as capsules, tiles, squircles or connected groups, icon items as circles or Material 3 Expressive cookies, clovers, flowers and bursts in the accent or tertiary tone, how far items sit from the bar’s edges, and a screen frame that now works round a top or bottom bar too. Panels still pour out of the new bars and morph back into their button. Picking any other preset or a Look puts back everything a style changed, and
mandara msg bar style expressive (or tile-dock, rail, segmented, none) does the same from a script.
- Side bars take the bar styles too. Each side bar can now have a look of its own: pick Expressive, Tile dock, Rail or Segmented above its groups in Studio → Bars → Side bars, or with
mandara msg side-bar style right tile-dock, and only that bar changes, so a rail of squircle tiles can sit beside a bar of connected groups. Its item style, item shape, icon shape, icon colour and inset can also be set on their own, each falling back to the shared side bar look when unset. Shared (or none) puts back exactly what a style changed, and a side bar you shaped by hand is never touched.
Improved
-
| Feeds is a real news reader now. The panel opens as two panes: a sidebar with all your articles, the ones you saved, your folders and every feed with its unread count, and one timeline of article cards with the feed’s icon and colour, how long ago each came out, an unread dot, a short excerpt and its thumbnail. Search and an **All |
Unread** filter narrow it down, and the keyboard works throughout. Open an article to read a clean copy right in the panel (no scripts, frames or trackers; pictures inside articles only when you allow them), save it for later, mark it read or unread, copy its link or open it in your browser. The bar shows your unread count as a badge, a number or a dot. |
- Feeds in the sidebar. A new Feeds card for the sidebar lists your newest unread articles, from every feed or one folder you choose, with each feed’s colour, how long ago it came out and an unread dot. Click one to read it in the Feeds panel. The card uses what Feeds already fetched, so it never downloads anything on its own.
- Adding feeds is easy. In Studio → Plugins → Feeds → Settings, type a site’s address and Mandara finds its feed for you; rename feeds, file them into folders, give them colours, reorder or remove them, import and export OPML from other readers, or pick from 26 starter feeds by topic, each checked to work today. In the launcher, searching “rss”, “news” or “feeds” finds Feeds and its actions, and typing a web address offers Subscribe in Feeds.
- Feeds that just work. RSS 1.0 and 2.0, Atom and JSON Feed all read the same way, including feeds with odd encodings, stray text before the XML, HTML entities, missing or impossible dates and relative links. Downloads are compressed, follow safe redirects and remember when a feed moved; a feed that fails waits longer before trying again instead of hammering its server, and its last articles stay readable. Nothing downloads while nothing shows your feeds, unless you turn on the new background refresh (at most every 15 minutes), with optional, rate-limited notifications for new articles. Your existing feed list and read history carry over.
- A new website. Mandara’s homepage is redesigned in the shell’s own Material You language: expressive shapes, tonal surfaces and Alexandria type that breathes from hairline to black. Every screenshot now comes in a light and a dark version and follows your colour scheme, and an Auto / Light / Dark switch sits in the floating top bar. Pick a Look and the whole page takes on its palette. See the built-in surfaces side by side, flip through the four new bar styles, drag a slider through all five Studio designs, search every default shortcut, and browse the seven compositors and all 81 plugins. It works without JavaScript, follows reduced motion, and has a place ready for a short film of Mandara in motion.
Fixed
- Cut and squircle cards keep their corners. With Themes → Components set to Cut or Squircle corners, cards in panels, the sidebar and Studio came out slightly rounded, because the clip that keeps their pictures and hover fills inside also trimmed the card’s own outline. The outline now draws past that clip, so cut corners stay cut and squircles stay squircles, while the content inside is still clipped to them.
- Live streams say “Live”. Internet radio and other live streams no longer show a running time and an empty progress line in the media panel, the sidebar, the now-playing card and the desktop media widget. They show “Live” instead, and nothing ticks every second while one plays.
- Panels close in one smooth motion. A drop-down panel folding back into the bar no longer pops a sliver of itself back out a moment after it looked closed, which made it seem to close in two steps (most noticeable with a low damping in Studio’s motion settings). It now slides home and stays there, and a hidden sidebar no longer peeks back in after sliding away. Opening keeps its springy feel, and your motion speed, spring settings and reduced motion still apply.
- Studio’s mixer sets your music player’s own volume. Some players, such as Rufin, keep their own volume and put it back every time you play or pause, so a level set in Studio → Audio & media used to jump back. The row of the player the media panel follows now shows and sets that player’s own volume, just like the shell’s sound panel, whenever the player lets you change it. Other apps keep their usual sliders. You can also set it from a terminal with
mandara msg media volume set 40.
- The Mandara emblem shows on Mandara Login. The default Mandara design hid its logo, so the phoenix only appeared in the Midnight card design. It now shows above the keyboard pill in the Mandara design too, including on login screens installed before this update (a logo you had moved keeps its place and setting). Turn it off with Show a logo in Studio → Login screen.
- Jannah shows something new each time you open it. Opening the Jannah panel or the sidebar used to bring back the same verse or hadith all day. Now every open picks a fresh one at random from the Qur’an and hadith you chose, never the one you just read or one of the last 16 you saw, and Jannah remembers them across restarts. A panel and a sidebar card open together still show the same reminder. Next on the reminder brings another fresh one and Previous goes back through the ones you saw. Each reminder shows its own number, such as #104 of 230, which stays the same for that verse or hadith. The desktop widgets keep theirs for the day (or the hour) and avoid what you saw lately, and today’s step still changes once a day. The Qur’an’s ayah of the day and Hadith’s hadith of the day stay as they were.
- Hold to confirm keeps holding when the mouse moves. In the power menu, nudging the mouse even a pixel while holding Log out, Restart or Shut down used to cancel the hold, so it rarely finished with a real mouse. Now the hold lasts as long as the button stays down on that entry, and ends when you let go or slide onto another one.
Under the hood
- Pure Wayland, guarded. Mandara has never needed X11, and now a test keeps it that way: the build fails if any X11 library ever slips into its dependencies. A new informational check also type-checks Mandara for FreeBSD, to show how far a port would be.
0.23.0 — 2026-11-09
A different shape for every character. Mandara Studio uses less memory.
Notes keep edits made in other apps. Clearer Copy feedback on the website.
New
- A different shape for every character. The password field on the lock screen and on Mandara Login now shows each typed character as one of ten small, soft shapes (circles, rounded squares, triangles, diamonds, clovers and more) that pop in gently and shrink away when you delete them. Shapes never repeat side by side and never depend on what you typed, and each new attempt shuffles them. Prefer the classic look? Choose Password symbols → Dots in Studio → Lock appearance, or Hide typing as → Dots in Studio → Login screen. Reduced motion turns the animation off.
Improved
- Mandara Studio uses less memory. Pages hand back their pictures when you leave them, images shrink without a full-size temporary copy, and searching, the sidebar and the Plugins page stop rebuilding text and copying plugin details on every frame. Over a tour of Studio’s heaviest pages, its peak memory fell from 205 to 175 MiB, its memory after returning Home from 175 to 166 MiB, and its graphics memory from 100 to 73 MiB (release builds, median of three runs).
- Notes keep edits made in other apps. If another editor changes or removes a note’s file while you are typing the same note in the Notes panel, Mandara no longer overwrites it. The panel keeps your text and says the note changed elsewhere, your other notes still save, and your next edit replaces the outside version on purpose, or recreates the note if its file was removed. (#111)
- Clearer Copy feedback on the website. Screen readers now announce “Copied” again each time you press Copy, the message clears after a few seconds, and the instructions shown when copying is blocked stay until you try again. (#111)
- A clearer main menu. Your name, login, uptime and version now sit on a soft dark scrim that keeps them readable on any wallpaper, light theme included. The rail no longer repeats the Studio and power buttons from the header: it holds the menu’s pages, then, under a divider (and a “Panels” caption in the full rail), the panels it opens; Reload config moved to Apps & tools. Quick-toggle tiles give their detail line more room, so longer network and device names fit before they’re cut off.
- Pick how your sliders look. The volume, brightness and mixer sliders keep their familiar look by default (the fill, a small gap, an upright handle and the rest of the track ending in a dot), and Studio → Themes has a new Components section where you can switch them to Continuous (one track with a short grip), Pill (a round knob that stretches into a pill while you hold it), Wavy (a gentle wave along the fill that flows while you drag) or Segmented (ten rounded steps). Every design is shown as a real slider you can drag to try before you pick it, and the slider handle setting sits right under them. Icons, right-to-left languages, muting, touch dragging and reduced motion work the same in every design.
- Put the launcher button anywhere in the dock. The dock’s launcher button now lives among your pinned apps: drag it to the start, the middle or the end, drag it away or use its right-click menu to remove it, and bring it back with Keep the launcher in the Dock in the dock’s right-click menu or Add the launcher in Studio → Dock, where it’s listed and reordered with your apps. Your dock keeps its button where it was when you update (a button at the end moves just after your pinned apps).
- Widget pictures that show the widget. In Studio → Desktop widgets, every Desktop info picture now shows its widget filled with sample data, marked “Preview”: a sample machine, a week of screen time, a day of prayer times, a GitHub year, exchange rates, AI usage and a shelf of games. No more empty boxes, lone icons or lines of grey text, and the search field fills its tile. Painting these pictures never reads your machine, your logs or the network.
- Friendly empty desktop widgets. When a desktop widget needs setting up or has nothing to show yet, it now says so properly: its icon in soft rings, a short title, one helpful line and, where a setting fixes it, a Set up in Studio button that opens that widget’s settings or the plugin to switch on. GitHub contributions, exchange rates, AI usage, games, screen time and prayer times all do this, on light and dark wallpapers alike. Prayer times no longer disappears when its plugin is off, and screen time says when its plugin is off instead of showing old days.
- A tidier machine card and screen time. The machine card centres its logo beside the text (a screen glyph on a soft tile when there’s no distribution logo), draws a smooth line under your user@host and shows your theme’s colours as a row of round dots. Screen time’s total is a little smaller, so the days and apps under it carry the widget.
- Read every word of a verse or hadith. The Jannah, Qur’an and Hadith sidebar cards, the Hadith panel’s hadith of the day and Jannah’s step evidence fold long text to a few lines that end on a whole word. Read more (or a click on the text) unfolds the card in place: it grows smoothly, the sidebar scrolls when it needs to, and Show less folds it back. Tab and Enter work too. Open in the reader opens that very item with every word, its chain of narrators and grades. A desktop widget says Read more when it had to shorten an item, and clicking it opens that verse or hadith in its reader instead of the panel’s front page. Jannah’s sidebar card now shows the same reminder as its panel.
- Fresh reminders every time. Next and Previous never land on the item you were just reading. Jannah’s and Hadith’s daily or hourly rotation keeps the last few items away from the start of each new round, Jannah’s desktop widget walks its own list of items that fit instead of showing one twice, and the Jannah and Hadith readers stop at the end of a list instead of wrapping back to the first item. Jannah’s reminder shows where it stands in its round, such as 12 / 230.
Fixed
- You can resize and move a screenshot selection. In the screenshot tool, drag a corner or edge handle to resize the area you picked, or drag inside it to move it; only a press outside starts a new selection, and a stray click no longer throws your selection (and its annotations) away. The handles are easy to catch with the mouse or a finger, the pointer changes to show what a drag will do, and the selection stays on the screen. With “Capture on release” on, only letting go of a new selection captures; resizing or moving one never does. While an arrow, box or circle tool is active the handles hide and dragging draws, as before.
- Touchscreen taps now work in the shell and Studio. Tapping a bar item, a panel control or anything in Studio, including its close button, works like a click. Swiping scrolls lists and pages, and a finger on a slider drags it. Your mouse keeps working exactly as before. (#130)
- Every launcher look tells you what you can type. The empty search field in Classic, Grid and Beacon now lists the same prefixes, taken from your settings:
/ slash commands, = calculate, ! to ask the AI Shell Agent while it’s switched on, and each search provider you have on with the prefix you gave it. Beacon used to show only a generic line. Changes in Studio show up while the launcher is open.
- The launcher follows search settings while it’s open. Turning a search provider on or off, or changing its prefix, in Studio or the config file now applies to an open launcher straight away. A Beacon mode whose provider you switch off closes back to plain search instead of staying stuck. (#111)
- Your theme’s name is translated even when typed by hand. Studio’s current-theme heading now shows the translated name when the config names a built-in theme in another spelling, such as
Rosé Pine or tokyo_night. Your own themes keep the titles you gave them. (#111)
- Drop-down panels stay open while you use them. A click inside a bar panel or the main menu now always counts as using it, so a short focus change right after it (switching light and dark, a keyboard or mouse coming or going, the compositor rearranging its layers) no longer closes the panel under your pointer. Pressing a key while you rest on a panel no longer reads as leaving it either. Moving away, clicking outside, Escape and switching to another app still close it.
- The machine card no longer looks broken. Its gallery picture, and the moment before your machine had been read, showed a lone “@”, a dash and “Uptime: 0 min”. It now waits for the real values and leaves out anything it doesn’t know yet instead of showing a zero. In demo mode it names the same made-up parts as the Resources panel, so screenshots never show your hardware.
- No more cut words or stranded vowel marks. Shortened Arabic and translations, in the shell and on desktop widgets, now end after a whole word, and a letter never loses its tashkeel where a line is cut. The Qur’an’s desktop widget always gets the ayah of the day whole.
- Playing or pausing no longer brings an app’s old volume back. Some music players keep their own volume and put it back on their sound every time you play or pause, so a level you set for the app in the sound panel or sidebar jumped back (from 25 % to 51 %, for example). The row of the player you control from the media panel now sets that player’s own volume, the same level as the player’s own slider, so it stays where you put it. Other apps, and players that don’t let you change their volume, keep their usual per-app slider.
- The password field holds still while you type. On the lock screen every new character re-centred the whole row, so all the dots slid sideways with each key press; on Mandara Login the same happened in right-to-left languages, and long passwords hid their newest characters. Symbols now start from a fixed edge and keep their places as you type or delete, and a full field scrolls by one so the newest one stays in view, in every language and at fractional scales.
Under the hood
- Fewer needless rebuilds in git worktrees. The build no longer treats every build in a linked worktree as changed, which rebuilt most of the workspace each time. It now watches the checkout’s real
HEAD and branch, so the embedded revision also follows new commits. (#111)
- Documented helpers and test rules. The background workers, saving and image-rendering code have fuller explanations, and the development guide describes how the desktop tests own, tear down and stop restoring their private desktop. (#111)
0.22.0 — 2026-11-07
Copy any panel as an image. Motion that suits you. Swipe notification
history away. More apps in your colours.
New
- Copy any panel as an image. A camera beside the pin and float controls copies the visible panel straight to your clipboard and confirms with a green check. Floating panels have it too, including third-party plugins. Captures stay off the UI thread and release their working pixels when finished or cancelled.
- Motion that suits you. Choose a spring preset, replay a live preview, follow the desktop’s reduced-motion preference, soften bounce and set transition speed separately for each shell surface. Existing tuning stays yours. (#102)
- Swipe notification history away. Drag a card left or right in the notification panel or sidebar to dismiss it. Vertical scrolling and small drags keep the card; Studio has an off switch and distance control. (#119)
- More apps in your colours. Cava, tmux, Zellij and Spicetify now have opt-in palette exports in Studio → Themes → Other apps, with generated files that preserve your own configs. (#123)
Fixed
-
More reliable local commands. Opening the Qur’an, Jannah or calendar opens its panel. The agent keeps alternative commands available after compilation, respects light/dark mode and explicit values, and uses FunctionGemma’s native tool-call format for arguments. Selecting an alternative compiles a fresh preview; selecting one step runs only that step.
-
Keep the main menu open while choosing a theme. A temporary loss of layer-surface activation without another app taking focus no longer dismisses the panel under your pointer. Outside clicks, Escape and switching apps still close it. (#113)
0.21.0 — 2026-11-07
Your desktop, in your own words.
New
- Your desktop, in your own words. Enable the AI Shell Agent in
Studio, download its models, then type
! in any launcher look. Review the
exact shell actions before pressing Enter. Inference runs offline on your
CPU, keeping inference off the UI thread so the desktop stays responsive.
Its worker exits when finished, cancelled or closed. Studio has
verified, resumable model downloads and a test bench that never runs commands.
0.20.0 — 2026-11-07
Share a complete reading card. Write on your desktop. A clearer launcher
placement map. More Qur’an reciters.
New
- Share a complete reading card. Qur’an, Hadith and Jannah have an Image
button beside text copy. It copies the whole entry with its current design,
reference and displayed meaning, including content beyond the panel’s scroll.
Improved
- Write on your desktop. Edit tasks and Markdown notes directly in their
widgets, without opening a plugin panel. The checkbox still ticks a task;
its words open the editor. Save failures and conflicting edits keep your
text available, and a failed new-note write leaves no phantom note behind.
- A clearer launcher placement map. Studio shows the selected position
beside a compact map, with keyboard-accessible choices and a Preview button.
- More Qur’an reciters. Choose Yasser Al-Dossary, Abdulrashid Sufi or
Abdul Basit Abdul Samad in Studio. Yasser is the new default; saved
Alafasy and Al-Ajamy choices use it without changing your settings.
Sufi’s chapter downloads show progress and keep their ayah timing for
listening offline.
Fixed
- Fresh language and theme in plugin cards. Soundscapes captions and
progress rows follow language and colour changes without waiting for their
underlying data to change. World Clock follows language, date-format and
time-zone changes immediately too.
- Less work while scrolling Launcher settings. Studio prepares app names,
icons and ranking data in the background and shares them between rows,
instead of rescanning applications during scrolling. (#125)
- Launchers follow compact bars. Attached left and right positions align
with the ends of a notch, micro pill or island instead of the screen corners.
Button morphs keep that alignment and stay within the display. At a Notch
end, the launcher and bar share one continuous outer curve.
- Smoother after startup. The shell leaves its executable in the kernel’s
file cache instead of forcing it to be read from disk again during cleanup.
It also leaves file mappings under kernel control, avoiding a race with
temporary font and driver mappings.
Under the hood
- Quieter image decoding. Clipboard previews decode one at a time and stop
when their view closes. Clipboard and media caches request memory reclamation
after releasing images, using the existing system allocator. Rapid track
changes keep only the latest pending artwork request, and late results cannot
bring back artwork or lyrics after a view closes.
- Lighter plugin switches. Enabling and disabling plugins no longer copies
or retains unrelated plugin settings when other preferences change.
- Shared theme labels. Palette copies and color transitions share their
name instead of allocating another copy for each frame.
- Less temporary work. Input regions reuse their frame buffers, network
totals avoid temporary lists, and process sampling reuses small file buffers
while reading CPU tables without a size limit. Plugin text and image
conversions keep their existing storage when possible.
- Safer tray icons. Invalid icon dimensions are rejected before pixel-size
arithmetic can overflow.
- Less repeated work in plugin views. Clipboard previews and selection share
one layout, media seek controls keep their gesture geometry, and network
charts read their existing history without keeping a second sample copy.
Prayer times reuse resolved settings and keep their fixed daily timeline
without a temporary event list. Search results keep reusable indices, and
clipboard rows share their action state instead of rebuilding callbacks.
Album art and sharing or dock previews consume their resized image buffers,
and temperature rows borrow their readings and labels. Several plugin
selectors also read text settings without making temporary string copies.
Feeds, home controls and the faith plugins resolve their text and list settings once per
config or language change. Daily progress snapshots also avoid repeated
date formatting while a view animates. Keyboard badges compare borrowed
labels, and Phone Connect filters its existing device list directly.
- Shared font settings. Text and clock draws reuse their empty and
tabular-number feature lists while custom font changes stay independent.
- Lean bar geometry. Joined columns keep their two corner flares inline,
and group capsules calculate their bounds without a temporary list.
- Lighter clock and break updates. The meeting planner keeps its drag
geometry between frames, and break reminders follow their own effective
settings without copying unrelated plugin preferences.
- Background saves for notes and tasks. File writes stay off the UI thread
and keep their request order. Rapid task changes share a save, commands
report disk failures, and a partly saved note can retry its filename or
index without creating another copy.
shell state also reports when a
desktop editor is ready for keyboard input.
Unreadable notes keep their original contents while other notes stay usable;
drafts stay available for retry once the file can be read again.
- Quieter distribution packages. Language packs are staged separately
from compiled binaries, avoiding a misleading packaging warning while
keeping every language in the finished packages.
- Safer release downloads. The release job uses the current artifact
download action and rejects corrupted build artifacts before signing.
0.19.1 — 2026-11-06
Copy installation commands. Fresh desktop pictures. Theme cards fill their
space. Keyboard navigation in Beacon.
Improved
-
Copy installation commands. The website and its guides offer a Copy
button beside code examples, with keyboard access and clear feedback when
copying succeeds or the browser blocks it.
-
Fresh desktop pictures. The README keeps its familiar widgets with
the repaired sticky notes on a new wallpaper. Its banner now says twenty
languages, matching the available language packs.
Fixed
-
Theme cards fill their space. Main menu → Look → Themes uses the
available grid height, and built-in names follow your language in the
menu and Studio. Custom theme names stay as you wrote them.
-
Keyboard navigation in Beacon. Its search and mode buttons are reachable
with Tab and Shift+Tab, with visible focus and Enter or Space to select
a mode or app category. (#120)
Under the hood
-
Cleaner portable builds. Linker tuning checks for support, avoiding
ignored-option warnings with other linkers.
CI and release uploads use the current artifact action to avoid its older
runtime deprecations.
-
Reliable integration tests. The private KeePassXC server listens before
client requests arrive, and its waits have a deadline, preventing a CI hang.
-
Clearer helper contracts. Internal documentation explains policy cache
limits, view lifetimes, Studio routing and native output sizing. (#111)
Performance figures now distinguish settled memory from startup peaks
and describe the measured release setup.
0.19.0 — 2026-11-06
Bars and sidebars share one focused settings page, with clearer installation
steps and less repeated work behind the desktop.
Improved
-
A clearer launcher icon. The phoenix fills more of its button, and
its icon chooser includes thirteen distinct colour SVG alternatives.
Icons decode at their drawn size.
-
Bars in Studio. Bar layouts, side bars, sidebar cards, panels and
edge actions have their own tabs on one page. Existing settings and
Studio shortcuts keep working, and translated directions use the tab labels.
Fixed
-
Video wallpapers reach every edge. They fill the screen at fractional
display scales, including the solid color around centered and fitted clips.
-
Store checks can recover from a busy refresh. A lock timeout reuses
the last valid policy within its existing age limits, preserving blocked
entries without starting another refresh. (#111)
-
Script fonts stay readable. Hindi and Marathi text can use their
selected script font directly, while primary font validation still
protects text measurements.
-
Installer retries are clearer. Numbered stages confirm the release
signature and archive checksum, completed downloads show their sizes,
and exhausted signature-download retries stop before fetching the archive.
Manually downloaded binaries also stop when verification is unavailable,
unless you explicitly choose --no-verify. (#115)
-
No bright wallpaper corners beside the Notch bar. The power menu
and attached launcher dim the wallpaper around the bar’s actual shape. (#114)
Under the hood
-
Temporary folders can use symbolic links. Resource tests accept
folders reached through a symbolic link. (#111)
-
Reuse plugin views. Theme and geometry edits keep the bar and sidebar’s
live plugin slots.
Wallpaper scheme previews cache their five displayed colors and reuse
them when you return to a seed or mode.
-
Less background work in the dock. It checks window geometry only for
Smart hiding and keeps its slots cached across unrelated service updates.
Media position updates and screen-time readouts avoid copying retained
track data and history.
Switching Feeds, Home Assistant or Phone Connect off releases their
cached snapshots, including while an older request finishes.
-
Shared OCR dependencies. Text recognition shares newer geometry,
random-number and iterator libraries with the rest of the shell.
Compatible dependency updates also cover configuration parsing, downloads,
archives and background tasks.
0.18.0 — 2026-11-05
Easier sound switching, clearer menu cards, and fixes for notification focus
and compositor previews.
New
-
Mandara speaks Portuguese, Marathi, Vietnamese, Telugu and Swahili.
Choose yours in Studio → General → Language, or follow the system
language. Translations ship as separate language packs.
-
Choose speakers and microphones where you adjust volume. Click the
current device in Sound or the sidebar to pick another one. The lists use
your labels and hidden-device choices and follow devices as they connect
and disconnect. (#109)
Improved
-
Plugin updates stay focused. CI status and connected tools keep their
cached views when unrelated services change. Closed panels stop their
refresh ticks, and CI’s running indicator respects reduced motion.
-
Widget previews show the real layout. Jannah, Hadith and Qur’an cards
use clearly marked examples instead of generic fallback icons.
-
Language packs cover the login screen too. All twenty interface
languages use separate packs, including the greeter’s own wording.
-
Community store moderation stays current. Account and plugin rules can
hide listings or block installs and updates without a Mandara release.
Direct installs follow the same rules; plugins already installed keep
running.
-
Theme cards show the theme. Looks → Themes uses compact material
previews, clearer names and a selected marker, with visible keyboard focus.
User themes load in the background while the menu is open.
-
Home cards follow your menu decoration choices. Clock, media, volume
and quick toggles share the patterns, surfaces and shadows used by Apps &
tools. Active switches keep their on/off highlight.
Fixed
-
Restart keeps your latest preferences. Pending edits are saved before
restarting, manual light or dark overrides survive automatic-theme
restarts, and invalid configuration files are protected from replacement.
-
Video wallpaper keeps its margins. Playback retains the chosen fill
around contained or centered pictures while overview roots stay transparent.
-
Studio leaves finished pages alone. Late wallpaper and generator
previews cannot restore released images or queue hidden work. Home and
Performance sampling follows navigation and window visibility.
-
Community search stays on your query. Reopening the store keeps the
search shown in its field while checking the latest moderation rules.
-
A notification can bring its app forward. Clicking a notification can
focus its existing window even without a sender-provided click action.
Advertised actions still open their own content, and app lookup avoids
ambiguous matches and duplicate launches. (#107)
-
Keep Umbriel’s overview clear. The wallpaper layer no longer contributes
a redundant solid rectangle to workspace previews. Desktop wallpaper and
transitions keep using their existing buffers. (#110)
-
Quieter popup teardown. Closing windows stop requesting frames, and
notification popups use your configured panel font. Hyprland keeps a valid
client snapshot if only the optional monitor lookup fails. (#111)
-
Prepare wallpapers safely on several displays. Concurrent outputs use
separate temporary files when preparing the same cached wallpaper.
Under the hood
- Changed helpers and regression tests document their ownership, validation
and teardown boundaries.
0.17.0 — 2026-11-05
Four connected tools, more desktop styles, and public widgets for login and
lock screens, with clearer previews and setup checks.
New
-
Ten more ways to dress your desktop. Add word, split-flap, glass-tube
and binary clocks; date tickets, perpetual cards and a moon calendar;
weather ribbons, thermometers and a humidity rose. They belong to the
existing widget families, so Mandara still ships 77 first-party plugins.
Word clocks use natural Turkish time phrases.
-
Put widgets on your sign-in screens. Login screen → Layout and Lock
appearance have a widget gallery, a copy-from-desktop option and placement
controls. Both start empty. Only public, passive kinds are offered;
weather needs a separately chosen public location. Plasma keeps its own
secure locker, with a clear explanation in Studio. World clocks have
public default cities; copied decoration text remains public; copied
countdowns leave private desktop titles and dates behind. Embedded and
full-screen previews stay offline. Forecast requests start only for
widgets that actually display weather; palette labels follow each widget’s
chosen language. Lock widgets appear promptly when background painting
finishes, even after the entrance animation settles.
-
Four optional connected tools. Translator, Phone Connect, Feeds and
Home Assistant are first-party plugins. Translate when you ask, keep up
with subscriptions, reach your paired phone and control your home from
native panels. Mandara now ships 77 first-party plugins, each with its own
artwork. Feeds ask for the final address when a server redirects; remote
API keys use HTTPS. Key settings recheck the keyring when reopened and
stop reading on close. Home Assistant favourites load individually and
skip removed entities without hiding connection failures. Replacement keys
stay saved when settings are closed and reopened during a write.
Improved
-
Find missing icon themes. Maintenance reports missing icon themes and
opens Themes so you can choose a replacement without resetting your
selection. (#87)
-
The project, a click away. Studio’s About header has playful GitHub
and Discord links that move gently on hover and respect reduced motion.
Fixed
-
Switch to the window you picked. Alt+Tab hands focus back after its
overlay closes. Program keybindings also accept exec, and Hyprland
instructions use its current Lua commands. (#105)
-
Capture the display you are using. Screenshots and window or region
selection follow the focused output, including monitors to the left of the
rest of the layout. Frozen frames stay on the display they came from. (#106)
-
Icons that say what they do. Quotes, wallpaper tools, widget menus and
settings use symbols for their purpose. Sparkles are reserved for AI;
procedural artwork uses flowing contours and a paint drop.
-
Tell centered bar presets apart. The Micro pill and Dynamic island
thumbnails use the bar’s real compact geometry and show their different
item arrangements. (#103)
-
Sharper widget previews. Calendar, sky and visualizer pictures fill
their cards and follow display scaling. Media styles have labelled sample
previews instead of empty tiles, in light and dark themes. Toggle and
slider examples and current palette colours fill their tiles too. (#101)
-
Keep the login preview current. The login designer keeps clocks and
public widgets current while its preview is visible, including across
midnight. Digit rolls finish smoothly, and enabling seconds takes effect
without waiting for the next minute.
-
Dry runs stay compact. The installer keeps its one-line heading on an
interactive dry run and leaves the setup menu closed. (#66)
-
Keep CPU groups within the whole machine. Process hunter and Resources
cap grouped totals at 100%; hot-process highlighting follows the sampler’s
host CPU count. Includes Hedayatbakhshi’s follow-ups. (#68)
-
Fast clipboard paging keeps up. A quick wheel movement turns all
requested pages and keeps the leftover distance for the next movement.
Builds on Hedayatbakhshi’s keyboard navigation. (#70)
-
A quieter website in dark mode. The compositor section and expanded
questions follow the page’s theme with a subtle surface accent, readable
links and visible keyboard focus.
-
Keep desktop forecasts live. With weather enabled, a desktop weather
widget keeps the forecast service running without a bar or sidebar item.
New weather-card labels follow the widget’s reading direction. Daily
ranges follow the forecast location’s current date, even when a refresh
fails overnight.
-
Smoother battery rings. The Power panel’s charge arc and round marker
keep their smooth edges at normal and fractional display scales. (#104)
Under the hood
-
Snipping, eyedropper and login widget images keep one CPU pixel buffer
after painting. GPU uploads avoid another image copy, and native builds
leave out unused browser shader translation.
-
Clipboard history shares its text between the service, panels and launcher.
Window previews move their captured pixels directly to the renderer, and
closing a window releases its preview without reopening the switcher.
0.16.0 — 2026-11-05
Put the power menu where you want it, plus a round of fixes for Sway, the
installer, display reconnection and native KWin support.
New
-
Choose which screen corners are rounded. Each corner can be switched
off separately, and adjacent displays can keep their shared corners clear.
Find these controls in Studio → Sidebars & hover → Screen corners. (#73)
-
Keep dock bounces for music time. Studio → Dock → Behaviour has an
optional Bounce only while music plays setting for launch and
attention animations. Paused or stopped playback leaves them still. (#82)
-
Save a setup for just your bar. Profiles & backup now offers a
Bar scope, and the bar presets include a system-monitor arrangement.
Applying a bar preset keeps your own items unless you explicitly choose
Replace bar items. Desktop widgets stay as you left them. (#73, #81)
-
Capture all your displays at once. The screenshot panel’s
All displays action saves or copies the whole desktop in one image,
respecting monitor positions and different scales. The same action is
available as mandara msg screenshot all. (#79)
-
The installer opens on a setup screen. mandara install now starts
with the MANDARA wordmark and an arrow-key menu: pick the compositor to
integrate with (the list starts on one you already have; left alone, the
row stays on detect automatically and setup picks what’s running),
switch autostart and Mandara Login on or off, then choose Install. A
choice you pass as a flag is left out of the menu, and --yes,
--dry-run or a run without a terminal behave as before, with the
one-line title. Canceling either menu leaves the installation untouched.
Thanks to @Hedayatbakhshi. (#66)
-
Mandara now runs on Plasma Wayland with a native KWin driver (#45,
#50). The bar follows virtual desktops and windows, and the dock and
switcher control windows through Plasma’s own protocols. Clipboard history
also works through the shared data-control protocol. Setup can add
Mandara’s startup entry without changing KWin’s settings. Studio explains
which settings stay in Plasma System Settings, and lock requests use
Plasma’s secure locker.
-
Choose where the power menu opens. Studio → Power & idle → Session
menu → Position puts the edge dock on the left or right side, or at the
top or bottom center. At the top it hangs from the bar as one piece with
it, curves and all, just like the drop-down panels; next to a floating
bar it opens as a card, and if the bar is on another edge it hangs from
the screen edge (the preview tells you which). The default stays the side
opposite the sidebar. (#57)
Improved
-
The clipboard answers the keyboard and the wheel. Arrow Up and Down
move through the list and turn the page when they reach its end, Enter
copies the entry under them (or pastes it, where the panel is set to
paste), and the wheel now turns pages instead of doing nothing. Search
keeps its own keyboard focus, hidden entries cannot stay selected, and
a change in scroll direction discards the old wheel distance.
Thanks to @Hedayatbakhshi. (#70)
-
A new home for Mandara. The website has interactive Look previews,
a tour of Studio and desktop widgets, and a clearer installation guide.
It follows your light or dark theme, respects reduced motion, and keeps
keyboard focus visible when a question is open.
-
A shorter, friendlier first install. The new download command shows
the phoenix and real download progress, picks the right Linux build,
verifies the signed archive before opening the installer, and passes your
configuration options through unchanged. Interrupted downloads report a
failure, package-manager questions can read your terminal normally, and
relative installation paths stay relative to where you ran the command.
Downloads stay on HTTPS, temporary files are removed even after a failure,
and the verified installer uses your cache when /tmp blocks programs.
Its translated hints follow your terminal language, including in help.
-
The installer can start before keyboard libraries are installed.
Keyboard support loads when it is first used, so a fresh Linux system
can run the installer and let it install the packages it needs.
With --no-deps, shortcut checks explain which library is missing and
leave configuration alone.
-
A lighter first test build (#64). Tests no longer inherit the
interactive shell’s dependency optimization or keep incremental caches.
The development guide explains focused checks, timing reports and optional
local linkers; the full workspace checks still run in CI.
CI’s build and test steps now share that profile instead of compiling
the dependency tree twice with different optimization settings.
-
Guides that match today’s shell. The docs show the power menu at the
top centre and at the side, each Look’s picture follows your page’s light
or dark theme, and old panel captures that no longer looked like Mandara
are gone.
Fixed
-
A bar preset stays selected after you apply its style while keeping your
own items. Manual layout or item changes clear that selection. (#81)
-
Installation finishes with translated first steps in every language.
-
Installing or removing an application updates its dock pin and icon
without a restart; missing saved pins stay hidden.
-
Resetting a page keeps removed plugins out of its layout until you
restore them.
-
KWin setup explains availability failures. Only installed KWin
appears in the picker. Failed probes keep their actual cause in setup
and Studio, without treating them as configuration or shortcut errors.
-
The download command preserves the installer’s normal file permissions.
Unnamed displays retain their logical size alongside named monitors, and
Hyprland refreshes window state as soon as its event connection opens.
-
Reach clipboard matches after searching. Tab moves from the search
field to the results; arrows select and Enter uses the selected copy.
Editing the search or a collection name keeps its own keyboard input.
-
Studio has one set of window buttons. Its title bar now requests
client decorations and yields to compositor-provided controls when
those are required. (#89)
-
Reset-page summaries count custom arrangements too. Restored bar
items, side-bar groups, dock pins and stacks, and sidebar tabs no longer
appear as “All defaults” when they differ from the defaults. Resetting
their page restores those lists too. (#88)
-
The dock skips pinned apps that are not installed. Their pins stay
saved and return when the app is available; a running window still
appears even when it has no launcher entry. (#73)
-
Frame timing stops showing an old interaction as a live frame rate.
Idle redraw history no longer produces a current cadence, and Studio
labels the measurements as CPU view builds and redraw intervals. The
dock’s separate view contributes its own animation samples too. (#84)
-
Tailscale detection handles a shorter desktop PATH. Mandara also
checks common package locations and distinguishes a broken executable
from a missing installation. The missing-package panel links to its
official Linux download instructions. (#73)
-
Icons follow Plasma’s selected theme too. When no theme is chosen
in Studio, Mandara reads Plasma’s icon preference as well as GTK’s. (#73)
-
Screenshots use KWin’s own capture service on Plasma, including
monitor names, cursor choice and full-resolution pixels. (#78)
-
External brightness setup remembers the next boot. Working I²C
access no longer skips the installer’s offer to load its module at
startup, and a failed module load is reported. (#77)
-
The bar picker only offers things it can draw. Desktop widget
families and background tools stay in their own galleries instead of
being added to the bar as invisible items. (#73)
-
The Bengali input-seat hint and Persian login-screen choice are clearer.
-
Recover even without keyboard libraries. Restoring a backup works
without libxkbcommon and leaves the restored files in place. Shortcut
checks explain a missing library before changing anything, without
offering to retire conflicts that could not be checked.
-
Display changes recover even when both geometry queries fail. A stale
monitor list cannot give a new display another monitor’s name or dimensions.
-
The process table counts the whole machine. A busy build used to
read “405.5%” for rustc, because the list measured each process
against a single core while the Resources panel measured all of them.
Both now show a share of your whole machine, so no row goes past 100%,
and the hot colour still starts at the same amount of work as before,
including when Mandara runs with a CPU quota or affinity limit or CPUs
are brought online or taken offline.
Thanks to @Hedayatbakhshi. (#68)
-
First-install instructions account for your current terminal (#72).
If you added Mandara to PATH, the installer asks you to open a new
terminal before using its commands. It also points to Studio in your
application menu. Plasma Login Manager is recognised when switching to
Mandara Login.
-
The website header stays readable in both themes. The page and its
transparent banner now follow the same theme, and the browser tab shows
Mandara’s phoenix. Code examples keep their syntax colours with readable
contrast in light and dark mode.
-
A slow compositor reply no longer holds up the first frame. Initial
workspace and window queries run in the background before the shell
follows the live event stream.
-
Locking from a hot corner keeps the shell responsive. Waiting for
the secure lock screen now happens in the background.
-
Tape stays attached to notes. The notes desktop widget uses the same
corner strips as the to-do card, anchored to its visible paper. A header
or extra frame padding no longer leaves the strips floating above it.
-
Source installs check the Rust version the dependencies actually need.
An older toolchain is updated before the build instead of failing partway
through compiling the WebAssembly runtime.
- The bar and dock come back when a display reconnects (#63). Switching
a monitor between computers, unplugging it or changing its resolution no
longer leaves that screen without its shell. Other displays keep their
surfaces, and your display assignments stay as you set them. A temporarily
unavailable display query is retried without replacing working surfaces.
If the compositor still omits a connected output, its last known logical
size stays in use until a complete update arrives.
- Installing again keeps your shell profiles safe (#49). A leftover
installer comment no longer removes the next setting. Profile updates
preserve symlinks and permissions, and a failed write leaves the original
intact. Changing the installation folder also refreshes old PATH entries
when the new folder is already on PATH.
-
Named Sway workspaces work with automatic bar hiding and the window
switcher (#49). Includes can mix literal and wildcard characters, and
shortcut conflicts use the variable value at the shortcut’s own line.
-
Bar panels no longer hide behind the sidebar (#62). With the sidebar
open, a panel such as Power or Weather used to open partly underneath it,
so the sidebar’s cards looked washed out over the panel. The panel now
moves aside and opens next to the sidebar. On a screen too narrow for
both, it opens on top of the sidebar, fully opaque.
-
Empty panels look right again (#61). In short panels such as Wi-Fi’s
No networks found and Bluetooth’s Bluetooth is off, the icon sat high
in its round badge and the badge ran into the title. The badge now shrinks
to fit, with its icon centred.
- The installer’s PATH lines survive unusual folder names. A home
folder with spaces, quotes or a
$ in its name now ends up on your PATH
as it is, in bash, zsh and fish alike, and installing again to another
folder replaces the old line instead of keeping it. (#49)
- Pressing Ctrl-D at an installer question means No. Enter still picks
the suggested answer, but a closed or failing terminal no longer says yes
for you. (#49)
- The launcher no longer vanishes when reopened quickly. Closing it
before it had fully appeared and opening it again right away could make
it close itself two seconds later. (#49)
- Sway: every workspace is reachable. A workspace named with quotes now
gets the right command, a named workspace such as
web no longer blocks
a numbered one that doesn’t exist yet, and its id no longer changes when
other workspaces come and go. (#49)
- Sway: your config is read the way Sway reads it. Includes with a
wildcard in a folder (
conf.d/*/keys.conf) or several files on one line
are followed, a set $mod you change later counts with its new value, and
a line that merely mentions [ERROR] (say, in a notification) is no
longer taken for an error. (#49)
- The shortcuts list keeps whole workspace names. A Sway bind to
workspace "dev ops" now reads “Go to workspace dev ops”, and River binds
with -layout show the right action. (#49)
- The NixOS setup message speaks your language. When your compositor
config comes from Nix, the explanation of what to add is translated into
all 14 languages. (#49)
Under the hood
-
Release jobs keep GitHub write credentials out of dependency builds and
use them only for publishing and pushing release metadata.
-
Release builds use an immutable checkout action. CI and packaging
share the same verified action commit. Setup’s availability tests also
find their fixture programs through PATH, including on NixOS.
-
Build cleanup releases its locks promptly, even when another tool
starts at the same moment, so unused build caches can be removed reliably.
-
ARM builds avoid an unsupported linker option. Packed relocations
are requested only on architectures GNU ld supports, keeping ARM build
output clear of the ignored-option warning.
-
Build checks use the current GitHub Actions runtime. Checkout no
longer reports the retired Node runtime during tests and releases.
-
Clearer docs for NixOS, River and Sway. The README says NixOS users
update through their flake, the install guide notes that River has no
include line or checker, and the Studio guide’s Sway notes are more
precise. The flake’s Home Manager check now runs as pure Nix assertions,
and the screenshot setup notes regenerate their wallpapers reliably. (#49)
0.15.0 — 2026-11-03
Fresh screenshots everywhere. Cleaner main menu tiles.
Improved
-
Cleaner main menu tiles. The shortcut tiles are now flat by default,
and every tile wears a faint geometric pattern of its own: a grid for the
launcher, rising hills for wallpapers, a honeycomb for Studio and more.
The Kufic calligraphy is still there if you liked it: turn on Studio →
Bar → Main menu → Kufic calligraphy. Raised 3D and glass tiles are a
choice away under Tile surface.
-
Fresh screenshots. Most screenshots in the README and the guides
were shot again, each on its own wallpaper, so they no longer blur together and the
text is easy to read. The six Looks now sit in a neat grid in dark or light
mode to match your page, Mandara Login shows both of its designs (Mandara
and Midnight card) on bolder backdrops, and the sky widgets come together as
one golden-hour sky dashboard.
0.14.0 — 2026-11-03
A Mandara Discord. Mandara on NixOS. Mandara now runs on Sway. Mandara now
runs on River Classic.
New
Improved
Fixed
-
The power menu no longer freezes a second display: opened on a
display of another size than your first one (by the right screen edge
or the bar’s Sessions button), the power menu waited for the wrong size,
never appeared, and kept the keyboard and mouse, so the dock, launcher
and bar stopped answering until you restarted the compositor. It now
opens at the size of the display you’re on. As a safety net, the
launcher, power menu, wallpaper picker and password prompts now draw
within a few frames whatever size they get, and one that still can’t
draw closes itself after two seconds and hands your keyboard and mouse
back. Thanks for reporting it in #55.
-
Profiles & backup is smooth again: the page used to re-check every
setting against a freshly built default configuration each time it was
drawn, so scrolling and hovering over it stuttered. That check now takes
a fraction of a millisecond, and every edit you make in Studio is
recorded for Undo much faster too. Thanks for reporting it in #51.
-
Mandara is on your PATH right after installing: when ~/.local/bin
isn’t on your PATH, the installer now offers to add it to your shell
profiles (bash, zsh and fish) instead of only warning, so mandara works
in the next terminal you open.
-
A mistyped compositor name no longer edits the wrong config:
mandara msg compositor install-include now stops on an unknown name
instead of adding the include line to the running compositor’s file.
Closing the installer’s prompt also counts as no answer.
-
Installing on a system whose package databases were never synced
works: instead of failing with “target not found” for every package,
the installer notices the missing databases and, after asking, updates
them the right way for your distribution (on Arch and CachyOS a full
sudo pacman -Syu, never a partial upgrade; on Debian and Ubuntu
apt-get update), then installs. Say no and it tells you what to run.
Thanks for reporting it in #45.
Under the hood
- A leaner build. Mandara no longer builds image formats it never
opens (EXR, HDR, DDS, QOI, TGA, farbfeld, and an AVIF encoder nothing
used), an unused date library and a second copy of a small folder
helper: 18 fewer crates go into the shell. The
mandara binary is
3.1 MiB smaller (160.8 → 157.7 MiB), the release download 1.3 MiB
smaller (66.2 → 65.0 MiB), and a clean release build took 1,037 s
instead of 1,084 s on the same machine. Every image Mandara shows
(PNG, JPEG, WebP, GIF, BMP, SVG, and TIFF, ICO and PNM previews) still
opens.
0.13.0 — 2026-11-03
Mandara Studio wears the phoenix.
Improved
- Mandara Studio wears the phoenix. Studio’s app icon in your
launcher, dock and app menus is now the new phoenix logo instead of the
old shoreline mark. Installs that update themselves pick it up the next
time the shell starts.
0.12.0 — 2026-11-03
A much better screen recorder.
New
- A much better screen recorder. Recording now uses GPU Screen
Recorder or wf-recorder when you have one installed (falling back to
Mandara’s own encoder), so you get MP4 and MKV files, H.264, HEVC or
AV1, up to 120 fps and a resolution and quality of your choice, and
sound too: turn on system sound, your microphone or both in Studio →
Plugins → Screenshot (Mandara’s own encoder records video only). Record
the whole screen, a display you pick, an area or the focused window, with
an optional countdown. While recording, the bar shows the time: click it
to stop, right-click it to pause, resume or mute your microphone. The
screenshot panel lists your recent recordings to play, show in the folder
or move to the Trash. Studio → Plugins → Screenshot shows which recorders
are installed and greys out what the one in use can’t do, with the
reason. Every action is a command you can put on a key, such as
record toggle and record pause-toggle.
0.11.0 — 2026-11-03
A Modern style for the Power panel. The battery breathes while it charges.
No more CPU driver names in the Power panel.
New
- A Modern style for the Power panel. Pick it in Studio → Power &
idle (Power panel style) and the battery leads: a large charge ring
with the percentage and its state inside, the time left right under it,
health, capacity and chemistry at a glance, and a smooth graph of the
last hours of charge. The power profiles become one simple Power saver /
Balanced / Performance switch showing only the profiles your computer
has, and the charge limit is a single switch that says when charging
stops and resumes (shown only where it can really be changed). Voltage,
cycles, temperature and the CPU driver wait in a Details section that
stays folded until you open it. The panel you know stays the default,
as the Classic style. The design follows a suggestion in #26.
- The battery breathes while it charges. Plug in and the battery in
the bar gently pulses until it stops charging, so you can tell at a
glance that power is going in. It stays still with Reduce motion on, and
you can turn it off in Studio → Power & idle (Pulse the battery while
charging).
Improved
- No more CPU driver names in the Power panel. The Power panel keeps
its look, but no longer shows the CPU driver (
intel_pstate and
friends) in its header or under each power profile; each profile keeps
its short description.
0.10.2 — 2026-11-03
Notifications joined to the bar, on more setups. No notification is cut
off on a short screen. Studio shows what’s saved, even when it can’t
apply. Better translations.
Fixed
- Notifications joined to the bar, on more setups. With a bottom dock
on one display only, bottom notifications on another display now join
the bar there instead of staying floating cards (Studio no longer locks
Join the bar for them). Joined notifications also open on the display
whose bar they’re shaped for, rather than sometimes taking one
display’s shape on another. And on a narrow screen under a wide notch,
notifications stay as floating cards instead of squeezing into a
sliver.
- No notification is cut off on a short screen. When a screen is too
short for as many notifications as you asked to see at once, Mandara
shows the ones that fit and the rest wait their turn; before, the last
ones could hang off the edge and time out unseen.
- Studio shows what’s saved, even when it can’t apply. A switch that
doesn’t work with your current setup (like Join the bar under a
floating bar) used to show as off although it was still on. It now
shows its saved state, dimmed, and you can still turn it off.
- Better translations. In the bar designer, Russian Move up and
Move down now read as actions, and the presets’ description is a
full sentence in Hindi, Urdu and Turkish. The Bengali note about the
dock and notifications reads more naturally.
Under the hood
- Small wallpaper and font tidy-ups. A tiled wallpaper in grayscale or
16-bit colour is converted once instead of once per tile, scaling a
whole picture in those formats skips a needless copy, and the Arabic
font chain accepts exactly the fonts the rest of the text system does.
The changelog check now also catches section headings Studio can’t show.
0.10.1 — 2026-11-03
Smart updates work after skipping releases.
Fixed
- Smart updates work after skipping releases. A release only carried a
binary patch from the release right before it, so if you skipped one,
updating fell back to the full ~70 MB download. Each release now carries
patches from the five releases before it: updating from any of them is a
~5 MB download.
0.10.0 — 2026-11-03
A tidier layout designer, with search.
Improved
- A tidier layout designer, with search. In Studio → Bar, the Left,
Center and Right zones are now neat columns with their plugins stacked
in order, and every plugin sits in an aligned grid underneath, grouped
by category, with a search box that filters as you type. Plugins already
on the bar show where they are. Click any plugin (or bar item) for a
small menu to add it to a zone, move it up, down or across, or take it
off, so dragging is no longer the only way. Thanks for the suggestion
in #26!
0.9.0 — 2026-11-03
Notifications can join the bar. Pointing at a notification always pauses
it.
New
- Notifications can join the bar. Turn on Studio → Notifications →
Join the bar and new notifications drop out of the bar in a drawer of
its own colour, curving into it, so the two read as one piece. It works
with a top or bottom bar, notifications on the left, middle or right, and
follows the bar when it hides. Floating pill bars keep the usual floating
cards. Off by default.
Fixed
- Pointing at a notification always pauses it. A notification that
popped up right where the pointer had last left the notifications kept
counting down while you pointed at it. Now it waits for you.
0.8.3 — 2026-11-03
Lighter wallpapers.
Improved
- Lighter wallpapers. A wallpaper smaller than your screen, and the
depth clock’s mask, are now scaled up a row at a time instead of through
a full-size working copy. On a 4K display, switching to a 2880 × 1620
wallpaper peaks at 125 MiB instead of 202 MiB, and the start-up peak
with a 1080p wallpaper and the depth clock drops from 205 to 170 MiB
(147 to 116 MiB on a 1600 × 1000 display). The scaling is faster too:
53 ms instead of 96 ms to bring a 1080p picture to 4K. The picture is
pixel-for-pixel the same, and memory once settled, video memory and
frame times are unchanged.
0.8.2 — 2026-11-03
The sidebar stays open at the screen edge. The session dock stays on its
edge.
Fixed
- The sidebar stays open at the screen edge. With hover to open on,
resting the pointer on the sidebar’s outer edge no longer makes it close
and reopen over and over. Its scrollbar sits there, and the sidebar took
the pointer reaching the scrollbar for the pointer leaving.
- The session dock stays on its edge. While it springs open, the
session dock no longer pulls away from the screen edge and leaves a gap;
it stretches through the bounce instead.
0.8.1 — 2026-11-03
A lighter start.
Improved
- A lighter start. Right after it starts, the shell now holds far less
memory: 15 seconds in, 37–39 MiB instead of 111–123 MiB on a 4K display.
Its start-up peak is 11 MiB lower, 30–37 MiB lower with a wallpaper,
because fonts for other scripts load one face each until you see text in
them, and a wallpaper is put on screen without full-size copies of
itself. Memory once settled, video memory and frame times are unchanged.
0.8.0 — 2026-11-02
Side bars. Mandara speaks Persian, Korean, Urdu and Bengali. Swipe a
notification away. App icons share one shape.
New
- Side bars. A slim bar of icons and pills on the left and right
edges, holding any plugins you like in three groups; their panels pour
out sideways. By default they join the top bar into one frame with
curved corners, or they float apart as glass pills, an island or a slab.
Pin each one, or let it slide away until your pointer touches its edge,
and style them to your heart’s content: width, item size and style,
corners, glass, rim light, an accent colour per side and more. Turn them
on in Studio → Bar → Side bars (or
mandara msg side-bars on). While
they’re on they take over the widget sidebar’s edge; your sidebar comes
back just as you left it when you turn them off.
- Mandara speaks Persian, Korean, Urdu and Bengali. The whole
interface, Studio and the login screen, with Persian and Urdu laid out
right to left. Pick yours in Studio → General → Language, or leave it on
System to follow your desktop.
- Swipe a notification away. Drag a notification card sideways and let
go: it leaves the screen but stays in the notification center. The × still
dismisses it for good. (#24)
Improved
- App icons share one shape. Every app icon in the launcher (all three
looks), the dock and its Applications drawer now sits on the same
squircle, so icons drawn as squares, circles or free shapes read as one
set. Prefer circles, or each icon as its theme draws it? Studio →
Launcher → App icon shape.
- Tidier Launcher and Displays pages in Studio. The launcher looks are
now three cards of exactly the same size, followed by placement, the
launcher button, search & results, behaviour and your apps, in that
order. Displays shows the arrangement with a card per display (so a
switched-off display is easy to pick again), the selected display’s
settings in neat aligned rows, which displays show each part of the
shell, and your profiles as equal cards with Apply and Delete.
- Desktop widgets page, redone. The preview and your placed widgets
sit side by side at the top, the selected widget’s settings come in
tidy cards (Style, Place, Look, Shape and frame, Content), and the
Add a widget gallery is an even grid of tiles that are all the same size.
- A proper font picker. Font settings open a floating list next to the
button instead of stretching the whole row: search right away, move with
the arrow keys, Page Up / Page Down, Home and End, pick with Enter, and
close with Esc or a click anywhere else.
- Studio uses big screens. On wide windows pages grow wider, card grids
gain columns, settings sit in two columns, and the plugin store’s
category chips spread across the width; on narrow windows the chips
become a strip you can scroll or drag.
- A new logo. Mandara’s logo is now a phoenix rising from a
Mediterranean wave, in violet, cyan and silver, and the launcher button
in the bar shows it in colour. Prefer another icon? Pick one in Studio →
Launcher → Button icon. (#23)
- A tidier widget gallery. Look-alike widgets now share one tile in
Studio → Desktop widgets: the clocks are Stacked, Headline, Day block,
Analog, Digital, Progress, Greeting and Text (plus the depth clock), and
the monitors are System monitor and Thermals. Pick a look from the
widget’s new Style row, with a small preview of each; the widget
stays where it is and keeps your colours and font. Widgets you already
placed keep their exact look. (#23)
- Less memory from the start. Every surface the shell opens (the bar,
the dock, the invisible strips that reserve the bar’s space, popovers,
the launcher) used to compile its own copy of the drawing shaders. They
are built once now and shared. Measured right after start: about
1.4 MiB less of the shell’s own memory with the default setup on a 4K
test session, and 4 MiB less (36.4 → 32.4 MiB) in the demo desktop with
the dock. Windows that open later skip that work too.
Fixed
- Floating panels drag smoothly. A panel popped out onto the desktop
now follows your pointer exactly, frame by frame, wherever you drag it.
Before, it only moved once the pointer had slipped off its grab strip,
so it stuck and jumped, and letting go over the card often didn’t save
where you put it. You can grab it by its whole top strip or its edges
(never the panel’s own buttons), a plain click never nudges it, and its
place is saved once, when you let go.
- Wi-Fi switched off no longer says “Connecting…”. With Wi-Fi off and a
container or virtual-machine network up, the Network card claimed it was
connecting. It now reads “Wi-Fi is off”.
(#24)
- Notifications don’t get stuck after a click. Clicking a notification
usually brings its app forward, and the card thought the pointer was still
on it, so its countdown froze until you pressed ×. It now carries on as
soon as the pointer is gone.
(#24)
- The Screenshot panel gets out of the way at once. Clicking Region,
Window, Screen or Record region in the bar’s Screenshot panel used to
fold the panel away slowly, so it lingered on screen and could end up in
the shot. It now disappears instantly, and the capture waits until it’s
gone.
- A region selection never gets stuck. Letting go of the mouse over the
capture toolbar or past the edge of the screen left the selection stuck,
and the next click didn’t capture. The drag now always ends where you
let go.
- Japanese and Chinese stay sans-serif. Semibold Japanese and Chinese
text (headings, the selected row) no longer switches to a serif font, and
Japanese characters use their Japanese forms even when your system
language is something else.
0.7.0 — 2026-11-02
Shortcuts cheatsheet. Task progress. Eye breaks. Presentation mode.
New
Twelve new plugins. They all ship switched off: turn on the ones you want
in Studio → Plugins, where a new For developers shelf collects the
developer tools.
- Shortcuts cheatsheet. Every keyboard shortcut, Mandara’s and your
compositor’s, in one searchable sheet. Bind
mandara msg keybinds toggle to a key of your choice.
- Task progress. Scripts, long builds and AI agents can put a progress
ring in the bar (
mandara msg progress set build 40%), with a
notification when the task is done or fails.
- Eye breaks. Gentle 20-20-20 reminders that count only the time you’re
actually at the computer and wait while a game or video is fullscreen.
- Presentation mode. One switch for talks and screen sharing: do not
disturb, keep the screen awake and hide the desktop widgets. Turning it
off puts everything back the way it was, even if the shell restarted in
between. It can also switch itself on while you share your screen.
- Share to phone. Send clipboard text, a screenshot or a file to your
phone: scan the QR code and it downloads over your own network, once.
- Tailscale. Your tailnet at a glance: peers, direct or relayed
connections, exit nodes, and connect or disconnect.
- Uptime monitor. Watches your sites and services and lets you know
when one goes down or comes back.
- Local AI. See which Ollama models are loaded and how much GPU memory
they use, and unload them before you start a game.
- Listening ports. Which apps listen on which ports and who can reach
them; open one in the browser or end the app.
- Git repositories. Uncommitted changes and unpushed commits across
your projects, with a terminal one click away.
- CI status. GitHub Actions runs of your repositories in the bar, with
a notification when a run finishes.
-
Crash reports. Apps that crashed this week, with the report to copy
and a debugger one click away.
- Pin a panel, or pop it out. Point at any open panel and a small tab
appears with two buttons. Pin keeps the panel open while you click
around and work in other windows. Pop out lifts it off the bar into a
floating card you can drag anywhere and keep beside your work, as many as
you like. Floating cards come back where you left them after a restart
(Studio → Bar → Drop-down panels). Also
mandara msg panel pin|float|dock.
-
Jannah. A gentle daily reminder of Jannah: a verse or hadith, its
meaning and one good step for today, in the bar, the sidebar or on the
desktop. Switched off by default; turn it on in Studio → Plugins.
-
Qur’an and Hadith. Two companion plugins: a Qur’an reader with
recitation, and a library of the hadith collections. Both are switched off
by default and download their content only when you turn them on.
- Mandara speaks Bahasa Indonesia. The whole interface, Studio and the
login screen are translated, and dates follow Indonesian conventions.
Pick it in Studio → General → Language, or let Mandara follow your
system language.
-
Many more quotes for the Quote widget, all real. When you haven’t
written your own, the desktop Quote widget now picks from 152 sayings
instead of six,
from Ibn Khaldun, al-Mutanabbi and Gibran to Confucius, Seneca, Bashō,
Tagore, Rumi, Marie Curie, Achebe and Frida Kahlo, plus a few proverbs.
Every one was checked against its source, so no made-up “famous quotes”.
The card names the work under the author when it fits (“Seneca, On
Providence”), and each quote is translated into all of Mandara’s
languages, in the author’s own words where the original exists.
-
Hide the slider handle. Prefer a plain fill? Set Themes → Style →
Slider handle to None and sliders show just their rounded fill, with
no handle line. (#20)
- Launcher looks. Studio → Launcher has a new Launcher looks picker
with three ready-made looks, one click each: Classic (the list
launcher you know, still the default), Grid (every app as a large
icon with category chips; arrows move in all four directions and the
tiles glide into place as you type) and Beacon (a centred glass
search bar in the style of macOS Spotlight, with Apps, Files, Actions
and Clipboard buttons beside it and your results grouped under it). You
can still change any setting afterwards. Scripts can switch too:
mandara msg launcher look grid. The launcher now also frees every icon
it loaded when it closes.
Fixed
- Sliders keep up with your pointer. Dragging a slider in Studio, such
as Bar → Height or Notch width, used to trail behind the pointer: every
tiny move rewrote the whole configuration, and the bar’s height made the
compositor re-tile all your windows, Studio’s own included, on every
step. The handle and its value now follow the pointer on the very next
frame, the setting is applied at most once a frame, and windows move
once, when the slider rests. Compositor gaps and borders are rewritten
once the slider rests too. (#20)
- Bar groups never overlap. A long window title could run underneath
the clock in the middle of the bar. Each group now gets the room up to
its neighbour, a long title ends in an ellipsis there, and on a very
narrow bar the items nearest the middle make way first. This works in
every bar style and on every edge. (#21)
- Workspace numbers stay centred. When an app’s icon couldn’t be drawn,
its workspace pill kept an empty space for it and the number sat off to
one side. A broken icon now falls back to the app’s coloured letter, so
the pill always shows what it made room for. (#20)
- The depth model’s download shows its progress. Studio → Wallpaper
(and the Wallpaper depth plugin’s settings) now shows a live progress bar
while the depth model downloads, an error with Retry if it fails, and
Installed once it’s there, with a button to start using it. Before,
the Download button gave no sign of anything happening.
- Two monitors, one panel. Clicking something in the bar opened its
panel on every monitor’s bar at once, and the sidebar slid in on every
screen. A panel and the sidebar now open only on the monitor you used
(a shortcut or command opens them on the monitor you’re on).
(#22)
- Desktop widgets per monitor. Right-click a widget in edit mode and
pick Only on this display, so each screen keeps its own widgets.
Studio → Desktop widgets → Displays now lists every connected monitor,
not just the ones in a saved display profile.
(#22)
- The login screen stays on one monitor. With two monitors, the
login screen was stretched across both. It now shows on one, and
updating Mandara moves an existing login screen over too.
(#22)
- Filter chips scroll with any mouse. The clipboard’s categories, the
to-do lists, the note topics and the dock’s app categories now scroll
sideways with a normal mouse wheel, can be grabbed and dragged, and show
arrows when there are more chips off to the side.
Improved
- Sliders have a new look. Every slider, in Studio and in the shell’s
panels and sidebar, now has a rounded fill, a slim upright handle with a
small gap on each side, a softer track with a dot at its end, and a
little spring when you press it. Studio’s sliders show their value in a
bubble above the handle while you drag. (#20)
- A quicker start. Loading the built-in plugins at startup now takes a
fraction of the memory work it did (under half a megabyte instead of
about 16 MB), so the shell is ready a little sooner.
- A roomier clipboard. Each entry’s buttons appear when you point at
it, so code, links and text use the whole width of the row. Pinned and
collected entries keep a small mark. Code previews are only as tall as
the code, and short snippets read “1 line”.
0.6.0 — 2026-11-02
Rounded screen corners are on by default.
Improved
- Rounded screen corners are on by default. New setups round all four
corners of every display, and the edge-frame bar’s outer corners round
with them. If you set Mandara up before this release, turn them on in
Studio → Sidebars & hover → Screen corners; the Radius slider is
next to the switch. (#19)
0.5.2 — 2026-11-01
The launcher and Alt+Tab open on the right display. Choose the displays
for the launcher and pop-ups.
Fixed
- The launcher and Alt+Tab open on the right display. With more than
one monitor on Niri, the launcher, the window switcher and the password
and pairing prompts always opened on the same monitor, whichever one
Niri listed first, instead of the one you were on. They now follow your
focus on Niri, as they already did on MangoWM, Hyprland and Umbriel.
(#18)
New
- Choose the displays for the launcher and pop-ups. Displays → Shell
on each display has a new Launcher & pop-ups row for the launcher,
Alt+Tab, the app installer and the password and pairing prompts. Until you
set it, it follows On-screen displays, so if those show only on your
main display, the launcher and Alt+Tab now open there too. Choose All
to have them open on whichever display you’re on.
0.5.1 — 2026-11-01
A missing wallpaper file no longer spins the shell. Big wallpapers switch
with far less memory.
Fixed
- A missing wallpaper file no longer spins the shell. If your
wallpaper was deleted or moved, Mandara kept trying to load it in a tight
loop, filling the log and, over time, crashing. It now tries again every
30 seconds and stays idle in between.
Improved
- Big wallpapers switch with far less memory. Switching to an 8K
picture used to need about 770 MB for a moment; it now needs about
300 MB, and a 4K switch needs no extra memory at all. The picture is
decoded once for everything that uses it (the desktop, the frosted
menu, the depth effect and the theme colours), and large shrinks no
longer go through a huge temporary buffer.
0.5.0 — 2026-11-01
Umbriel joins MangoWM, Niri and Hyprland; a config doctor that asks your
compositor what’s wrong and helps you fix it; desktop widgets as plugins,
with dozens of new widgets and shapes; a depth effect that can use a small
model; a richer clipboard, calendar, bar and wallpaper page; Alt+V for the
clipboard and Print for screenshots.
New
- Config doctor: your compositor checks your config. Mandara asks
MangoWM, Niri, Hyprland or Umbriel itself whether your config is fine,
using its own checker on every file your config includes, and explains
each problem in plain words: where it is, whether it’s in your files or
Mandara’s, and what’s wrong (an option a compositor update removed or
renamed, a typo, a broken line, a duplicate keybind, a missing file).
Studio → Compositor → Config doctor opens the line in your editor,
comments it out or removes it — always with a backup, checked again and
undone by itself if it made things worse — and regenerates Mandara’s own
file, leaving out anything your compositor version doesn’t support. It
runs with
mandara setup, whenever Mandara rewrites its file, and once
at start-up after your config or compositor changed, with one
notification for new problems (and Remind me later). In a terminal:
mandara setup --check and mandara setup --fix <id>=comment.
- Desktop widgets take any shape. Every desktop widget can now sit
on a circle, a squircle, a scalloped cookie, a flower, a pentagon, a
slanted card, chamfered corners or torn paper, with an outline, a soft
or hard shadow in any direction, a header line and a frame: a classic
window, washi tape or a polaroid. Turn and mirror any widget too.
Studio → Desktop widgets → Shape and frame has them all; widgets you
already have look exactly as before.
- Nine new clock faces. A stacked card clock, the time in a shape
(that can turn a little every minute), dot-matrix and pixel digits (with
Eastern Arabic digits drawn dot by dot), a digit in each box with a week
strip, a slanted HUD clock with the part of the day and the moon, hands
over giant numerals, an orbit clock, and text lines you write yourself
from placeholders like
{weekday} and {HH}:{mm}. The analog clock
gains scalloped and flower dials, dots or numbers, blade hands, a
seconds dot and the date in a bubble. The greeting clock takes your own
greetings and a second line.
- Day, week, month and year progress as a ring, a wavy ring, a bar or
a year of dots, with how much time is left.
- Productivity on the desktop. A to-do list you tick right on the
desktop, a sticky note from Notes (pastel, white or your colour, ruled,
squared or dotted), the focus timer you start and pause with a click, a
quote card with sayings that change every day (or your own), and your
notes as tabs along a screen edge.
mandara msg desktop widgets press
does what any click on a widget does.
- Calendars painted on the desktop. A month with today marked by
the shape you like, this week on one row, what’s coming up with date
chips, and a big date tile, with your calendar’s events.
- The sky on your desktop. The sun on its arc from sunrise to sunset
(the moon walks it at night), tonight’s moon and how much of it is lit,
and a globe lit where the sun is right now with your place and the moon
over it. Worked out from your location, nothing fetched.
- More weather layouts: a friendly sentence about the sky (or your
own words for each kind of weather), a round disc with a dotted ring,
and the next hours as a temperature curve.
- You and your shortcuts on the desktop. A profile card with your
picture in any shape, launch tiles for apps, folders and links, quick
toggles (Wi-Fi, Bluetooth, do not disturb, night light, keep awake, dark
mode, mute) that change shape when on, volume and brightness sliders you
click or scroll, and your theme’s palette (click a swatch to copy it).
- A little fun. A desk cat that breathes, blinks, sleeps at night,
bobs along to music and purrs when you click it; soap bubbles; a photo
frame that shows pictures from a folder (a polaroid if you like); any
picture as a cut-out sticker; and washi tape to stick on things.
- What plays, painted six ways. The cover on a turning record, a
pocket player with an LCD and buttons, the cover cut to a new shape for
every track, a tall side pill, a halftone (or one-bit) cover, and synced
lyrics with the current line lit. They show only while a player is
loaded, and move only while music plays and you can see the desktop.
- An LED meter visualizer, and the system monitor as segmented
meters, tall bars, thermal arcs for temperatures and the fan, or ring
gauges that are wavy or dotted and start wherever you like. Meters,
bars and arcs turn amber, then coral, only when a reading needs you: a
busy processor or a hot GPU when high, the battery when it runs low.
- Information on the desktop: a machine card (like a terminal fetch,
in rows or as tiles), screen time with the last days and your top apps,
the next prayer in a ring of the day or a list, a search field that
opens the launcher, and an “at a glance” line with the date, the
weather and the one thing worth knowing now.
- Your GitHub year, exchange rates, AI usage and games. A GitHub
contribution calendar with your streak, exchange rates for the
currencies you pick, Claude Code’s tokens today and this week (from its
logs on your computer, with an optional weekly budget) and your Steam
games as covers you click to play. The GitHub and rates widgets only go
online once you switch that on in Studio, ask rarely, keep their answer
for the next start, and never ask while the desktop is covered.
mandara msg diagnostics frames now also reports what the desktop
widgets’ live frames cost (desktop_live_ms).
- Mandara now runs on Umbriel. Umbriel joins MangoWM, Niri and
Hyprland as a first-class compositor. The bar shows each screen’s
workspaces, the active workspace’s own layout (click it to cycle
scrolling, dwindle, master and stacking) and your keybind submap.
mandara setup adds one optional include to
~/.config/umbriel/config.toml and writes your binds, window rules,
border colours, gaps, input and display settings to Mandara’s own file;
Studio’s Compositor page gets an Umbriel tab, and old launcher binds or
a second bar in your Umbriel config are found and retired like on the
other compositors. Values you set in your own config.toml still win.
- More ways to shape the bar. Give every bar item a capsule of its
own (in any bar style) in a soft wash, a card tone or an accent tint,
with an optional outline and a strength slider. Pick the bar’s text
weight, switch off the hover highlight, and keep extra space between the
bar and your windows. Studio → Bar has them all.
- Empty bar space does more. Besides right-click, a middle click can
run any hot-corner action (launcher, overview, sidebar, a command…) and
scrolling can switch workspaces or change the volume.
- Bar items show what you want. Workspace pills can show numbers,
short names or dots, with or without app icons, and hide empty
workspaces. The active window can show its app, its title or both, up to
a width you choose. Volume, battery and the media track can show just
their icons, and the media item can hide while paused.
mandara msg bar hide, bar show and bar toggle put the bar away
and give its space to your windows until you bring it back (touch the
edge to peek at it).
- Your clipboard sorts itself. Everything you copy is recognised as
you copy it: plain text, links, Markdown, code (with its language),
CSS, colours (hex,
rgb(), hsl(), oklch() and friends),
screenshots and other images, or files from your file manager. The
panel shows each one the way it looks best: a swatch next to a colour,
tinted code in a monospace font, rendered Markdown, a thumbnail for
images, a file’s icon, name and folder, and a link’s site.
- Filter chips and collections in the clipboard. Chips above the list
narrow it to one kind, your pins or a collection, and the search box
looks through text, kinds, languages, sites and collection names. Make
collections for anything you want to keep together (a palette, your
snippets, links for later): the folder button on an entry adds it, a
right-click on a collection’s chip renames it, and collected entries
survive clears just like pinned ones. Studio → Plugins → Clipboard
turns the chips off, sets how many lines of code and Markdown a row
previews and how many collected entries are kept, and every panel action
has a
mandara msg clipboard … command too.
- More desktop widgets. An analog clock (with an optional sweeping
seconds hand), the weather with the days ahead, a world clock for the
cities you care about, a countdown to a date that matters, and system
gauges: ring meters for CPU, GPU, memory, disk and battery.
- Every widget can sit on a plate. Give any widget a frosted glass or
solid plate behind it, with its own opacity, corners and padding, so it
reads over any wallpaper. Widgets also gained an alignment setting and
a strength slider for their shadow or glow.
- Your numerals, your calendar, your language. Every widget that shows
numbers or dates now lets you pick Western or Eastern Arabic digits (or
follow the language), the Gregorian or Hijri calendar, both, or no date,
and the language it writes day and month names in. The depth clock’s
date pill follows these too. Widgets you already have look exactly as
before.
- Desktop widgets are plugins now. Clocks, the system monitor,
decorations, visualizers, the now-playing and calendar cards, weather,
world clock and countdown each come from their own plugin in Studio →
Plugins (Desktop widgets). Turn one off and its widgets step aside until
you turn it back on. Plugin authors can add their own desktop widgets
too (see PLUGINS.md); the moon phase example now has one.
- A font for all your widgets. Typography → Desktop widgets now sets
the font every widget uses, and any widget can pick its own family from
the same searchable font list.
- Your wallpaper greets you in Studio. Studio → Wallpaper now opens on
the wallpaper on your desktop, shown large at its own shape with its
name, size, folder and colours, plus quick buttons to change or open the
folder, pick one at random and share it with the login screen. Below it
are all the other wallpapers in your folder: click one (or move with the
arrow keys and press Enter) to switch, filter them by name, and add any
of them to a slideshow playlist. Even folders with thousands of
pictures stay quick.
- A much richer slideshow. The new Slideshow tab has a big on / off
switch, the time of the next change, Previous and Next buttons, one-click
intervals from 5 minutes to a day (or type your own, like
90m or
2h), and four orders: shuffle (every wallpaper once before any
repeats), random, by name and newest first. It can use your wallpaper
folder, another folder with all its sub-folders, separate folders for
the light and dark theme, or a playlist you pick. It can change at
login, only between certain hours, pause during fullscreen apps, on
battery or while locked, use its own transition, and give each display
its own wallpaper. Every option is also a mandara msg wallpaper
slideshow … command.
- A sharper depth clock, if you want it. The part of your wallpaper
drawn over the desktop clock now comes from its own built-in plugin,
Wallpaper depth, with two modes in Studio → Wallpaper: Hand-tuned
(what you had, no download) or Model, a small depth model (27 MB,
downloaded once when you pick it) that sees what is near and far in the
picture. It cuts out antlers, skylines and ridges cleanly, and lets you
slide the clock deeper into the scene or nearer. It runs once per
wallpaper at the lowest priority in a separate helper that exits right
after, so the shell itself uses no extra memory.
- Place the clock for you. Place the clock (or
mandara msg depth
place-clock) moves the desktop clock to where the wallpaper’s subject
rises into it.
Fixed
- No more “Key binding conflict” warning on MangoWM. MangoWM treats
Play and Pause (and any two names for one key) as the same key, so a
Mandara shortcut could clash with one you already had. Mandara now
checks your keys the way MangoWM does, including your keyboard layouts
and key modes, and leaves yours alone. Niri and Hyprland get the same
care for keys with two names, like Page Up and Prior.
- Arabic on desktop widgets stays joined. Widgets that space out their
letters (headers, captions, the countdown) no longer pull Arabic words
apart; spacing now applies only to scripts whose letters stand alone.
- The volume slider changes what you hear, even with Easy Effects.
Easy Effects puts its own output in front of your speakers, and that
output ignores volume, so the slider in the main menu, the Sound panel,
your volume keys and the on-screen display moved nothing. They now follow
the device your sound really plays on.
- The main menu’s side rail sits exactly in the middle, with the same
space above it as below.
- A calm login screen preview in Studio. The preview no longer drifts
or judders: it shows your wallpaper standing still and only moves when
you try something out or change a setting.
Improved
-
Alt+V opens the clipboard, and Print takes screenshots. Alt+V joins
Super+Shift+V for the clipboard; Print captures the screen, Alt+Print the
focused window and Ctrl+Print opens the snipping tool. Keys you already
use for something else stay yours. Change any of them in Studio →
Keyboard shortcuts (the Clipboard and Screenshot chips add new ones).
-
New artwork for the new plugins. The depth effect and every desktop
widget plugin have their own logo and a painted store cover in the
Corniche, Twilight and Obsidian palettes.
-
The date stays readable over a depth wallpaper. The clock’s digits can
still tuck behind the wallpaper’s subject, but the date line now comes to
the front as soon as anything covers it, and Place the clock aims for a
lighter overlap so no digit disappears.
- Sidebars fit the bar like puzzle pieces. A flush sidebar now uses
the bar’s own material and meets it with the same curved joins in every
style: it merges into the notch, hangs from the edge frame, carries the
hairline’s accent line down its edge and continues a side bar’s strip,
with clean curves into the screen edges.
- The main menu’s glass always shows your wallpaper. Until its frosted
copy is ready (or when there is no wallpaper to frost) the menu stays
solid instead of letting desktop widgets show through.
-
A calendar worth opening. The clock’s drop-down is redesigned: the
time sits on a glass hero beside a page-a-day tile, and the month below
slides from page to page with the arrows, Today, the scroll wheel or
the keyboard (arrows, Page Up / Down, Home). Click any day to see its
events; today lists what’s coming up and marks the one happening now.
Weekends and the neighbouring months’ days are set apart, each calendar
keeps its own dot colour, and the panel no longer cuts off its agenda.
New in Studio → Date, time & location: Hijri dates, Eastern Arabic
numerals and your weekend days (all off or automatic, so your calendar
looks as before until you turn them on). Scripts get calendar goto and
calendar day.
-
Arranging widgets is smooth now. Dragging a widget in Studio’s
preview or on the desktop follows your pointer at your display’s full
frame rate: the widget slides as it is and is painted once where you
drop it, sliders apply at most once per frame, and a widget behind the
wallpaper’s subject no longer makes the subject redraw on every move.
Studio also stopped quietly reloading the wallpaper preview over and
over when its path started with ~, and the preview now uses the same
fonts as your desktop.
- A tidier Wallpaper page. Its settings are now in tabs: Wallpaper,
Slideshow, Fit & effects (fill, transitions, light and dark wallpapers,
video and depth), and Generator and Online when those plugins are on.
The wallpaper generator no longer sits at the top of the page.
mandara studio wallpaper --tab slideshow opens a tab directly.
-
The slideshow costs nothing while it’s off. It used to check a timer
every 30 seconds even when switched off; now it only wakes when a change
is due.
- “My masks only” is gone. Your own masks still win over anything
Mandara finds; if you had the subject mask switched off, the depth
effect stays off.
- Fresh screenshots everywhere. The README has a new Desktop widgets
section, and the guides show today’s Studio pages, the new plugin
covers, the main menu, the clipboard with its kinds and collections, the
notch bar with a sidebar fitted to it and the depth clock.
- A shorter README and a real documentation folder. The front page on
GitHub is now a quick tour with a few screenshots and the install
command. Everything else moved, word for word, into the
docs folder:
one page per topic (install, usage, your desktop, dock and launcher,
wallpapers, plugins, Studio and more), with an index to start from.
- Back-to-back releases no longer trip over each other. A release that
waited behind another one used to fail when it tried to save its version
bump. It now starts from the latest code, so both go through.
Under the hood
-
Plugin art takes less space. Built-in plugin icons are now embedded as
lossless WebP: the same pixels, about a fifth fewer bytes, so 58 plugins
with their new artwork still fit the old size budget.
-
Fresher, leaner building blocks. Mandara’s libraries are updated to
their latest versions (including the engine that runs plugins), and
parts of them it never used are switched off, so the shell links fewer
duplicate libraries.
0.4.0 — 2026-11-01
A new main menu, a Notch bar that hangs from the top edge, your wallpaper
on the login and lock screens (which now share one design), a far more
customisable login screen with ready-made looks, plus fixes for night
light, media keys, album art, the process list and logging out.
New
- A new main menu. Right-clicking empty bar space opens a control
centre: your profile, what’s playing, the time and weather, quick
toggles and a volume slider on its home page, then pages for apps and
tools, themes and your session (Lock, Log out, Sleep, Restart, Shut
down). A rail down its side jumps to the sound, network, Bluetooth,
system monitor, weather, calendar and notification panels, and to
Studio. It’s frosted glass over your wallpaper with solid cards on top;
Studio → Bar → Main menu sets how see-through it is, or makes it solid.
- Choose what right-clicking the bar opens. Studio → Bar → “Right-click
on empty bar space” picks the bar’s main menu or the desktop’s menu.
- A Notch bar. A new bar style that hangs from the top edge, narrower
than the screen, with curved shoulders where it meets the edge and
rounded corners below; panels pour out of it. Pick “Notch” in Studio →
Bar → Presets for the full look, or set the style yourself and tune its
width (Studio → Bar → Notch width).
- Group capsules. Each group of bar items can sit on a soft capsule of
its own (Studio → Bar → Group capsules), on the edge frame, the hairline
and the notch.
- Design the login screen your way. Mandara Login can now put the
sign-in on a card (size, padding, corners, fill, border, a back button and
the session picker inside it), show your picture without a frame, put the
sign-in button beside the field, give the focused field an accent border,
hide what you type as varied shapes instead of dots, use a full-width
session field and outlined power buttons, show a logo, and offer a colour
scheme switcher people can use right on the login screen.
- Ready-made login looks. Studio → Login screen → Looks applies a whole
design in one click: Mandara’s own, or “Midnight card”, a quiet clock over
one outlined card in midnight navy and citrine. Change anything after.
- Pick fonts from a list. Every font setting is now a searchable list of
the fonts on your system, each shown in its own face. You can also type a
name you haven’t installed yet. Typography has new per-surface fonts too:
the bar, panels and plugins, desktop widgets, the lock screen and its
clock, and Studio itself, each following the interface font until you
pick one. The login screen has its own text font as well.
- A new theme, Night Citrine. Deep midnight navy with pale citrine, soft
lavender and mint, for the shell and the login screen.
- Your wallpaper on the login screen. Mandara Login now shows the
wallpaper of whoever is picked, and switches as you pick someone else.
Your session shares a copy for it (Studio → Wallpaper → “Show on the
login screen”, on by default; Studio → Login screen → “Each person’s own
wallpaper” turns it off for everyone). People without one see the usual
backdrop. Apply your login screen settings once in Studio after
updating, so the shared folder is created.
- A settings button on the weather card. The weather card in the bar
panel and the sidebar has a button in its corner that opens Studio on
every weather setting.
Improved
Fixed
- Night light works on Intel laptops. Some graphics chips, Intel ones
among them, use colour tables larger than Mandara expected, and Mandara
sent a shortened table the compositor refused, so the screen never
warmed. It now sends the full table.
- Media keys work. Play/pause, next and previous (often F4–F6 on
laptops) and the microphone mute key now control your music, and the
laptop brightness keys work on installs from before they were added.
Keys your own compositor config binds are left alone.
- Album art shows up. Covers from players such as Spotify were saved
without a file extension, so they never loaded. They’re now saved and
read properly, and images are recognised by their contents everywhere.
-
“All processes” opens the process list. The link in the system
monitor did nothing, because the process list is switched off on new
installs. It now switches it on and opens it.
- Log out works on MangoWM. The power menu’s Log out button (the dock
that slides in from the right when you press the power button) did
nothing on MangoWM: Mandara asked MangoWM to quit but hung up before
MangoWM answered, and MangoWM drops a request whose sender has gone. It
now waits for the answer, so Log out ends your session. If MangoWM can’t
be reached, it asks logind to end the session instead.
-
The power menu tells you when something fails. Lock, Log out, Sleep,
Restart and Shut down used to fail silently, for example when the system
refused or a service wasn’t running. Now a notification says what went
wrong. Lock also uses Mandara’s own lock screen directly when logind
can’t be reached, and Lock and Log out now always target your own
session.
- Night light says why when it can’t warm your screen. Turning night
light on used to show “Warm” even when nothing changed, for example when
another night-light app such as wlsunset or gammastep already controls
the screen colours, or when the compositor or display driver refuses the
change. Mandara now shows a notification that names the app when it finds
one, and
mandara msg nightlight status lists it too. If night light ever
loses its connection to the compositor, turning it off and on again
reconnects it.
Under the hood
- Warnings are errors. Every compiler and linter warning now fails the
build, across the whole project, and the ones already there are fixed.
- Version numbers follow what changed. A new feature anywhere in the
shell now makes a minor release (like 0.4.0), not only one in its startup
code. Signed updates came out as 0.3.4 because of this; the next release
with a new feature gets the minor number.
0.3.4 — 2026-10-31
Signed releases: Mandara now checks that an update really comes from its
maker before installing it.
Improved
- Signed updates. Every release is now signed with Mandara’s own release
key, and Studio’s Update now,
mandara update and mandara install check
that signature before installing anything. If someone replaced the files
of a release on GitHub without the key, Mandara refuses the update and
tells you why, instead of installing it. To update, open Mandara Studio
(click the grid button at the start of the bar, or press Super+Space and
search for “Studio”), go to About and press Update now.
0.3.3 — 2026-10-31
The last open finding from the security review, and icons that say what
they do.
Fixed
- Your own copy of Mandara never runs as root anymore. Studio’s
administrator actions (switching the login screen, applying its look,
unlocking keyrings at login) used to run the
mandara in your home folder
as root, which your account, or malware in it, could replace before you
approved the prompt. They now only run a copy that root owns and nobody
else can change: a package’s mandara, or Mandara’s new admin helper.
mandara install sets the helper up for you; on an existing install,
Studio sets it up the first time it needs it, with one extra approval.
Improved
- Icons that say what they do. The wallpaper generator now uses a
brush, “Surprise me” a die, and What’s new a release-notes page, instead
of generic sparkles. Star counts for plugins and cursor themes are
written out (“1.2k stars”) instead of a star symbol.
0.3.2 — 2026-10-31
A security release. Thank you to the person who reviewed Mandara and
reported what they found on GitHub.
Fixed
- Plugins stay in their sandbox. A plugin with the
commands
permission could ask Mandara to run any command, including ones that
start programs or add themselves to your startup apps. Now plugins may
only use the interface: open panels, control media and volume, post
notifications, add notes and to-dos. Everything else is refused, and
Studio describes the permission honestly.
- A window’s title can’t change your compositor config. Picking a
running window in Studio’s window rules copied its title into your
MangoWM or Hyprland drop-in as-is, so an app could choose a title that
added its own line. Titles are now cleaned before they’re written, for
every compositor.
- Plugins can’t freeze the shell or eat its memory. Each plugin gets at
most 64 MiB, a plugin can no longer sleep past its time limit, and the
size of what it draws is capped. A plugin that crosses a limit is simply
switched off.
Improved
- Marketplace plugins stay with their publisher. If a plugin’s
repository is renamed or handed to someone else, Mandara stops updating
it instead of quietly following, and the first install is now checked
against the release’s checksums too, not just updates.
0.3.1 — 2026-10-30
Multi-monitor setups get the right sizes everywhere, the clock keeps up
with time changes, and a handful of fixes from your reports on GitHub.
Fixed
- The bar and dock fit each monitor again. With two monitors, starting
Mandara right after a compositor reload could give each monitor’s bar
and dock the other one’s size, leaving the laptop without a bar and a
small bar floating in the middle of the big screen. Mandara now matches
every surface to its monitor by name, so the order the monitors are
listed in no longer matters.
- Full-screen overlays cover the screen you’re on. The session menu,
wallpaper picker, window switcher and password dialogs opened on a
bigger second monitor used to be laptop-sized and centred. They now open
on the monitor you’re using, at its size.
- The clock follows time changes right away. Changing the time zone,
switching on automatic time, or the clock being corrected from the
internet now updates the bar, the desktop clock and the lock screen at
once, instead of after you change the clock format or wait for the next
minute.
- Even buttons in Themes → Looks. “Restore my look” was taller than
the buttons next to it. They’re all the same size now.
- The new-note button works again. Pressing + in the Notes panel or
card created a note and threw it away in the same moment, because
Mandara tidies up empty notes you leave behind and the brand-new note
was still empty. Now the note you just opened stays put until you’ve
typed something, and an empty one is only cleaned up once you leave it.
Improved
- Pomodoro settings are one click away. The Pomodoro panel and card
have a settings button that opens their Studio page, where you choose
how long focus sessions, short breaks and long breaks last, and how many
sessions come before a long break.
- Your wallpaper folder follows your language. New installs keep
wallpapers in the Wallpapers folder inside your own Pictures folder, for
example ~/Imagens/Wallpapers on a Portuguese system, instead of always
~/Pictures/Wallpapers. If you already have wallpapers in
~/Pictures/Wallpapers, Mandara keeps using it.
- New lengths show right away. Change the focus or break length while
the timer hasn’t started and it updates on the spot. A session that’s
running or paused keeps its time.
0.3.0 — 2026-10-30
A calmer, tidier Studio, and your clock and your location finally agree
with each other.
New
- Time zone and internet time in Studio. Studio → Date, time &
location now shows your system clock: its time zone, with a search to
change it, and a switch to set the time automatically from internet time
servers. Mandara asks for your password before changing either.
- A heads-up when your clock is in the wrong time zone. If your
clock’s time zone doesn’t match the place you’ve set, Studio tells you,
for example “Alexandria is in Africa/Cairo, but your clock uses
Asia/Riyadh”, and fixes it in one click. A wrong time zone puts the bar,
the lock screen and prayer times off by an hour, and it often only shows
when daylight saving time starts or ends. Scripts can use
mandara msg
time too.
Improved
- Studio is much easier to find your way around. Every page is now a
short list of collapsible sections, so instead of one long scroll you
see what a page holds at a glance. A closed section shows a preview of
its settings and how many you’ve changed, and its Reset works without
opening it. The first section opens for you, Studio remembers the ones
you open, and pages with several sections have Expand all and Collapse
all next to the title. Search still opens everything.
- Related settings live together. The bar’s layout, spacing and screen
frame are now separate sections, and so are its drop-down panels and how
they animate. Pop-ups are split into where they appear and what they
show, the launcher’s results have their own section, and the Themes,
Wallpaper and Launcher sections are ordered from everyday to occasional.
- Long extras tuck away. Designed themes, MangoWM’s tag & layout
studio, which displays show each part of the shell, and the sound
previews start folded, so the settings you use most come first.
- One location really is one location. Weather and prayer times now
follow the location in Studio → Date, time & location by default, so
typing your coordinates there is enough. A plugin only uses a place of
its own if you give it one, and “Use one location everywhere” still
overrides even that.
- Clearer “Locate me” errors. When your system’s location service
(GeoClue) can’t find you, which happens a lot because many Linux systems
ship it without a lookup service, Mandara now says so and suggests IP
lookup or typing your city.
0.2.0 — 2026-10-30
A lock screen that accepts your password, brightness controls for laptops,
and release notes you can read right inside Mandara.
New
- Brightness slider. The sidebar’s quick settings now have a
brightness slider, right under the toggles. It shows up on laptops, and
on desktops whose monitors support DDC/CI.
- Brightness keys just work. The laptop brightness keys now change the
screen brightness out of the box, with the on-screen display. If your
compositor config already binds them, Mandara leaves yours alone.
- What’s new in Studio. Studio → About has a new What’s new card with
every release’s notes. The version you’re running starts open, and you
can open any other release to read what it brought.
- See what’s coming before you update. When a new version is out, the
update card in Studio and
mandara update list what’s in it before you
install it, and mandara update apply shows what’s new once it’s done.
mandara changelog in your terminal. It shows this version’s notes,
or mandara changelog 0.1.1 for one release, --since 0.1.0 for
everything an update brought, and --all for the whole history.
--markdown and --json are there for scripts.
Fixed
- The lock screen could say your password was wrong when it wasn’t. This
happened when Mandara’s own PAM file was installed, for example by the
Arch packages: it only described how to check passwords, so the extra
account check fell back to a rule that refuses everyone. The lock screen
now only checks your password, like other screen lockers do, and the PAM
file is complete too. You don’t need to change anything; updating fixes
it. Thanks for reporting it on GitHub!
Under the hood
- Each GitHub release now uses its changelog entry as its release notes,
and the release pipeline dates the entry when it ships.
- The demo sandbox used for screenshots and tests can no longer reach real
monitors over DDC/CI.
0.1.2 — 2026-10-30
A small release that makes notifications and the notification center get
along.
Fixed
- Opening the notification center now clears the pop-up cards off the
screen. The cards that were showing move into the list, and anything
that arrives while the center is open lands straight in it, already
marked as read, instead of popping up on top of it. Close the center
and new notifications pop up as usual again. This works the same for
the notification panel and the sidebar’s Notifications tab. Thanks for
the report on GitHub!
0.1.1 — 2026-10-30
The first round of fixes from your feedback on 0.1.0. Thank you to
everyone who tried it, reported bugs and opened issues.
Improved
- Calmer out of the box. Fewer plugins start switched on (21 of 43),
so a fresh install feels lighter. Wallhaven browsing and cursor themes
are now optional plugins. They’re off by default, and off really means
off: no network calls and no cursor changes. If you’re upgrading, you
keep exactly the plugins you had.
- Theming your other apps is now your choice. GTK, Qt/Kvantum,
terminals, editors and compositor borders all start switched off.
Mandara remembers what it changes, and switching an app off puts its
original files back. Coming from 0.1.0? Your existing files stay as
they are. To hand an app back to Mandara, or to clean it up, switch it
on (or on and off again) in Studio → Themes → Other apps.
- Tidier Studio. Scroll bars are slim and hide when you’re not using
them. Looks and Designed themes show as compact swatch lists, with big
previews one click away, and Other apps is a neat grid of tiles.
- Liquid MangoWM tags. Every active tag gets its own pill, and
neighbouring active tags melt into each other with a smooth liquid
bridge. Before, viewing tags 1 and 3 together only highlighted tag 1.
Fixed
- Volume sliders follow your pointer again, even on slower machines.
They draw where your pointer is while you drag, keep dragging when the
pointer slips off the thin track, and only send the newest value to the
audio server, so nothing lags behind. Every slider in the shell gets
this.
- Rows in Studio light up as soon as your pointer moves onto them, not
only after you scroll. This was a small GPUI quirk, fixed for every
hover effect in Studio and the shell’s panels.
- The wallpaper picker no longer leaks memory. It used to grow by about
40 MB every time you opened it. It also can’t get stuck invisible while
holding on to your keyboard, it opens at the right size on every
display, and an unreadable image now shows a cross instead of loading
forever.
- The desktop’s right-click menu opens at your pointer on displays you
plug in after Mandara starts, and it can no longer crash the shell by
asking for a zero-size window.
Under the hood
- Installing from the Arch recipes in
packaging/aur works now. Every
release fills in their real version and checksums.
- The release pipeline’s version bump got two fixes, so releases build
cleanly from start to finish.
0.1.0 — 2026-10-29
The first public release of Mandara Shell: a design-first Wayland desktop
shell for MangoWM, Niri and Hyprland, written entirely in Rust on GPUI.
New
- One fast native binary. The bar, dynamic island, dock, launcher,
sidebar, notification center, wallpaper engine, lock screen, login
manager and settings studio all run in a single process, rendered on
the GPU with real spring physics. The whole shell stays under 100 MiB
of RAM, with about 0.1% CPU when idle.
- First-class MangoWM, Niri and Hyprland. Tags or workspaces, live
window rules, keybinds and layouts. Mandara never overwrites your
config: it writes its own drop-in file and adds a single include line.
- Mandara Studio. Every setting, applied the moment you change it:
colours, bar styles, spring physics, panels, the compositor, audio,
displays, login screen and plugins.
- Colour that follows your wallpaper. Material 3 palettes extracted
from your wallpaper, smooth OKLCH colour transitions, and Alexandrian
signature themes (Mandara Corniche, Montaza Twilight, Mandara Obsidian)
next to community favourites.
- Wallpapers with depth. A desktop clock that tucks behind the
subject of your photo, AV1 video wallpapers, and a built-in wallpaper
generator with twelve styles, up to 8K and seamless video loops.
- Plugins. 43 built-in plugins, plus sandboxed WebAssembly plugins
from a community marketplace. Community plugins are checked before they
install, and ones that fail the check are flagged.
- Updates by binary patch.
mandara update downloads a few
megabytes instead of the whole release, with the full download as a
fallback.
- One-command install.
mandara install sets up the binary, the
packages it needs, your compositor and the login screen, and
--dry-run shows you everything first.
- Ready for scripts and agents. Almost everything the UI does is a
documented
mandara msg command with JSON replies.
- Ten languages, including right-to-left Arabic.