Active development · Linux x86-64

Denial

A Flutter-native Wayland compositor

Origin does not have to dictate purpose. Flutter was created for application interfaces. Here, it owns the desktop scene itself.

Wayland clients Rust / Smithay external textures Flutter scene
A development build of the Denial desktop, with a terminal and settings window composed over a blue and purple background
Current development desktop · interfaces may change

The shell is part of the compositor.

Flutter is not an overlay placed on another compositor. Rust and Smithay own native protocol, input, and display state. The embedded Flutter shell owns the visible desktop: windows, system surfaces, motion, gestures, and interaction.

01 / Native core

Wayland belongs to Rust

Smithay manages clients, buffers, input devices, focus, output configuration, DRM/KMS presentation, and native lifetimes.

02 / Embedded shell

Flutter owns what you see

An AOT-compiled Dart shell runs inside the compositor process and defines layout, interaction, animation, and desktop policy.

03 / Shared scene

Clients become textures

Wayland buffers enter Flutter as external textures, then the scene is rendered into a GBM atlas and presented through KMS.

A complete session under active construction.

Denial already runs as a Wayland session with Xwayland, multi-output, native input, direct screenshots, and portal screen sharing. APIs and bundle boundaries may still change.

Xwayland Multi-output Native input Screenshots Portal sharing