A Wayland desktop shell built with GPUI (Zed's UI framework) in Rust. Provides a system bar, command launcher, and control center for Hyprland and Niri compositors.
Warning
Early Development Notice This project is in early development and contains a significant amount of AI-generated code. It started as an experiment to test the latest AI models' capabilities and went much further than expected in a surprisingly short time. I'm actively working on fixing bugs and optimizing the codebase, but as I'm still learning Rust, there may be rough edges. Contributions and feedback are welcome!
GPUi Shell aims to be a lightweight, modular desktop shell replacing components like waybar, swaync, rofi/walker, and wlogout. It integrates deeply with Linux desktop ecosystems via D-Bus while providing a modern, GPU-accelerated UI.
showcase.mp4
- Wayland layer-shell status bar (top/bottom/left/right)
- Workspaces — workspace switcher with click to switch
- Active Window — shows focused window title
- System Tray — D-Bus system tray integration (libtray)
- Clock — configurable datetime display
- Keyboard Layout — current keyboard layout indicator
- Battery — battery percentage and charging status
- SysInfo — CPU/memory overview widget
- Command launcher with prefix-based view routing
- Apps — application search and launcher (freedesktop desktop files)
- Shell — run shell commands
- Workspaces — workspace management
- Theme — switch between light/dark and accent colors
- Wallpaper — set desktop wallpaper
- Web — quick web search
- Help — keyboard shortcuts reference
- Audio — volume control with PulseAudio (libpulse-binding)
- Brightness — screen brightness control
- Network — WiFi/Bluetooth toggle via NetworkManager (libnm)
- Bluetooth — device pairing and connection (bluez)
- Power — battery status and session power actions (UPower)
- Notifications — notification center with Do Not Disturb
- Media — MPRIS media player controls
- Volume and brightness indicators on key press
- Compositor abstraction — auto-detects Hyprland or Niri
- Single-instance — running again opens launcher (via socket)
- Privacy mode — temporarily disable screenshare/camera indicators
- Applications — desktop file parsing and icon loading
Try GPUi Shell without installing:
nix run github:andre-brandao/gpui-shellFull documentation is available at https://andre-brandao.github.io/gpui-shell/
- zed: rendering and ui design (gpui).
- gpui-component: ui code copied from here.
- mgs: For the initial idea and inspiration.
- ashell: For the initial idea and inspiration.
- iced-shell: A shell written in Rust using the iced framework. (i did not like iced that much)
- svelte-shell: A shell written using Tauri + Svelte. (Too slow)
And some others that are not on github using ags or quickshell
