--- a/dwm.c 2011-05-02 17:07:20.537676024 +0100 +++ b/dwm.c 2011-05-04 21:44:36.799998819 +0100 @@ -129,6 +129,8 @@ unsigned int tags; Bool isfloating, centre; int monitor; + void (*f)(Client *, const Arg *); + const Arg farg; } Rule; /* function declarations */ @@ -295,6 +297,7 @@ #include "patches/grid.c" #include "patches/spawnq.c" #include "patches/shiftview.c" +#include "patches/rule.c" /* function implementations */ void @@ -324,6 +327,8 @@ c->mon = m; if(!r->centre) centre = 0; + if(r->f) + r->f(c, &r->farg); } } if(ch.res_class)