MystiaFin / amane
git clone https://github.com/MystiaFin/amane.git
v.0.1.2-experimental · 7d ago
A framework for building Wayland desktop shell purely in Rust
—
stars, 24h
—
stars, 7 days
+348
stars, 30 days · #763
348
★ total
13
forks · 14 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageRust
LicenseMIT
Created2026-10-04 (16d ago)
Last push1d ago
Watchers8
OwnerUser
GitHub topics
Links
- GitHub: github.com/MystiaFin/amane
- Homepage: https://mystiafin.github.io/amane
- Releases · Issues · Hacker News mentions
README excerpt
> [!NOTE] > **amane is on hiatus until mid-december 2026.** > i'm pausing the project to focus on my college thesis, so issues and PRs are closed for now. > everything still works. you can install it, read the docs, and fork it. thanks for following along, i'll be back once my thesis is done. amane Amane is a Rust library for building Wayland desktop shells, like bars, panels and launchers. You write your shell in plain Rust, and the `amane` CLI builds and runs it for you. Keep in mind, Amane is still early (0.1) and experimental, so things will break and change. ## Documentation The full guide is at mystiafin.github.io/amane. It walks you from your first shell through layout, widgets, input and animation, plus the built-in services for audio, network, bluetooth, notifications and workspaces. ## Installation Before installing, check that you have what a shell needs to run: - a Wayland compositor that supports wlr-layer-shell, for example niri, Hyprland or Sway. GNOME doesn't support it, so Amane won't work there. ### Manual installation #### 1. Install Rust You need a Rust toolchain with cargo. Cargo has to stay on your `PATH` after the install, because `amane dev` and `amane compile` call cargo to build your config. #### 2. Run the install script Clone the repo and run `install.sh`. It installs the system libraries Amane needs with pacman, apt or dnf, then installs the CLI with `cargo install --path cli`: [code] If your distro uses another package manager, the script stops and lists what to install yourself: a C compiler, pkg-config, wayland, libxkbcommon, fontconfig, freetype, expat, vulkan-loader, libpulseaudio and linux-pam, with their headers. After that, run `cargo install --path cli`. This puts `amane` in `~/.cargo/bin`, so make sure that folder is on your `PATH` too. ### NixOS (flake) Add amane to your flake inputs, then add its package to your system packages: [code] [code] or install it into your profile: [code] ## Commands Your shell lives in `~/.config/amane/src/main.rs` by default. If you set `XDG_CONFIG_HOME`, Amane uses `$XDG_CONFIG_HOME/amane` instead. To keep it somewhere else, like a dotfiles repository, see `amane new` and `amane target` below. ### amane new Creates a small starter shell. It asks where to put it: press Enter for `~/.config/amane`, or pick another folder. Give the folder on the command line to skip the question. If the shell files already exist there, it stops with an error, so it never overwrites your shell. [code] For a full example bar instead, split over several files with workspace buttons for each monitor, add `--example`. It also stops if any of its files already exist. [code] `amane startup` still works for now, but it's deprecated. Use `amane new`. ### amane target Tells Amane where your shell is when it's not in `~/.config/amane`, for example after you moved the folder or cloned your dotfiles on a new machine. The folder needs a `src/main.rs`. Amane remembers it on this machine, and `am