Add support for background blur

This patch adds a new config option: colors{,2}.blur=no|yes. When
enabled, transparent background are also blurred.

Note that this requires the brand new ext-background-effect-v1
protocol, and specifically, that the compositor implements the blur
effect.
This commit is contained in:
Daniel Eklöf 2025-10-16 13:43:33 +02:00
parent dc0c8550c3
commit dea10e2e48
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
13 changed files with 154 additions and 43 deletions

View file

@ -26,6 +26,9 @@
#if defined(HAVE_XDG_TOPLEVEL_TAG)
#include <xdg-toplevel-tag-v1.h>
#endif
#if defined(HAVE_EXT_BACKGROUND_EFFECT)
#include <ext-background-effect-v1.h>
#endif
#include <fcft/fcft.h>
#include <tllist.h>
@ -62,6 +65,10 @@ struct wayl_surface {
struct wl_surface *surf;
struct wp_viewport *viewport;
struct wp_color_management_surface_v1 *color_management;
#if defined(HAVE_EXT_BACKGROUND_EFFECT)
struct ext_background_effect_surface_v1 *background_effect;
#endif
};
struct wayl_sub_surface {
@ -490,6 +497,10 @@ struct wayland {
#if defined(HAVE_XDG_TOPLEVEL_TAG)
struct xdg_toplevel_tag_manager_v1 *toplevel_tag_manager;
#endif
#if defined(HAVE_EXT_BACKGROUND_EFFECT)
struct ext_background_effect_manager_v1 *background_effect_manager;
bool have_background_blur;
#endif
#if defined(FOOT_IME_ENABLED) && FOOT_IME_ENABLED
struct zwp_text_input_manager_v3 *text_input_manager;