dwm-staticstatus-20211010-a786211.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
dwm-staticstatus-20211010-a786211.diff (2445B)
---
1 diff --git a/config.def.h b/config.def.h
2 index a2ac963..e485712 100644
3 --- a/config.def.h
4 +++ b/config.def.h
5 @@ -18,6 +18,9 @@ static const char *colors[][3] = {
6 [SchemeSel] = { col_gray4, col_cyan, col_cyan },
7 };
8
9 +/* staticstatus */
10 +static const int statmonval = 0;
11 +
12 /* tagging */
13 static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
14
15 diff --git a/dwm.c b/dwm.c
16 index 5e4d494..e5fa599 100644
17 --- a/dwm.c
18 +++ b/dwm.c
19 @@ -266,7 +266,7 @@ static Cur *cursor[CurLast];
20 static Clr **scheme;
21 static Display *dpy;
22 static Drw *drw;
23 -static Monitor *mons, *selmon;
24 +static Monitor *mons, *selmon, *statmon;
25 static Window root, wmcheckwin;
26
27 /* configuration, allows nested code to access above variables */
28 @@ -440,7 +440,7 @@ buttonpress(XEvent *e)
29 arg.ui = 1 << i;
30 } else if (ev->x < x + blw)
31 click = ClkLtSymbol;
32 - else if (ev->x > selmon->ww - (int)TEXTW(stext))
33 + else if (m == statmon && ev->x > selmon->ww - (int)TEXTW(stext))
34 click = ClkStatusText;
35 else
36 click = ClkWinTitle;
37 @@ -703,7 +703,7 @@ drawbar(Monitor *m)
38 Client *c;
39
40 /* draw status first so it can be overdrawn by tags later */
41 - if (m == selmon) { /* status is only drawn on selected monitor */
42 + if (m == statmon) { /* status is only drawn on user-defined status monitor */
43 drw_setscheme(drw, scheme[SchemeNorm]);
44 tw = TEXTW(stext) - lrpad + 2; /* 2px right padding */
45 drw_text(drw, m->ww - tw, 0, tw, bh, 0, stext, 0);
46 @@ -1879,7 +1879,7 @@ updategeom(void)
47 else
48 mons = createmon();
49 }
50 - for (i = 0, m = mons; i < nn && m; m = m->next, i++)
51 + for (i = 0, m = mons; i < nn && m; m = m->next, i++){
52 if (i >= n
53 || unique[i].x_org != m->mx || unique[i].y_org != m->my
54 || unique[i].width != m->mw || unique[i].height != m->mh)
55 @@ -1892,6 +1892,10 @@ updategeom(void)
56 m->mh = m->wh = unique[i].height;
57 updatebarpos(m);
58 }
59 + if(i == statmonval)
60 + statmon = m;
61 + }
62 +
63 } else { /* less monitors available nn < n */
64 for (i = nn; i < n; i++) {
65 for (m = mons; m && m->next; m = m->next);
66 @@ -1905,6 +1909,8 @@ updategeom(void)
67 }
68 if (m == selmon)
69 selmon = mons;
70 + if (m == statmon)
71 + statmon = mons;
72 cleanupmon(m);
73 }
74 }
75 @@ -1992,7 +1998,7 @@ updatestatus(void)
76 {
77 if (!gettextprop(root, XA_WM_NAME, stext, sizeof(stext)))
78 strcpy(stext, "dwm-"VERSION);
79 - drawbar(selmon);
80 + drawbar(statmon);
81 }
82
83 void