v10.0.110.7 released

Build Native Linux Apps with .NET MAUI

A complete Linux platform for .NET MAUI: 50+ controls, GPU-native rendering on OpenGL ES or Vulkan, multi-window, native Wayland and X11, a composited WebView with Blazor Hybrid and HybridWebView, and deep desktop integration: clipboard, drag-and-drop, IME, desktop portals, system tray, printing, media, maps and PDF. The libraries you already use come too: CommunityToolkit, LiveCharts2, ReactiveUI and Prism run unmodified, and an opt-in bridge brings Syncfusion's controls to Linux. Compatibility is measured, not claimed: dotnet/maui's own Core, Controls and Essentials device tests run against OpenMaui with none failing, and 125 of 125 scorecard items are covered by 5,200+ tests. Your existing XAML, unchanged.

terminal
$ dotnet add package OpenMaui.Controls.Linux
50+
Built-in Controls
2,636
dotnet/maui Device Tests, 0 Failing
125/125
Scorecard Items Covered
10 of 11
Popular Libraries Run Unmodified
5,200+
Automated Tests

Why OpenMaui Linux Platform?

GPU-Native Linux Performance

Skia rasterises on the GPU through OpenGL ES on EGL, or opt in to Vulkan, with an automatic CPU raster fallback. Frames repaint only what changed, an idle window draws nothing, and WebView and hardware-decoded video frames arrive as zero-copy DMA-BUF textures. Measured on identical workloads: 2.4x faster frames and tail latency under 4 ms. Fractional HiDPI is pixel-exact, and a window moved to a monitor of another scale re-renders at the new density.

Deep Desktop Integration

Native Wayland clipboard, bidirectional drag-and-drop across windows, and compositor IME (text-input-v3 with preedit and surrounding text). Native D-Bus desktop portals for file choosers, links, notifications, the camera and theme settings, plus system tray, CUPS printing, global hotkeys, per-app secure storage, desktop media keys, multiple top-level windows and a WebView composited inside the Skia tree, with Blazor Hybrid and HybridWebView on top.

Conformance You Can Verify

dotnet/maui's own device tests run unchanged against OpenMaui's handlers: 2,636 Core, Controls and Essentials tests, none failing, so the assertions are MAUI's, not ours. A scorecard generated from every test run covers the 19 categories Microsoft publishes for its own Linux backend, a stub scan reviews 2,313 methods that MAUI, CommunityToolkit and Syncfusion leave empty in their platform-neutral builds, golden screenshots at 1.0x to 2.0x catch visual regressions, and every package is checked against the last release's public API.

Accessibility Built-In

AT-SPI2 screen reader support for ORCA and other assistive technologies, with layouts exposing their children and SemanticOrderView setting the reading order, high contrast mode detection, and full keyboard navigation with Tab and Shift+Tab. Build inclusive applications that work for everyone.

Features

50+ Production-Ready Controls

Complete control library: Button, Label with FormattedText, Entry, CollectionView with grouping, drag-to-reorder and grids, ListView, TableView, CarouselView, RefreshView, SwipeView, AbsoluteLayout, FlexLayout, shapes with gradients, ControlTemplate, NavigationPage with TitleView, Shell with its tab bar, modal pages, window overlays and custom title bars, MenuBar and context flyouts, tooltips, alerts, action sheets and prompts: all rendered in Skia, all driven through MAUI's own handlers, animation manager and VisualStateManager.

Your Libraries Come Too

A compatibility suite runs popular MAUI libraries unmodified through their documented registration: CommunityToolkit.Maui (Popup, Expander, TouchBehavior, DrawingView with image export, Toast and Snackbar as desktop notifications, launcher badges), CommunityToolkit.Mvvm, MediaElement, SkiaSharp views, LiveCharts2, ReactiveUI, Prism and DI-resolved pages. 10 of 11 evaluated libraries run unmodified; results are published in the scorecard alongside the core items.

Syncfusion Controls on Linux

Syncfusion ships only stub handlers for Linux. The opt-in OpenMaui.Controls.Linux.Syncfusion package makes them work, with the mouse and keyboard handling of their Windows builds: DataGrid (navigation, sorting, resizing and moving columns, right-click), Scheduler (resources side by side in day, week and month views, drag and resize appointments), ImageEditor, Toolbar, lists and trees with sticky group headers, every chart series, ComboBox and Autocomplete, numeric and masked entries, Carousel, Rotator, SignaturePad, PullToRefresh, SfPopup and its dialogs, and SfPdfViewer with the Pdf package. One call: UseLinuxSyncfusion(). Bring your own Syncfusion license.

GPU-Native Rendering

An IRenderTarget seam puts Skia's OpenGL ES backend on an EGL surface per window, zero-copy on Wayland, with an opt-in Vulkan target that picks the compositor's GPU on hybrid laptops. Partial damage repaints only what changed. Raster fallback is automatic, OPENMAUI_RENDERER forces any target, and a headless benchmark suite with performance gates keeps the numbers honest.

Native Wayland, Done Right

First-class protocols instead of subprocess workarounds: text-input-v3 IME with preedit and surrounding text, wl_data_device clipboard and drag-and-drop, primary-selection middle-click paste, fractional scaling that follows the monitor, and Skia-drawn client-side decorations on GNOME that host MAUI's custom TitleBar. Desktop portals are spoken natively over D-Bus.

WebView, Blazor Hybrid and HybridWebView

WPE WebKit renders pages headlessly and each frame is composited in the Skia tree, zero-copy on the GPU: no GTK widget, no reparenting, identical on Wayland and X11. Context menus, clipboard, dialogs, file chooser, downloads with the desktop's Save dialog, permissions, spell checking, cursors and real KeyboardEvent.code values all route through the platform. HybridWebView works as on iOS and Mac: your web app served from Resources/Raw, MAUI's JavaScript bridge, InvokeJavaScriptAsync, InvokeDotNet, raw messages and WebResourceRequested. The opt-in OpenMaui.Controls.Linux.Blazor package hosts BlazorWebView on the same engine.

Essentials, Including the Hardware

All 36 Essentials services, verified by dotnet/maui's own Essentials device tests: per-app SecureStorage, permissions, file results from pickers, app info from your project file, the launcher, battery and display. Motion and environment sensors read the kernel's devices where the hardware exists; MediaPicker captures photos and video from the camera and applies its resize and compression options; Contacts reads GNOME's address books through Evolution Data Server; Geocoding works against the Nominatim service you choose.

Measured Compatibility

docs/COMPATIBILITY.md is regenerated from every test run by tools/Scorecard: 19 categories, 125 items, each covered only when its mapped tests pass, plus a third-party libraries section. dotnet/maui's Core, Controls and Essentials device tests run in a separate tests workflow, the stub scan fails when a library update brings in an unreviewed stub, and golden screenshot tests render every control and whole sample pages at 1.0x, 1.25x, 1.5x, 1.75x and 2.0x against committed baselines. 5,200+ tests, no display required, and a public API gate so upgrades never break you silently.

Multi-Window, Media, Maps and PDF

Application.OpenWindow creates real native windows with their own rendering, input and drag-and-drop at parity on X11 and Wayland, in native or GTK mode. Opt-in packages add MediaElement on GStreamer with zero-copy VA-API decode, its events and states as on Windows, playback speed, playback controls and desktop media keys over MPRIS; Maps with OpenStreetMap street tiles plus satellite and hybrid layers; and PDF on Google's PDFium, bundled for x64 and ARM64: a scrolling, zoomable SkiaPdfView, page rendering and text extraction.

Ship It: Templates, Hot Reload, AppImage, deb, rpm, ARM64

dotnet new templates, XAML and C# Hot Reload under dotnet watch, a Live Visual Tree inspector, openmaui doctor for a one-shot environment report, and one-command packaging: openmaui-appimage --project ./MyApp publishes, packages and generates the installer with host-dependency checks, signing and self-update, as an AppImage, a deb or an rpm (--format all builds every one). x64 and ARM64.

Ready to bring your .NET MAUI apps to Linux?

Install the templates and have a GPU-rendered native Linux desktop app running in three commands, Blazor Hybrid included, then ship it as an AppImage with one more. Bring your CommunityToolkit, LiveCharts2 and Syncfusion controls along. MIT licensed, 5,200+ automated tests, dotnet/maui's own device tests passing, 125/125 compatibility scorecard items covered.

Install Now

How OpenMaui compares

The .NET MAUI on Linux landscape. OpenMaui implements the display protocols natively and renders with Skia on the GPU; the GTK-based alternatives inherit their capabilities from GTK.

OpenMaui MAUI Labs GTK4 MauiGtk GnomeMaui
Platform foundation
MAUI control coverage 125/125 scorecard items, computed from 5,200+ tests; dotnet/maui's own Core and Controls device tests: 2,355 run, 0 failing Very good (self-reported) Moderate Early
Conformance evidence dotnet/maui's own device tests run unchanged (Core, Controls, Essentials: 2,636, 0 failing), generated scorecard in the repo, third-party stub scan, golden screenshots at 1.0x-2.0x, end-to-end WebView tests, public API gate Feature table - -
Wayland Native implementation Via GTK4 Via GTK Via GTK
X11 Native implementation Via GTK4 Via GTK Via GTK
Rendering Skia Native GTK widgets GTK Skia/GTK
GPU presentation Skia OpenGL ES via EGL (zero-copy on Wayland) or Vulkan, partial damage, raster fallback GTK4 GSK GTK GTK
Consistent appearance across distros Strong Depends on GTK/theme Depends on GTK Strong potential
Fractional Wayland scaling Explicit support, follows the monitor at runtime GTK handles it GTK GTK
ARM64 Yes (x64 and ARM64 native shims) - - -
Ecosystem
Third-party MAUI libraries 10 of 11 tested libraries run unmodified (CommunityToolkit, LiveCharts2, ReactiveUI, Prism, Syncfusion, ...), published in the scorecard; a stub scan reviews what their platform-neutral builds leave out - - -
Syncfusion controls Opt-in bridge with the Windows builds' mouse and keyboard handling: DataGrid, Scheduler (resource view, drag and resize), ImageEditor, Toolbar, lists, charts, inputs, carousel, signature pad, popups, PDF viewer - - -
Desktop integration
Linux desktop services All 36 Essentials services; dotnet/maui's Essentials device tests pass (sensors, camera and contacts where the desktop has them) 21 done + 2 partial of 36 Essentials Limited Early
Desktop portals Native D-Bus Via GTK Via GTK -
Accessibility AT-SPI2, Tab navigation GTK accessibility GTK GTK
Drag/drop and clipboard Native protocols, across windows GTK GTK GTK
Printing CUPS Limited/evolving Limited -
System tray / global hotkeys Yes Limited/evolving Limited -
Web and beyond
WebView WPE WebKit composited in the Skia tree, zero-copy on the GPU, native Wayland and X11; public browser API for libraries (navigation, downloads, capture, save as PDF); HybridWebView with MAUI's JavaScript bridge WebKitGTK widget WebKitGTK widget -
Blazor Hybrid Yes (OpenMaui.Controls.Linux.Blazor on WPE) Yes (WebKitGTK) - Demonstrated
PDF viewing PDFium bundled (x64, ARM64): SkiaPdfView, page rendering and text, SfPdfViewer works - - -
Maps Yes - - -
MediaElement GStreamer, zero-copy VA-API decode; events, speed and playback controls as on Windows; desktop media keys (MPRIS) - - -
Multi-window Yes Via GTK4 Via GTK -
Packaging One command: AppImage, deb and rpm - - -