Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

A pixel-art Wayland desktop shell for the niri compositor, with its own file manager, image viewer, video player and theme tooling.

105
1
Rust
MIT
3 days old

What it is

yami is a Rust Wayland shell that turns the niri compositor into a complete desktop: a bar, launcher, dock, notification server, lock screen, OSD, widgets and settings, all rendered in software into shared memory with no GPU context or toolkit. Alongside the shell it ships yami-files (file manager and portal file dialog), yami-view (image viewer and quick editor), yami-play (video and music player built on libmpv), an SDDM login theme, and a patched niri build called yami-niri. A single palette recolors the shell, wallpaper, niri borders, Qt/GTK apps, terminal, cursor and login screen.

It targets Linux users running niri on Wayland who want a cohesive pixel-art desktop, and who are comfortable with a source build and changes to system config files. See the feature overview and screenshots in the project README.

Quick start

The documented path is the interactive installer on a fresh system. It fetches the repository into ~/.local/share/yami/src and runs from there:

bash <(curl -fsSL https://raw.githubusercontent.com/Trendorin/yami/main/install.sh)

Alternatively, clone and run the script from a checkout: git clone https://github.com/Trendorin/yami yami && yami/install.sh. The installer asks about language, components, palette, panels and app font, shows a summary, then installs packages with the distribution's package manager, builds the workspace with cargo build --release --locked (Rust ≥ 1.89), installs the four binaries into ~/.local/bin, writes niri/kitty/fastfetch config plus keybindings, and optionally builds yami-niri and installs the SDDM login theme. Reboot or log out and choose the Niri session to land in the desktop. Useful flags include --yes, --dry-run, --no-sudo, --no-fork, --uninstall and --update; the full flag table is in the installation section.

To build only the shell by hand, cd shell && cargo build --release --locked, then install target/release/yami-shell into ~/.local/bin. Runtime libraries are libxkbcommon and libpam; optional helpers such as pactl, playerctl, nmcli, BlueZ and cliphist unlock volume, media, Wi-Fi, Bluetooth and clipboard features.

Usage constraints

This is a Linux/Wayland desktop built specifically around niri, not a standalone app that runs on any display server. The installer needs network access and a working distribution package manager for Arch, Fedora, Debian/Ubuntu, openSUSE, Void, Alpine, Gentoo and NixOS; the first build and the optional yami-niri build take time (the fork build runs 5–25 minutes) and need a Rust toolchain of at least 1.89. Building and enabling yami-niri plus the SDDM theme changes system-level pieces, so plan for reboots and keep a recovery path; the README documents falling back with fork/yami-niri.sh off.

Settings live in ~/.config/yami-shell.json and the yami command, while the shell owns several niri KDL files and includes ~/.config/niri/user.kdl last so user overrides win. Existing config files are backed up as *.bak-DATE, and an old DARK-4RMY install is migrated rather than duplicated. Code is MIT; bundled fonts keep their own licenses and yami-niri builds from GPL-3.0 upstream niri. The README states that the code is written with the help of Claude Code but is built, checked and used daily before release.

HotRepo's take

yami first appears on the Rust new-project list on 2026-11-05, gaining 3 stars in a one-hour window recorded that day, with 105 stars and 1 fork in the snapshot; there is no all-language daily ranking and the collection window is far too short to read as a trend. What the repository does show is unusual depth for a new shell: its own file manager, image viewer and video player, a patched compositor, signed release tags and a documented update/rollback flow, backed by explicit resource measurements (about 15 MB for the idle shell). The installation model is the part worth watching — a piped remote script plus a custom compositor branch is a large trust decision for a young project, so both the visual gains and the operational surface should be weighed together rather than by star count alone.

Written by AI from the project's README, updated . The project's own docs are the source of truth.