defaultlayoutpermonitor.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       defaultlayoutpermonitor.diff (1687B)
       ---
            1 diff --git a/config.def.h b/config.def.h
            2 index a2ac963..7c87de8 100644
            3 --- a/config.def.h
            4 +++ b/config.def.h
            5 @@ -37,6 +37,11 @@ static const int nmaster     = 1;    /* number of clients in master area */
            6  static const int resizehints = 1;    /* 1 means respect size hints in tiled resizals */
            7  static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */
            8  
            9 +static const int lpm[] = {
           10 +        /* Index of preferred layout], if LENGTH(lpm)<#monitors -> default layout */
           11 +        0, 1
           12 +};
           13 +
           14  static const Layout layouts[] = {
           15          /* symbol     arrange function */
           16          { "[]=",      tile },    /* first entry is default */
           17 diff --git a/dwm.c b/dwm.c
           18 index a96f33c..64cec29 100644
           19 --- a/dwm.c
           20 +++ b/dwm.c
           21 @@ -142,6 +142,7 @@ typedef struct {
           22  } Rule;
           23  
           24  /* function declarations */
           25 +static void applydefaultlayouts();
           26  static void applyrules(Client *c);
           27  static int applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact);
           28  static void arrange(Monitor *m);
           29 @@ -276,6 +277,21 @@ static Window root, wmcheckwin;
           30  struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; };
           31  
           32  /* function implementations */
           33 +void
           34 +applydefaultlayouts()
           35 +{
           36 +    Monitor *m;
           37 +    int i = 0;
           38 +    for (m = mons; m; m = m->next) {
           39 +        if (i < LENGTH(lpm)) {
           40 +            m->lt[0] = &layouts[lpm[i]];
           41 +            m->lt[1] = &layouts[(lpm[i] + 1)/ % LENGTH(layouts)];
           42 +            strncpy(m->ltsymbol, layouts[i].symbol, sizeof m->ltsymbol);
           43 +        }
           44 +        i++;
           45 +    }
           46 +}
           47 +
           48  void
           49  applyrules(Client *c)
           50  {
           51 @@ -1911,6 +1927,7 @@ updategeom(void)
           52                                  cleanupmon(m);
           53                          }
           54                  }
           55 +        applydefaultlayouts();
           56                  free(unique);
           57          } else
           58  #endif /* XINERAMA */