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 */