feat(effects): implement window rounded corners via scenefx

- Parse effects.windows.rounded/rounding from Lua config
- Add CfgEffectsWindows and CfgEffects structs to Config
- Switch to fx_renderer_create for scenefx support
- Replace 5 wlr/types/wlr_scene.h includes with scenefx variant
- Add config_get_corner_radius() helper (light=6px, heavy=14px)
- Apply corner_radii_top/bottom/left/right to 4 border rects
- Apply wlr_scene_buffer_set_corner_radius to surface buffers
- Disable on fullscreen, restore on exit
- Re-apply on resize and config hot-reload
- Add -Wno-extra-semi for scenefx header compatibility
- All targets compile cleanly (make test passes)
This commit is contained in:
2026-07-02 05:00:26 -04:00
parent 20e38fe682
commit 4ac03d4059
9 changed files with 146 additions and 15 deletions
+4 -1
View File
@@ -35,7 +35,7 @@ XLIBS = xcb xcb-icccm
DISTRO =
LUA_PKG = lua5.4
PKGS = wayland-server xkbcommon libinput $(LUA_PKG) $(XLIBS)
PKGS = wayland-server xkbcommon libinput $(LUA_PKG) $(XLIBS) scenefx-0.5
CFLAGS = `$(PKG_CONFIG) --cflags $(PKGS) wlroots-0.20` \
-I. -Iinclude -Isrc -Iparser -Iprotocols \
@@ -59,9 +59,11 @@ release: CFLAGS += -Werror -Wpedantic -Wmissing-prototypes -Wstrict-prototypes \
-Wold-style-definition -Wmissing-declarations -Wimplicit-fallthrough \
-Wno-gnu-zero-variadic-macro-arguments \
-Wno-c23-extensions \
-Wno-extra-semi \
-march=native
release: peachwm peachmsg/peachmsg
debug: CC = clang
debug: CC = clang
debug: CFLAGS += -Werror -Weverything \
-Wno-padded -Wno-unsafe-buffer-usage \
@@ -80,6 +82,7 @@ debug: CFLAGS += -Werror -Weverything \
-Wno-tentative-definition-compat -Wno-missing-variable-declarations \
-Wno-gnu-zero-variadic-macro-arguments \
-Wno-c23-extensions \
-Wno-extra-semi \
-g3 -fno-omit-frame-pointer -fsanitize=address,undefined,leak \
-fsanitize-trap=all
debug: LDLIBS += -fsanitize=address,undefined,leak