Important
Remove this line to confirm you've reviewed this PR before submitting.
A desktop shell for the Niri Wayland compositor, built with iced.
Ghost Shell is a desktop shell built exclusively for the Niri Wayland compositor. It uses iced with Waycrate's Wayland shell integration.
The philosophy behind the project is dead simple: be efficient, provide the necessary tooling, stay simple where possible, and delegate whatever makes sense to the compositor.
The project's name is inspired by the anime Ghost in the Shell.
The bar follows a widely adopted layout with three sections: start, center, and end. Its current widget layout is fixed; appearance and outputs are configurable. See the bar guide and widget reference.
The application launcher is intentionally simple. It displays all applications
discovered on the system and allows you to launch them through Niri's spawn
command. Terminal applications are launched inside a terminal emulator.
The file and directory finder is one of the ideas I'm particularly proud of. It
takes advantage of the fff library to build an indexed tree of files and
directories, allowing Ghost Shell to quickly find files across the system.
The lockscreen supports animated wallpapers. What else do you need?
The boot greeter displays a wallpaper, clock and authentication prompts through greetd. It starts independently of the desktop lockscreen. See the greeter guide for NixOS setup and validation requirements.
The project is still in a very early alpha stage. I don't expect a release any time soon. There is still a lot to implement, test, and improve before I can be confident that Ghost Shell is robust and performant enough for a proper release.
- Bar
- Widget: System Menu
- Widget: Niri Workspaces
- Widget: Focused Window
- Widget: Tray
- Widget: Notifications
- Widget: Camera
- Widget: Audio Control (Speakers/Microphone)
- Widget: Bluetooth Control
- Widget: Network Control (Wi-Fi/Ethernet)
- Widget: Power Control (Battery/Power modes)
- Widget: Clock
- Widget: Screenshot & Screen recording
- Widget: Theme Polarity Changer
- Widget: Weather
- Launcher
- Finder
- Lock Screen
- Greeter (greetd; live login validation pending)
- Clipboard
- Wallpapers
- Theming
Start with the wiki for the project overview and user guides:
- Installation and getting started
- Configuration and theming
- Bar and individual widgets
- Launcher, finder, and lockscreen, and boot greeter
- Wallpapers and CLI commands
- Architecture and troubleshooting
Build, run, and contribution instructions live in CONTRIBUTING.md. The roadmap above tracks completion; implemented features may still have alpha limitations documented in their respective guides.
Ghost Shell would not be possible without the excellent work of the projects it builds upon:
- niri - the backbone of the project and my favorite Wayland compositor. It provides a lot of functionality Ghost Shell can rely on, such as spawning applications, streaming compositor state, and much more.
- iced - the Rust GUI framework.
- Waycrate - Wayland layer, popup, output, blur, and session-lock integration for iced.
- awww - an excellent animated wallpaper daemon that introduced me to one of my favorite animated wallpapers. It has also been a great project to learn from while building Ghost Shell's own animated wallpaper renderer.
- fff - amazing file search toolkit, powers finder and launcher's applications filtering.
Ghost Shell is licensed under the MIT License.




