feat(config): parse effects.windows.shadows from Lua config

Add CfgEffectsWindowShadows struct (12 fields) and CfgEffectsWindows.shadows
member. Add wlr_scene_shadow *shadow field to Client struct for runtime
shadow node tracking. Update example/config.lua with full shadow config
block.

The config parser handles missing shadows table gracefully (all default).
This commit is contained in:
2026-07-02 19:44:49 -04:00
parent e6613f766d
commit e4c3990cba
2 changed files with 19 additions and 1 deletions
+17 -1
View File
@@ -59,7 +59,23 @@ monitors = {
effects = {
windows = {
rounded = false,
rounding = "none",
rounding = "none", -- off, light, or heavy
shadows = {
shadows = true,
shadow_radius = 24,
shadow_offset_x = 0,
shadow_offset_y = 8,
shadow_color = 0x000000ff,
shadow_opacity = 0.30,
shadow_expand = 12,
fullscreen_shadows = false,
nogaps_shadows = false,
maximized_shadows = false,
only_floating = false,
shadow_clip = true,
},
},
}
+2
View File
@@ -14,6 +14,7 @@ struct wlr_layer_surface_v1;
struct wlr_xdg_surface;
struct wlr_xwayland_surface;
struct wlr_xdg_toplevel_decoration_v1;
struct wlr_scene_shadow;
/* Client types */
enum { XDGShell, LayerShell, X11 };
@@ -54,6 +55,7 @@ typedef struct Client {
#endif
unsigned int bw;
int corner_radius;
struct wlr_scene_shadow *shadow;
uint32_t tags;
int isfloating, isurgent, isfullscreen, isscratchpad;
uint32_t resize; /* configure serial of a pending resize */