Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-setborderpx-6.2.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-setborderpx-6.2.diff (3359B)
---
1 diff -up a/config.def.h b/config.def.h
2 --- a/config.def.h 2020-05-12 02:17:20.070933833 +0200
3 +++ b/config.def.h 2020-05-13 03:27:51.018695798 +0200
4 @@ -84,6 +84,9 @@ static Key keys[] = {
5 { MODKEY, XK_period, focusmon, {.i …
6 { MODKEY|ShiftMask, XK_comma, tagmon, {.i …
7 { MODKEY|ShiftMask, XK_period, tagmon, {.i …
8 + { MODKEY|ShiftMask, XK_minus, setbo…
9 + { MODKEY|ShiftMask, XK_plus, setbor…
10 + { MODKEY|ShiftMask, XK_numbersign, setborde…
11 TAGKEYS( XK_1, 0)
12 TAGKEYS( XK_2, 1)
13 TAGKEYS( XK_3, 2)
14 diff -up a/dwm.c b/dwm.c
15 --- a/dwm.c 2020-05-12 02:17:20.070933833 +0200
16 +++ b/dwm.c 2020-05-14 00:17:35.047919771 +0200
17 @@ -119,6 +119,7 @@ struct Monitor {
18 int by; /* bar geometry */
19 int mx, my, mw, mh; /* screen size */
20 int wx, wy, ww, wh; /* window area */
21 + unsigned int borderpx;
22 unsigned int seltags;
23 unsigned int sellt;
24 unsigned int tagset[2];
25 @@ -196,6 +197,7 @@ static void run(void);
26 static void scan(void);
27 static int sendevent(Client *c, Atom proto);
28 static void sendmon(Client *c, Monitor *m);
29 +static void setborderpx(const Arg *arg);
30 static void setclientstate(Client *c, long state);
31 static void setfocus(Client *c);
32 static void setfullscreen(Client *c, int fullscreen);
33 @@ -638,6 +640,7 @@ createmon(void)
34 m->nmaster = nmaster;
35 m->showbar = showbar;
36 m->topbar = topbar;
37 + m->borderpx = borderpx;
38 m->lt[0] = &layouts[0];
39 m->lt[1] = &layouts[1 % LENGTH(layouts)];
40 strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol);
41 @@ -1047,7 +1050,7 @@ manage(Window w, XWindowAttributes *wa)
42 /* only fix client y-offset, if the client center might cover t…
43 c->y = MAX(c->y, ((c->mon->by == c->mon->my) && (c->x + (c->w /…
44 && (c->x + (c->w / 2) < c->mon->wx + c->mon->ww)) ? bh …
45 - c->bw = borderpx;
46 + c->bw = c->mon->borderpx;
47
48 wc.border_width = c->bw;
49 XConfigureWindow(dpy, w, CWBorderWidth, &wc);
50 @@ -1424,6 +1427,40 @@ sendmon(Client *c, Monitor *m)
51 }
52
53 void
54 +setborderpx(const Arg *arg)
55 +{
56 + Client *c;
57 + int prev_borderpx = selmon->borderpx;
58 +
59 + if (arg->i == 0)
60 + selmon->borderpx = borderpx;
61 + else if (selmon->borderpx + arg->i < 0)
62 + selmon->borderpx = 0;
63 + else
64 + selmon->borderpx += arg->i;
65 +
66 + for (c = selmon->clients; c; c = c->next)
67 + {
68 + if (c->bw + arg->i < 0)
69 + c->bw = selmon->borderpx = 0;
70 + else
71 + c->bw = selmon->borderpx;
72 + if (c->isfloating || !selmon->lt[selmon->sellt]->arrang…
73 + {
74 + if (arg->i != 0 && prev_borderpx + arg->i >= 0)
75 + resize(c, c->x, c->y, c->w-(arg->i*2), …
76 + else if (arg->i != 0)
77 + resizeclient(c, c->x, c->y, c->w, c->h);
78 + else if (prev_borderpx > borderpx)
79 + resize(c, c->x, c->y, c->w + 2*(prev_bo…
80 + else if (prev_borderpx < borderpx)
81 + resize(c, c->x, c->y, c->w-2*(borderpx …
82 + }
83 + }
84 + arrange(selmon);
85 +}
86 +
87 +void
88 setclientstate(Client *c, long state)
89 {
90 long data[] = { state, None };
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.