Introduction
Introduction Statistics Contact Development Disclaimer Help
multimon-4-added-statusall-toggle-replacing-need-for-patch.diff - sites - publi…
git clone git://git.suckless.org/sites
Log
Files
Refs
---
multimon-4-added-statusall-toggle-replacing-need-for-patch.diff (6165B)
---
1 From d318ffdc7ab7a365e548776a1d8ed5ccbd67cd42 Mon Sep 17 00:00:00 2001
2 From: "Gary B. Genett" <[email protected]>
3 Date: Mon, 24 Mar 2014 14:44:04 -0700
4 Subject: added statusall toggle, replacing need for patch
5 MIME-Version: 1.0
6 Content-Type: multipart/mixed; boundary="------------1.8.3.2"
7
8 This is a multi-part message in MIME format.
9 --------------1.8.3.2
10 Content-Type: text/plain; charset=UTF-8; format=fixed
11 Content-Transfer-Encoding: 8bit
12
13 ---
14 config.def.h | 1 +
15 dwm.c | 12 ++++++------
16 2 files changed, 7 insertions(+), 6 deletions(-)
17
18
19 --------------1.8.3.2
20 Content-Type: text/x-patch; name="0004-added-statusall-toggle-replacing-…
21 Content-Transfer-Encoding: 8bit
22 Content-Disposition: attachment; filename="0004-added-statusall-toggle-r…
23
24 diff --git a/config.def.h b/config.def.h
25 index 92b1a461604c81c061f60780dc189a83dd697562..b4759a569dc23754dd240da5…
26 --- a/config.def.h
27 +++ b/config.def.h
28 @@ -24,20 +24,21 @@ static const Rule rules[] = {
29 /* class instance title tags mask isfloating …
30 { "Gimp", NULL, NULL, 0, True, …
31 { "Firefox", NULL, NULL, 1 << 8, False, …
32 };
33
34 /* layout(s) */
35 static const float mfact = 0.55; /* factor of master area size [0.…
36 static const int nmaster = 1; /* number of clients in master ar…
37 static const int nviews = 1; /* number of tags highlighted by …
38 static const Bool resizehints = True; /* True means respect size hints …
39 +static const Bool statusall = False;/* True means status is shown in …
40
41 static const int master[1]; /* nmaster override per monitor */
42 //static const int master[] = {1,-1}; /* monitor 0 = nmaster 1, monitor…
43 static const int views[1]; /* nviews override per monitor */
44 //static const int views[] = {4,~0}; /* monitor 0 = nviews 4, monitor …
45
46 static const Layout layouts[] = {
47 /* symbol arrange function */
48 { "[]=", tile }, /* first entry is default */
49 { "><>", NULL }, /* no layout function means floating b…
50 diff --git a/dwm.c b/dwm.c
51 index 2b3bf5f99c95180cfb5a3bb04b4181481fbe7bbd..92aa91a75a39cf1ed298a227…
52 --- a/dwm.c
53 +++ b/dwm.c
54 @@ -719,21 +719,21 @@ drawbar(Monitor *m) {
55 drw_setscheme(drw, &scheme[SchemeNorm]);
56 drw_text(drw, x, 0, w, bh, m->ltsymbol, 0);
57 x += w;
58 char custom[4] = {0}; // needs to be +1 of actual size, for som…
59 snprintf(custom, sizeof(custom), "<%d>", m->num);
60 w = bmw = TEXTW(custom);
61 drw_setscheme(drw, m == selmon ? &scheme[SchemeSel] : &scheme[S…
62 drw_text(drw, x, 0, w, bh, custom, 0);
63 x += w;
64 xx = x;
65 - if(m == selmon) { /* status is only drawn on selected monitor */
66 + if(m == selmon || statusall) { /* status is only drawn on selec…
67 w = TEXTW(stext);
68 x = m->ww - w;
69 if(x < xx) {
70 x = xx;
71 w = m->ww - xx;
72 }
73 drw_setscheme(drw, &scheme[SchemeNorm]);
74 drw_text(drw, x, 0, w, bh, stext, 0);
75 }
76 else
77 @@ -779,21 +779,21 @@ enternotify(XEvent *e) {
78 return;
79 focus(c);
80 }
81
82 void
83 expose(XEvent *e) {
84 Monitor *m;
85 XExposeEvent *ev = &e->xexpose;
86
87 if(ev->count == 0 && (m = wintomon(ev->window)))
88 - drawbar(m);
89 + statusall ? drawbars() : drawbar(m);
90 }
91
92 void
93 focus(Client *c) {
94 if(!c || !ISVISIBLE(c))
95 for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext…
96 /* was if(selmon->sel) */
97 if(selmon->sel && selmon->sel != c)
98 unfocus(selmon->sel, False);
99 if(c) {
100 @@ -1222,21 +1222,21 @@ propertynotify(XEvent *e) {
101 updatesizehints(c);
102 break;
103 case XA_WM_HINTS:
104 updatewmhints(c);
105 drawbars();
106 break;
107 }
108 if(ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMN…
109 updatetitle(c);
110 if(c == c->mon->sel)
111 - drawbar(c->mon);
112 + statusall ? drawbars() : drawbar(c->mon…
113 }
114 if(ev->atom == netatom[NetWMWindowType])
115 updatewindowtype(c);
116 }
117 }
118
119 void
120 quit(const Arg *arg) {
121 running = False;
122 }
123 @@ -1325,21 +1325,21 @@ resizemouse(const Arg *arg) {
124 focus(NULL);
125 }
126 }
127
128 void
129 restack(Monitor *m) {
130 Client *c;
131 XEvent ev;
132 XWindowChanges wc;
133
134 - drawbar(m);
135 + statusall ? drawbars() : drawbar(m);
136 if(!m->sel)
137 return;
138 if(m->sel->isfloating || !m->lt[m->sellt]->arrange)
139 XRaiseWindow(dpy, m->sel->win);
140 if(m->lt[m->sellt]->arrange) {
141 wc.stack_mode = Below;
142 wc.sibling = m->barwin;
143 for(c = m->stack; c; c = c->snext)
144 if(!c->isfloating && ISVISIBLE(c)) {
145 XConfigureWindow(dpy, c->win, CWSibling…
146 @@ -1475,21 +1475,21 @@ setfullscreen(Client *c, Bool fullscreen) {
147 void
148 setlayout(const Arg *arg) {
149 if(!arg || !arg->v || arg->v != selmon->lt[selmon->sellt])
150 selmon->sellt ^= 1;
151 if(arg && arg->v)
152 selmon->lt[selmon->sellt] = (Layout *)arg->v;
153 strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, si…
154 if(selmon->sel)
155 arrange(selmon);
156 else
157 - drawbar(selmon);
158 + statusall ? drawbars() : drawbar(selmon);
159 }
160
161 /* arg > 1.0 will set mfact absolutly */
162 void
163 setmfact(const Arg *arg) {
164 float f;
165
166 if(!arg || !selmon->lt[selmon->sellt]->arrange)
167 return;
168 f = arg->f < 1.0 ? arg->f + selmon->mfact : arg->f - 1.0;
169 @@ -1941,21 +1941,21 @@ updatetitle(Client *c) {
170 if(!gettextprop(c->win, netatom[NetWMName], c->name, sizeof c->…
171 gettextprop(c->win, XA_WM_NAME, c->name, sizeof c->name…
172 if(c->name[0] == '\0') /* hack to mark broken clients */
173 strcpy(c->name, broken);
174 }
175
176 void
177 updatestatus(void) {
178 if(!gettextprop(root, XA_WM_NAME, stext, sizeof(stext)))
179 strcpy(stext, "dwm-"VERSION);
180 - drawbar(selmon);
181 + statusall ? drawbars() : drawbar(selmon);
182 }
183
184 void
185 updatewindowtype(Client *c) {
186 Atom state = getatomprop(c, netatom[NetWMState]);
187 Atom wtype = getatomprop(c, netatom[NetWMWindowType]);
188
189 if(state == netatom[NetWMFullscreen])
190 setfullscreen(c, True);
191 if(wtype == netatom[NetWMWindowTypeDialog])
192
193 --------------1.8.3.2--
194
195
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.