Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-cfacts-6.2.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-cfacts-6.2.diff (2999B)
---
1 diff -uraN a/config.def.h b/config.def.h
2 --- a/config.def.h 2019-02-02 15:55:28.000000000 +0300
3 +++ b/config.def.h 2020-02-18 03:33:58.212113667 +0300
4 @@ -70,6 +70,9 @@
5 { MODKEY, XK_d, incnmaster, {.i …
6 { MODKEY, XK_h, setmfact, {.f …
7 { MODKEY, XK_l, setmfact, {.f …
8 + { MODKEY|ShiftMask, XK_h, setcfact, {.f …
9 + { MODKEY|ShiftMask, XK_l, setcfact, {.f …
10 + { MODKEY|ShiftMask, XK_o, setcfact, {.f …
11 { MODKEY, XK_Return, zoom, {0} …
12 { MODKEY, XK_Tab, view, {0} …
13 { MODKEY|ShiftMask, XK_c, killclient, {0} …
14 diff -uraN a/dwm.c b/dwm.c
15 --- a/dwm.c 2019-02-02 15:55:28.000000000 +0300
16 +++ b/dwm.c 2020-02-18 03:33:58.213447007 +0300
17 @@ -87,6 +87,7 @@
18 struct Client {
19 char name[256];
20 float mina, maxa;
21 + float cfact;
22 int x, y, w, h;
23 int oldx, oldy, oldw, oldh;
24 int basew, baseh, incw, inch, maxw, maxh, minw, minh;
25 @@ -200,6 +201,7 @@
26 static void setfocus(Client *c);
27 static void setfullscreen(Client *c, int fullscreen);
28 static void setlayout(const Arg *arg);
29 +static void setcfact(const Arg *arg);
30 static void setmfact(const Arg *arg);
31 static void setup(void);
32 static void seturgent(Client *c, int urg);
33 @@ -1029,6 +1031,7 @@
34 c->w = c->oldw = wa->width;
35 c->h = c->oldh = wa->height;
36 c->oldbw = wa->border_width;
37 + c->cfact = 1.0;
38
39 updatetitle(c);
40 if (XGetTransientForHint(dpy, w, &trans) && (t = wintoclient(tr…
41 @@ -1511,6 +1514,23 @@
42 drawbar(selmon);
43 }
44
45 +void setcfact(const Arg *arg) {
46 + float f;
47 + Client *c;
48 +
49 + c = selmon->sel;
50 +
51 + if(!arg || !c || !selmon->lt[selmon->sellt]->arrange)
52 + return;
53 + f = arg->f + c->cfact;
54 + if(arg->f == 0.0)
55 + f = 1.0;
56 + else if(f < 0.25 || f > 4.0)
57 + return;
58 + c->cfact = f;
59 + arrange(selmon);
60 +}
61 +
62 /* arg > 1.0 will set mfact absolutely */
63 void
64 setmfact(const Arg *arg)
65 @@ -1674,9 +1694,15 @@
66 tile(Monitor *m)
67 {
68 unsigned int i, n, h, mw, my, ty;
69 + float mfacts = 0, sfacts = 0;
70 Client *c;
71
72 - for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next…
73 + for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next…
74 + if (n < m->nmaster)
75 + mfacts += c->cfact;
76 + else
77 + sfacts += c->cfact;
78 + }
79 if (n == 0)
80 return;
81
82 @@ -1686,13 +1712,15 @@
83 mw = m->ww;
84 for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttil…
85 if (i < m->nmaster) {
86 - h = (m->wh - my) / (MIN(n, m->nmaster) - i);
87 + h = (m->wh - my) * (c->cfact / mfacts);
88 resize(c, m->wx, m->wy + my, mw - (2*c->bw), h …
89 my += HEIGHT(c);
90 + mfacts -= c->cfact;
91 } else {
92 h = (m->wh - ty) / (n - i);
93 resize(c, m->wx + mw, m->wy + ty, m->ww - mw - …
94 ty += HEIGHT(c);
95 + sfacts -= c->cfact;
96 }
97 }
98
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.