Feature Description
I would like to request native support for the new ext_background_effect_v1 staging protocol in the spell-framework.
While spell-framework already does a fantastic job of managing wlr_layer_shell for declarative Wayland widgets, adding support for the standardized background effect protocol would allow developers to easily implement hardware-accelerated background blur for panels, launchers, and notification surfaces.
Use Case
With modern Wayland compositors (like Hyprland, Niri, cosmic-comp, and Mutter) increasingly adopting the upstream ext_background_effect_v1 protocol to replace legacy, compositor-specific blur implementations, having native integration within Spell would make it the premier choice for modern, aesthetically polished Wayland shell components in Rust.
Currently, achieving this requires developers to manually pull raw pointers and stitch bindings using external crates like wayrs-protocols, which breaks the clean abstraction that Spell provides.
Proposed API / Implementation Idea
Ideally, this could be exposed as a declarative property or a configuration flag on the window/surface wrapper, similar to how layer-shell anchoring is handled.
For example (conceptual):
// In the spell window initialization / builder pattern
let window = SpellWindow::new()
.with_layer_shell(Layer::Top)
.with_background_blur(true) // Triggers ext_background_effect_v1 under the hood
.build();
Alternatively, it could be exposed as a helper method that attaches an ext_background_effect_manager_v1 to the underlying Slint surface region.
Additional Context
- The upstream protocol specification: ext-background-effect-v1.xml
- The protocol bindings are already available in the Rust ecosystem via the
wayrs-protocols crate, which might simplify implementation.
Thank you for your hard work on this framework! I would love to hear your thoughts on whether this fits into the project's roadmap.
Feature Description
I would like to request native support for the new
ext_background_effect_v1staging protocol in thespell-framework.While
spell-frameworkalready does a fantastic job of managingwlr_layer_shellfor declarative Wayland widgets, adding support for the standardized background effect protocol would allow developers to easily implement hardware-accelerated background blur for panels, launchers, and notification surfaces.Use Case
With modern Wayland compositors (like Hyprland, Niri, cosmic-comp, and Mutter) increasingly adopting the upstream
ext_background_effect_v1protocol to replace legacy, compositor-specific blur implementations, having native integration within Spell would make it the premier choice for modern, aesthetically polished Wayland shell components in Rust.Currently, achieving this requires developers to manually pull raw pointers and stitch bindings using external crates like
wayrs-protocols, which breaks the clean abstraction that Spell provides.Proposed API / Implementation Idea
Ideally, this could be exposed as a declarative property or a configuration flag on the window/surface wrapper, similar to how layer-shell anchoring is handled.
For example (conceptual):
Alternatively, it could be exposed as a helper method that attaches an
ext_background_effect_manager_v1to the underlying Slint surface region.Additional Context
wayrs-protocolscrate, which might simplify implementation.Thank you for your hard work on this framework! I would love to hear your thoughts on whether this fits into the project's roadmap.