Moonswing – A Desktop Environment for Linux in Flutter The miracle-wm-org project released Moonswing, a Linux desktop environment built entirely in Flutter and described by its developers as "largely AI-coded, very unserious, just for fun," intended to stress test Flutter and explore Wayland desktop development. Moonswing ships as a nightly snap for amd64, warns that it "may be entirely unstable" with a configuration format "subject to change at any time," and requires dependencies including libgtk3, gtk-layer-shell, libasound2-dev and libmpv-dev, with the lock screen falling back to the system login PAM service unless users run `sudo make install-pam`. The project's documentation is itself AI-generated, which the developers note is "probably somewhat useless. A largely AI-coded, very unserious, just for fun desktop environment for Linux, built entirely in Flutter. Website & wiki https://miracle-wm-org.github.io/moonswing/ · Install https://miracle-wm-org.github.io/moonswing/start/install/ · Configuration https://miracle-wm-org.github.io/moonswing/configuration/ The purpose of this project is to: 1. Stress test Flutter 2. Explore the bounds of building new desktops for Wayland 3. Experiment with new Wayland protocols, portals, and everything else 4. Have fun Use this project at your own risk This project may be entirely unstable. The snap will be the only supported packaging from my end. The config format is subject to change at any time. To get the latest nightly snap amd64 : curl -fsSL https://raw.githubusercontent.com/miracle-wm-org/moonswing/main/install.sh | sh Then, in your environment of choice miracle-wm, Miriway, Sway, etc. , run: moonswing To have miracle-wm start Moonswing with every session, add --miracle-autostart : curl -fsSL https://raw.githubusercontent.com/miracle-wm-org/moonswing/main/install.sh | sh -s -- --miracle-autostart This adds Moonswing to the startup apps of ~/.config/miracle-wm/config.yaml , restarted whenever it exits and run in its own systemd scope: startup apps: - command: /snap/bin/moonswing restart on death: true in systemd scope: true An existing config is kept and the entry added to it the original is saved alongside as config.yaml.