Veshell replaces window juggling with a spatial map of your applications
Veshell is an innovative not-desktop environment for Linux made with modern technologies like Flutter and Rust.
At a glance
- What is it?
- Veshell is a Wayland desktop environment built from a Rust compositor and a Flutter interface, where applications live in a two-dimensional space instead of a stack of windows. It suits people who want a predictable, non-traditional shell, and it asks for a Linux system you are willing to configure.
- Who is it for?
- Adopt Veshell if you want a desktop that drops overlapping windows in favour of a saved spatial layout and you are comfortable configuring a Wayland session on your own Linux machine. Skip it if you need a stable everyday driver, since the project is at version 0.1.6 and distributes only through community channels with no vendor repository.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly Dart, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The compositor is Rust, the interface is Flutter, and the layout is the point
Veshell calls itself a not-desktop environment for Linux, and the repository structure backs that up rather than sounding like marketing alone. Cargo.toml points the binary at src/embedder/main.rs and names Smithay as the compositor dependency, pinned to a specific git revision with DRM, EGL, GBM, libinput, Vulkan and Wayland frontend features enabled alongside Xwayland. The interface side is Flutter, with the pinned flutter_version recorded in the package metadata, and the Makefile expects a bundled libapp.so next to a Flutter engine library. So the shell you see is a Flutter application rendering into a Rust Wayland compositor, and the compositor is what actually talks to the GPU and input devices.
Spatial memory replaces the window list, and the layout saves itself
The workflow is the substance of the project. Instead of moving and stacking windows, applications are organised in a two-dimensional space where they can be grouped by use case, category or any criterion the person using it finds meaningful. Navigation leans on directional inputs, which the README says are inspired by the video game industry, and the reasoning offered is psychological: spatial memory lets you find your way back to a familiar location, while mental mapping gives you a representation you can plan routes through. Two implementation details matter more than the argument. The persistence feature saves layout and organisation on the fly, so a configuration survives a reboot without being hand-authored, and the Material Design interface shows the whole layout at a glance for mouse or touchscreen use.
No vendor repository means every install route is community run
The README states plainly that Veshell is distributed through community channels and that there is no vendor repository. On Arch and Manjaro the AUR carries three packages: veshell which builds from source, veshell-bin which is prebuilt, and veshell-git which tracks development. An AUR helper handles the rest.
yay -S veshell-binFedora uses a COPR, and the two commands enable the repository and install the binary package.
sudo dnf copr enable @free-explorers/veshell
sudo dnf install veshell-binFor Debian 13 and Ubuntu 26.04 the project borrows an openSUSE Build Service repository, which means adding a signing key, writing a sources list entry and then installing the same veshell-bin package. The openSUSE Tumbleweed, Slowroll and Leap 16.0 route uses zypper addrepo against the same host.
The Nix flake runs from GitHub, but only after nix.settings is configured
NixOS gets a flake rather than a binary package, and the README is careful that the flake alone is not enough. It points to docs/nixos.md for the required nix.settings entries, which cover enabling flakes and the Veshell cache, plus the NixOS module and session setup. With those settings in place, running the project needs one command.
nix run github:free-explorers/veshellThat step is also the easiest way to see the environment before committing to a system wide change. The README also records that the project ships no analytics, and points to a privacy and telemetry document covering build time tooling and artifact provenance, which matters for a desktop that would otherwise sit in the middle of your session.
Building from source means the Rust toolchain and the Flutter engine
The source instructions say plainly that they need the full toolchain and that none of it is required to install a distribution package. Requirements are Rust and Cargo via rustup plus the system dependencies listed in docs/dependencies.md, and the Makefile shows what the build actually consumes: a Flutter engine shared library under extra/third_party/flutter_engine, an application bundle, assets, settings and a systemd user service template. Trying the shell during development is a single cargo invocation from the repository root.
cargo runInstalling that local build system wide, and removing it again, are separate make targets, and the README is explicit about the removal being narrow.
make install-localThe uninstall step only removes what make install-local created and never touches a distribution package.
Version 0.1.6 and a ThinLTO note describe the real maturity level
The honest way to assess Veshell is to look at the numbers. Cargo.toml records version 0.1.6 under GPL-3.0-or-later, the repository is not archived, and the last push was on 2026-10-19, with tagged releases v0.1.6 on 2026-10-17, v0.1.5 on 2026-10-16 and v0.1.4 on 2026-10-14. A 0.1.x version means the interface can still change shape. The release profile also carries a comment explaining why ThinLTO is used over the Rust compositor and why distribution packaging recipes keep their own LTO flags disabled, since those flags only ever reached a C shim and never covered the Rust code. That level of build detail is a sign of a project that cares about its artifact, not a sign of a finished desktop.
Where Veshell is the wrong choice
The obvious wrong case is a machine whose only job is to be stable. A not-desktop at version 0.1.6, packaged entirely through community channels, is a poor fit for a laptop that has to boot correctly every morning for someone who does not want to debug a session. It also asks for effort up front: the Nix route needs specific nix.settings and a session setup, and the Debian and Ubuntu route asks you to add a third party signing key and sources list. Veshell is not a desktop environment you install and forget. The README itself describes the goal as removing the need to manipulate windows, and that goal only pays off if you are willing to learn a layout model that differs from what every other Linux desktop teaches.
Editorial conclusion
Adopt Veshell if you want a desktop that drops overlapping windows in favour of a saved spatial layout and you are comfortable configuring a Wayland session on your own Linux machine. Skip it if you need a stable everyday driver, since the project is at version 0.1.6 and distributes only through community channels with no vendor repository. Verify first that the packaging route you pick matches your distribution, that the documented nix.settings are in place if you use the flake, and that the Rust and Flutter toolchain requirements are acceptable for a source build.
Frequently asked questions
How do I install Veshell on Linux?
There is no vendor repository. Use the AUR packages on Arch and Manjaro, the COPR on Fedora, the openSUSE Build Service repository on openSUSE, Debian 13 and Ubuntu 26.04, or the Nix flake on NixOS, which needs the nix.settings described in docs/nixos.md.
Does Veshell collect telemetry?
The README states that the project ships no analytics and refers to its privacy and telemetry documentation for build time tooling and artifact provenance.
What is needed to build Veshell from source?
Rust and Cargo via rustup, plus the system dependencies listed in docs/dependencies.md. The build also expects the Flutter engine and application bundle produced by the project build.
How is Veshell different from a normal window manager?
Applications are placed in a two-dimensional space instead of overlapping windows, navigation uses directional inputs, and the persistence feature saves that layout automatically so it survives a reboot.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/free-explorers-veshell)Was this useful?