
Denial is a Flutter-native Wayland compositor that puts Flutter at the foundation of the desktop, un
Denial is a Flutter-native Wayland compositor that puts Flutter at the foundation of the desktop, un
A Wayland compositor. We got a little carried away.
English | 简体中文
Install · Edit the shell · Documentation
https://github.com/user-attachments/assets/2c7335bb-7363-46b1-8e3a-0d98c36c64b1
Hyprland and niri users are welcome. We won't tell.
| Glass dashboard | Another mood |
|---|---|
| Launcher, up close | Wuthering Waves, with company |
There are easier hobbies than writing a compositor. Unfortunately, we like this one.
If you like where Denial is going, help fund its development.
Denial is in public beta. It runs on Linux. Someone got it running on StarryOS's starry-kernel too. Apparently one kernel wasn't enough. Linux builds support x86-64 and ARM64. Configuration and developer interfaces may change before 1.0.
First-party Linux binary packages are currently x86-64. For the distributions below, review the repository setup script, then add the signed repository:
curl -fsSL https://install.denialwm.org | shSetup shows its plan and asks for confirmation before using sudo. Once it
finishes, install Denial with the command for your distribution:
| Distribution | Install |
|---|---|
| Arch Linux / CachyOS / Omarchy 4.0 | sudo pacman -Syu denial |
| Debian 13 / Ubuntu 24.04 LTS | sudo apt update && sudo apt install denial |
| Fedora 44 | sudo dnf install denial |
Alpine Linux 3.24 has signed APK downloads. ARM64 builds are supported from source; NixOS and Void Linux have also been tested, with no first-party binaries yet.
After installing, choose Denial from your display manager's session menu.
Installation, updates, and removal · Session setup and renderer options
The shell's UI is editable Flutter code. With the development tools installed, change a widget, save, and watch your desktop update while your Wayland apps keep running. Try to remember what you were supposed to be working on.
The optional denial-ui-development package is available only through the
Pacman repository:
sudo pacman -S denial-ui-development
denialctl ui setupOpen the generated workspace's dart_shell directory in VSCodium for hot reload
on save. If an edit goes wrong, denialctl ui restore gets you back to the
packaged shell, even when Settings can't open.
Live development guide · Custom shell framework
Rust and Smithay handle Wayland, input, and displays. Flutter draws the shell and application windows together. Yes, that Flutter. It got promoted.
Explore the architecture · Build from source
Denial is an English word. The name contains Denia, followed by one last letter.
It is a quiet reference to Denia from Wuthering Waves. Her story never gives a simple answer to what she originally was, and that uncertainty is important. What is clear is that others treated her as an asset: something selected, shaped, and assigned a purpose that was not her own. She was meant to remain a vessel. Instead, by observing people and learning to live among them, she grew a heart and gained the ability to choose what she would become.
Her story reflects Denial's central idea: what something was made to be does not have to determine what it can become.
Denial was conceived, architected, directed, and tested by Doctor Logix, and developed in continuous collaboration with OpenAI Codex. Its initial implementation was generated through that dialogue.
Doctor Logix made the design and technical decisions, tested the results on real hardware, and sent the work back when it wasn't right. Codex investigated problems, proposed solutions, and wrote the code.
Authorship is more than typing source code.
All guides · Control and recovery · Screenshots and screen sharing
Changelog · Roadmap · Contributing · Security
Denial's original source code is licensed under GPL-3.0-or-later. Bundled third-party components and media retain their own licenses and attribution notices.
No open issues yet, or sync has not completed.