dwm-fullgaps-6.4.diff - sites - public wiki contents of suckless.org | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
dwm-fullgaps-6.4.diff (3653B) | |
--- | |
1 diff -up a/config.def.h b/config.def.h | |
2 --- a/config.def.h | |
3 +++ b/config.def.h | |
4 @@ -2,6 +2,7 @@ | |
5 | |
6 /* appearance */ | |
7 static const unsigned int borderpx = 1; /* border pixel of wind… | |
8 +static const unsigned int gappx = 5; /* gaps between windows… | |
9 static const unsigned int snap = 32; /* snap pixel */ | |
10 static const int showbar = 1; /* 0 means no bar */ | |
11 static const int topbar = 1; /* 0 means bottom bar */ | |
12 @@ -85,6 +86,9 @@ static const Key keys[] = { | |
13 { MODKEY, XK_period, focusmon, {.i … | |
14 { MODKEY|ShiftMask, XK_comma, tagmon, {.i … | |
15 { MODKEY|ShiftMask, XK_period, tagmon, {.i … | |
16 + { MODKEY, XK_minus, setgaps, {.i … | |
17 + { MODKEY, XK_equal, setgaps, {.i … | |
18 + { MODKEY|ShiftMask, XK_equal, setgaps, {.i … | |
19 TAGKEYS( XK_1, 0) | |
20 TAGKEYS( XK_2, 1) | |
21 TAGKEYS( XK_3, 2) | |
22 diff -up a/dwm.c b/dwm.c | |
23 --- a/dwm.c 2023-04-30 | |
24 +++ b/dwm.c 2023-04-30 | |
25 @@ -119,6 +119,7 @@ struct Monitor { | |
26 int by; /* bar geometry */ | |
27 int mx, my, mw, mh; /* screen size */ | |
28 int wx, wy, ww, wh; /* window area */ | |
29 + int gappx; /* gaps between windows */ | |
30 unsigned int seltags; | |
31 unsigned int sellt; | |
32 unsigned int tagset[2]; | |
33 @@ -200,6 +201,7 @@ static void sendmon(Client *c, Monitor * | |
34 static void setclientstate(Client *c, long state); | |
35 static void setfocus(Client *c); | |
36 static void setfullscreen(Client *c, int fullscreen); | |
37 +static void setgaps(const Arg *arg); | |
38 static void setlayout(const Arg *arg); | |
39 static void setmfact(const Arg *arg); | |
40 static void setup(void); | |
41 @@ -641,6 +643,7 @@ createmon(void) | |
42 m->nmaster = nmaster; | |
43 m->showbar = showbar; | |
44 m->topbar = topbar; | |
45 + m->gappx = gappx; | |
46 m->lt[0] = &layouts[0]; | |
47 m->lt[1] = &layouts[1 % LENGTH(layouts)]; | |
48 strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol); | |
49 @@ -1508,6 +1511,16 @@ setfullscreen(Client *c, int fullscreen) | |
50 } | |
51 | |
52 void | |
53 +setgaps(const Arg *arg) | |
54 +{ | |
55 + if ((arg->i == 0) || (selmon->gappx + arg->i < 0)) | |
56 + selmon->gappx = 0; | |
57 + else | |
58 + selmon->gappx += arg->i; | |
59 + arrange(selmon); | |
60 +} | |
61 + | |
62 +void | |
63 setlayout(const Arg *arg) | |
64 { | |
65 if (!arg || !arg->v || arg->v != selmon->lt[selmon->sellt]) | |
66 @@ -1697,18 +1710,18 @@ tile(Monitor *m) | |
67 if (n > m->nmaster) | |
68 mw = m->nmaster ? m->ww * m->mfact : 0; | |
69 else | |
70 - mw = m->ww; | |
71 - for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttil… | |
72 - if (i < m->nmaster) { | |
73 - h = (m->wh - my) / (MIN(n, m->nmaster) - i); | |
74 - resize(c, m->wx, m->wy + my, mw - (2*c->bw), h … | |
75 - if (my + HEIGHT(c) < m->wh) | |
76 - my += HEIGHT(c); | |
77 + mw = m->ww - m->gappx; | |
78 + for (i = 0, my = ty = m->gappx, c = nexttiled(m->clients); c; c… | |
79 + if (i < m->nmaster) { | |
80 + h = (m->wh - my) / (MIN(n, m->nmaster) - i) - m… | |
81 + resize(c, m->wx + m->gappx, m->wy + my, mw - (2… | |
82 + if (my + HEIGHT(c) + m->gappx < m->wh) | |
83 + my += HEIGHT(c) + m->gappx; | |
84 } else { | |
85 - h = (m->wh - ty) / (n - i); | |
86 - resize(c, m->wx + mw, m->wy + ty, m->ww - mw - … | |
87 - if (ty + HEIGHT(c) < m->wh) | |
88 - ty += HEIGHT(c); | |
89 + h = (m->wh - ty) / (n - i) - m->gappx; | |
90 + resize(c, m->wx + mw + m->gappx, m->wy + ty, m-… | |
91 + if (ty + HEIGHT(c) + m->gappx < m->wh) | |
92 + ty += HEIGHT(c) + m->gappx; | |
93 } | |
94 } |