If segmentation fault occurs, try this patch.
It works good for my environment.

diff --git a/src/main.c b/src/main.c
index 520738c..0462ddf 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2363,6 +2363,7 @@ update_default_decorations(GdkScreen * screen, frame_settings * fs_act,

bareAtom = XInternAtom(xdisplay, DECOR_BARE_ATOM_NAME, FALSE);
activeAtom = XInternAtom(xdisplay, DECOR_ACTIVE_ATOM_NAME, FALSE);
+ data = decor_alloc_property (1, WINDOW_DECORATION_TYPE_PIXMAP);

if (ws->shadow_pixmap)
{
@@ -2372,7 +2373,6 @@ update_default_decorations(GdkScreen * screen, frame_settings * fs_act,

nQuad = set_shadow_quads(quads, width, height, ws);

- data = decor_alloc_property (1, WINDOW_DECORATION_TYPE_PIXMAP);

decor_quads_to_property(data, 0, GDK_PIXMAP_XID(ws->shadow_pixmap),
&ws->shadow_extents, &ws->shadow_extents, &ws->shadow_extents, &ws->shadow_extents,
yes. my work is only moving substitution of variable "data", in "if (ws->shadow_pixmap)" block to outside.

on my environment, ws->shadow_pixmap is 0x0, so "data" was still NULL. it causes segfault calling function "decor_quads_to_property" on line 2377 in main.c.

I don't know why data was initialize when only shadow_pixmap was enabled, but this patch works well.
iamfuss's avatar
that's all? or you past just part of patch?
see also:
[link]
sorry, only japanese...but you can understand my process, looking quotes in the post.

if you think that's troublesome, you can choice installing package I created...at own your own lisk.

[link]
iamfuss's avatar
Thx. I added link's to your post in description