Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-cfacts-20200913-61bb8b2.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-cfacts-20200913-61bb8b2.diff (3596B)
---
1 From c32a879432573d71dec7fcb4bf68927d2f4cdf10 Mon Sep 17 00:00:00 2001
2 From: iofq <[email protected]>
3 Date: Sat, 12 Sep 2020 22:28:09 -0500
4 Subject: [PATCH] Fixed 'cfacts' patch failure due to upstream commit
5 'f09418bbb...'
6
7 ---
8 config.def.h | 3 +++
9 dwm.c | 34 +++++++++++++++++++++++++++++++---
10 2 files changed, 34 insertions(+), 3 deletions(-)
11
12 diff --git a/config.def.h b/config.def.h
13 index 1c0b587..83910c1 100644
14 --- a/config.def.h
15 +++ b/config.def.h
16 @@ -70,6 +70,9 @@ static Key keys[] = {
17 { MODKEY, XK_d, incnmaster, {.i …
18 { MODKEY, XK_h, setmfact, {.f …
19 { MODKEY, XK_l, setmfact, {.f …
20 + { MODKEY|ShiftMask, XK_h, setcfact, {.f …
21 + { MODKEY|ShiftMask, XK_l, setcfact, {.f …
22 + { MODKEY|ShiftMask, XK_o, setcfact, {.f …
23 { MODKEY, XK_Return, zoom, {0} …
24 { MODKEY, XK_Tab, view, {0} …
25 { MODKEY|ShiftMask, XK_c, killclient, {0} …
26 diff --git a/dwm.c b/dwm.c
27 index 664c527..5233229 100644
28 --- a/dwm.c
29 +++ b/dwm.c
30 @@ -87,6 +87,7 @@ typedef struct Client Client;
31 struct Client {
32 char name[256];
33 float mina, maxa;
34 + float cfact;
35 int x, y, w, h;
36 int oldx, oldy, oldw, oldh;
37 int basew, baseh, incw, inch, maxw, maxh, minw, minh;
38 @@ -201,6 +202,7 @@ static void setclientstate(Client *c, long state);
39 static void setfocus(Client *c);
40 static void setfullscreen(Client *c, int fullscreen);
41 static void setlayout(const Arg *arg);
42 +static void setcfact(const Arg *arg);
43 static void setmfact(const Arg *arg);
44 static void setup(void);
45 static void seturgent(Client *c, int urg);
46 @@ -1030,6 +1032,7 @@ manage(Window w, XWindowAttributes *wa)
47 c->w = c->oldw = wa->width;
48 c->h = c->oldh = wa->height;
49 c->oldbw = wa->border_width;
50 + c->cfact = 1.0;
51
52 updatetitle(c);
53 if (XGetTransientForHint(dpy, w, &trans) && (t = wintoclient(tr…
54 @@ -1512,6 +1515,23 @@ setlayout(const Arg *arg)
55 drawbar(selmon);
56 }
57
58 +void setcfact(const Arg *arg) {
59 + float f;
60 + Client *c;
61 +
62 + c = selmon->sel;
63 +
64 + if(!arg || !c || !selmon->lt[selmon->sellt]->arrange)
65 + return;
66 + f = arg->f + c->cfact;
67 + if(arg->f == 0.0)
68 + f = 1.0;
69 + else if(f < 0.25 || f > 4.0)
70 + return;
71 + c->cfact = f;
72 + arrange(selmon);
73 +}
74 +
75 /* arg > 1.0 will set mfact absolutely */
76 void
77 setmfact(const Arg *arg)
78 @@ -1675,9 +1695,15 @@ void
79 tile(Monitor *m)
80 {
81 unsigned int i, n, h, mw, my, ty;
82 + float mfacts = 0, sfacts = 0;
83 Client *c;
84
85 - for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next…
86 + for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next…
87 + if (n < m->nmaster)
88 + mfacts += c->cfact;
89 + else
90 + sfacts += c->cfact;
91 + }
92 if (n == 0)
93 return;
94
95 @@ -1687,15 +1713,17 @@ tile(Monitor *m)
96 mw = m->ww;
97 for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttil…
98 if (i < m->nmaster) {
99 - h = (m->wh - my) / (MIN(n, m->nmaster) - i);
100 + h = (m->wh - my) * (c->cfact / mfacts);
101 resize(c, m->wx, m->wy + my, mw - (2*c->bw), h …
102 if (my + HEIGHT(c) < m->wh)
103 my += HEIGHT(c);
104 + mfacts -= c->cfact;
105 } else {
106 - h = (m->wh - ty) / (n - i);
107 + h = (m->wh - ty) * (c->cfact / sfacts);
108 resize(c, m->wx + mw, m->wy + ty, m->ww - mw - …
109 if (ty + HEIGHT(c) < m->wh)
110 ty += HEIGHT(c);
111 + sfacts -= c->cfact;
112 }
113 }
114
115 --
116 2.28.0
117
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.