Chris pointed me to the fact, that the window geoms calculation can be done once for each monitor, so I applied this remark - dwm - dynamic window manager
 (HTM) git clone https://git.parazyd.org/dwm
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 954db46bac481fd3f514f7af50d2af7e73fb9115
 (DIR) parent 508922b90db66b88cfb66e81b8d48065d13f6bc1
 (HTM) Author: Anselm R Garbe <garbeam@gmail.com>
       Date:   Mon, 11 Feb 2008 20:57:56 +0000
       
       Chris pointed me to the fact, that the window geoms calculation can be done once for each monitor, so I applied this remark
       Diffstat:
         M dwm.c                               |      11 ++++++-----
       
       1 file changed, 6 insertions(+), 5 deletions(-)
       ---
 (DIR) diff --git a/dwm.c b/dwm.c
       @@ -1724,12 +1724,13 @@ tile(void) {
                        for(n = 0, c = nexttiled(clients, i); c; c = nexttiled(c->next, i))
                                n++;
        
       +                /* window geoms */
       +                mw = (n == 1) ? m->waw : m->mwfact * m->waw;
       +                th = (n > 1) ? m->wah / (n - 1) : 0;
       +                if(n > 1 && th < bh)
       +                        th = m->wah;
       +
                        for(j = 0, c = mc = nexttiled(clients, i); c; c = nexttiled(c->next, i)) {
       -                        /* window geoms */
       -                        mw = (n == 1) ? m->waw : m->mwfact * m->waw;
       -                        th = (n > 1) ? m->wah / (n - 1) : 0;
       -                        if(n > 1 && th < bh)
       -                                th = m->wah;
                                if(j == 0) { /* master */
                                        nx = m->wax;
                                        ny = m->way;