Desktop Shell for Niri
  • Rust 90.1%
  • CSS 5.2%
  • Nix 4.7%
Find a file
Chris Toph e19f5dd1dd feat(shell): add notifications, clipboard, and system dashboards
- add notification daemon, toast UI, and history storage
- add clipboard launcher surface with previews and actions
- add system monitor samplers and dashboard widgets
2026-06-15 20:24:01 -04:00
crates feat(shell): add notifications, clipboard, and system dashboards 2026-06-15 20:24:01 -04:00
nix feat(shell): add notifications, clipboard, and system dashboards 2026-06-15 20:24:01 -04:00
static feat(launcher): add spotlight launcher and control bus 2026-06-12 20:06:31 -04:00
.gitignore feat: add system tray and sandbox VM 2026-06-07 23:53:38 -04:00
ARCHITECTURE.md feat(services): add shared D-Bus bridge and quicksettings 2026-06-10 01:32:51 -04:00
Cargo.lock feat(clipboard): add persistent clipboard history and weather dash 2026-06-14 17:22:22 -04:00
Cargo.toml feat(clipboard): add persistent clipboard history and weather dash 2026-06-14 17:22:22 -04:00
flake.lock feat(vm): add Ambxst sandbox VM 2026-06-14 15:33:40 -04:00
flake.nix feat(vm): add Ambxst sandbox VM 2026-06-14 15:33:40 -04:00
README.md feat(shell): add niri-driven shell architecture 2026-06-06 17:28:21 -04:00

Pana

DE-like shell for niri, built with gtk4-rs and layer-shell.

See ARCHITECTURE.md for the component map and roadmap.

Build

nix build           # package
nix develop         # dev shell
cargo run           # inside the dev shell, needs a Wayland session

Run

nix run

Theming

Pana reads a Material 3 palette from ~/.config/pana/theme.css (hot-reloaded; built-in dark baseline when absent) and maps it onto --pana-* tokens widgets use. Generate the palette from your wallpaper with matugen using the shipped template:

# ~/.config/matugen/config.toml
[config]

[templates.pana]
input_path = "/path/to/pana/static/matugen/theme.css"
output_path = "~/.config/pana/theme.css"

Inspiration