Main repo | Mirror | Temp mirror (github)
Oh deer! 🦌 You've stumbled upon layer-shika, a rust library crate that provides a layer shell implementation for wayland compositors, using slint for the GUI. It allows you to create overlay windows and panels or bars that integrate seamlessly with wayland-based desktop environments.
Please note that this library is currently in early development and is not yet ready for production use.
- Architecture: Clean hexagonal architecture with domain, adapters, and composition layers
- Rendering: EGL context management with
femtovgrenderer integration - Wayland: Comprehensive layer shell protocol support using
smithay-client-toolkit- Output management and configuration
- Surface lifecycle management
- Basic xdg popup support (currently with double creation workaround, due dependencies limitations)
- Event handling system
- UI Integration: Slint integration layer with custom rendering backend
- Documentation: Work in progress
- Examples: Coming soon (examples directory prepared)
What's Working:
- EGL context creation and management
- Wayland layer shell surface creation
- XDG popup support (with some limitations, new window and resizing needed to work with current workaround)
- Basic rendering with femtovg
- Output detection and management
- Event handling framework
Known Limitations:
- Not all features are fully implemented or tested
- API is still unstable and may change
- Examples and comprehensive documentation pending
It's recommended to wait for a stable release before using this library in production projects. Development is trying to be as fast as a running skippy deer!
Examples and usage instructions are coming soon. Hoping that they will not be too deer-ifying, like the current state of this library. If you want to use it now, use this repo as dependency instead of crates.io outdated versions.
It aim to have the first stable release by the end of 2025, with a focus on core functionality and API stability.
Stay tuned!
As the library is in a very early stage, it's recommended to open an issue to discuss ideas or proposed changes before submitting contributions. The project doesn't bite, it's not that kind of deer!