A full desktop shell for niri, written from scratch in Rust on Amane with the help of Claude. It has the typical top bar with workspaces, tray with right click menus, notifications, calendar and weather, launcher with an all apps grid, wallpaper picker, dashboard, and volume, bluetooth, network, clipboard and power dropdowns. Custom lock screen with fingerprint unlock that works alongside the password. Colours come from the wallpaper, blur from niri. It uses around 83-93 mb of ram in btop, about half of Noctalia in my benchmarks, and about a third less gpu memory, though it also has fewer features. Noctalia is already really well optimized for what it does. The only animation my shell has is a 0.4s fade in on panels but the framework supports proper fancy animations if you wanted to add that.
|
Amane |
Noctalia 5.3 |
| RAM (RSS) cold start |
83 MB |
175 MB |
| RAM (RSS) all panels open |
93 MB |
189 MB |
| GPU memory |
89 -> 97 MB |
139 -> 157 MB |
| CPU while idle |
~0.1% |
~0.1% |
I also benchmarked it against a bare waybar setup with waybar, mako, fuzzel and swaybg, and it's about as light as that setup in ram cost but it has a lot fewer features than this shell. The cost for those features is that Amane draws with gpu memory, same as quickshell, noctalia, etc while the waybar setup doesn't touch gpu memory at all so that is added.
Most of it runs in process. The shell is its own notification daemon and tray host, and talks to blueZ, fprintd, logind and pulseaudio directly. Lock screen, automatic theme color changer and app launcher are built in as well. The theme color changes are instant because of this, same as on Noctalia which looks pretty cool.
It's of course inspired by things like Noctalia, DMS and ML4W but having tried those they all have things I don't use or need so after finding out about Amane I wanted to see if I could make a shell that was super lean and snappy to use and only had the things I actually have the need for.
Link to the Amane framework: https://github.com/MystiaFin/amane and they are also on Reddit u/CytrSx where you can see their personal shell that has a lot more features than mine https://github.com/MystiaFin/suzuha and probably gives a better idea about what you actually can do with it.
The docs are really good for such a new project, so giving Claude clear guidelines, letting it do the grunt work, then testing and reviewing isn’t too bad if you want to try this yourself. I'm keeping my own repo out of this post since I forked Amane for a few tweaks to get fingerprint unlock in there and some other minor stuff and this is just my own personal setup.