Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-xtile-gaps-6.2.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-xtile-gaps-6.2.diff (6257B)
---
1 From 09e6db7a154c2dc3f6c5533ba3e33f460a8e21e1 Mon Sep 17 00:00:00 2001
2 From: MLquest8 <[email protected]>
3 Date: Mon, 15 Jun 2020 21:32:22 +0400
4 Subject: [PATCH] gaps for xtile. Fully independent outer and inner gaps
5 adjustable at runtime. Also includes a setting to disable gaps when onl…
6 window is open. For version 6.2
7
8 ---
9 config.def.h | 9 +++++++++
10 dwm.c | 55 ++++++++++++++++++++++++++++++++++++++++------------
11 2 files changed, 52 insertions(+), 12 deletions(-)
12
13 diff --git a/config.def.h b/config.def.h
14 index 254e51c..91871de 100644
15 --- a/config.def.h
16 +++ b/config.def.h
17 @@ -2,6 +2,9 @@
18
19 /* appearance */
20 static const unsigned int borderpx = 1; /* border pixel of wind…
21 +static const unsigned int igappx = 5; /* size of inner gaps */
22 +static const unsigned int ogappx = 5; /* size of outer gaps */
23 +static const int gapsforone = 0; /* 1 enable gaps whe…
24 static const unsigned int snap = 32; /* snap pixel */
25 static const int showbar = 1; /* 0 means no bar */
26 static const int topbar = 1; /* 0 means bottom bar */
27 @@ -76,6 +79,12 @@ static Key keys[] = {
28 { MODKEY, XK_Return, zoom, {0} …
29 { MODKEY, XK_Tab, view, {0} …
30 { MODKEY|ShiftMask, XK_c, killclient, {0} …
31 + { MODKEY|ShiftMask, XK_i, setigaps, {.i …
32 + { MODKEY|ControlMask, XK_i, setigaps, {.i …
33 + { MODKEY|ShiftMask|ControlMask, XK_i, setigaps, {.i …
34 + { MODKEY|ShiftMask, XK_o, setogaps, {.i …
35 + { MODKEY|ControlMask, XK_o, setogaps, {.i …
36 + { MODKEY|ShiftMask|ControlMask, XK_o, setogaps, {.i …
37 { MODKEY, XK_t, setlayout, {.v …
38 { MODKEY, XK_f, setlayout, {.v …
39 { MODKEY, XK_m, setlayout, {.v …
40 diff --git a/dwm.c b/dwm.c
41 index e43fbad..570739e 100644
42 --- a/dwm.c
43 +++ b/dwm.c
44 @@ -130,6 +130,7 @@ struct Monitor {
45 int by; /* bar geometry */
46 int mx, my, mw, mh; /* screen size */
47 int wx, wy, ww, wh; /* window area */
48 + int igappx, ogappx; /* inner and outer gaps */
49 unsigned int seltags;
50 unsigned int sellt;
51 unsigned int tagset[2];
52 @@ -214,6 +215,8 @@ static void setdirs(const Arg *arg);
53 static void setfacts(const Arg *arg);
54 static void setfocus(Client *c);
55 static void setfullscreen(Client *c, int fullscreen);
56 +static void setigaps(const Arg *arg);
57 +static void setogaps(const Arg *arg);
58 static void setlayout(const Arg *arg);
59 static void setup(void);
60 static void seturgent(Client *c, int urg);
61 @@ -666,6 +669,8 @@ createmon(void)
62 m->nmaster = nmaster;
63 m->showbar = showbar;
64 m->topbar = topbar;
65 + m->igappx = igappx;
66 + m->ogappx = ogappx;
67 m->lt[0] = &layouts[0];
68 m->lt[1] = &layouts[1 % LENGTH(layouts)];
69 strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol);
70 @@ -1569,6 +1574,26 @@ setfullscreen(Client *c, int fullscreen)
71 }
72 }
73
74 +void
75 +setigaps(const Arg *arg)
76 +{
77 + if ((arg->i == 0) || (selmon->igappx + arg->i < 0))
78 + selmon->igappx = 0;
79 + else
80 + selmon->igappx += arg->i;
81 + arrange(selmon);
82 +}
83 +
84 +void
85 +setogaps(const Arg *arg)
86 +{
87 + if ((arg->i == 0) || (selmon->ogappx + arg->i < 0))
88 + selmon->ogappx = 0;
89 + else
90 + selmon->ogappx += arg->i;
91 + arrange(selmon);
92 +}
93 +
94 void
95 setlayout(const Arg *arg)
96 {
97 @@ -1733,7 +1758,7 @@ tile(Monitor *m)
98 Client *c;
99
100 Area *ga = m->pertag->areas[m->pertag->curtag], *ma = ga + 1, *…
101 - unsigned int n, i, w, h, ms, ss;
102 + unsigned int n, i, w, h, g, ms, ss;
103 float f;
104
105 /* print layout symbols */
106 @@ -1746,27 +1771,33 @@ tile(Monitor *m)
107 for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next…
108 if (n == 0)
109 return;
110 + if(n == 1 && gapsforone == 0){
111 + c = nexttiled(m->clients);
112 + resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * …
113 + return;
114 + }
115
116 ma->n = MIN(n, m->nmaster), sa->n = n - ma->n;
117 /* calculate area rectangles */
118 f = ma->n == 0 ? 0 : (sa->n == 0 ? 1 : ga->fact / 2);
119 + g = ma->n == 0 || sa->n == 0 ? 0 : m->igappx;
120 if(ga->dir == DirHor || ga->dir == DirRotHor)
121 - ms = f * m->ww, ss = m->ww - ms,
122 - ma->x = ga->dir == DirHor ? 0 : ss, ma->y = 0, ma->fx =…
123 - sa->x = ga->dir == DirHor ? ms : 0, sa->y = 0, sa->fx =…
124 + ms = f * (m->ww - g), ss = m->ww - ms - g,
125 + ma->x = ga->dir == DirHor ? 0 + m->ogappx : ss + g + m-…
126 + sa->x = ga->dir == DirHor ? ms + g - m->ogappx : 0 + m-…
127 else
128 - ms = f * m->wh, ss = m->wh - ms,
129 - ma->x = 0, ma->y = ga->dir == DirVer ? 0 : ss, ma->fx =…
130 - sa->x = 0, sa->y = ga->dir == DirVer ? ms : 0, sa->fx =…
131 + ms = f * (m->wh - g), ss = m->wh - ms - g,
132 + ma->x = 0 + m->ogappx, ma->y = ga->dir == DirVer ? 0 + …
133 + sa->x = 0 + m->ogappx, sa->y = ga->dir == DirVer ? ms +…
134 /* tile clients */
135 for(c = nexttiled(m->clients), i = 0; i < n; c = nexttiled(c->n…
136 a = ma->n > 0 ? ma : sa;
137 f = i == 0 || ma->n == 0 ? a->fact : 1, f /= --a->n + f;
138 - w = (a->dir == DirVer ? 1 : f) * (a->fx - a->x);
139 - h = (a->dir == DirHor ? 1 : f) * (a->fy - a->y);
140 - resize(c, m->wx + a->x, m->wy + a->y, w - 2 * c->bw, h …
141 - a->x += a->dir == DirHor ? w : 0;
142 - a->y += a->dir == DirVer ? h : 0;
143 + w = a->dir == DirVer ? a->fx - a->x : f * (a->fx - a->x…
144 + h = a->dir == DirHor ? a->fy - a->y : f * (a->fy - a->y…
145 + resize(c, m->wx + a->x, m->wy + a->y, w - 2 * c->bw, h …
146 + a->x += a->dir == DirHor ? w + m->igappx : 0;
147 + a->y += a->dir == DirVer ? h + m->igappx : 0;
148 }
149 }
150
151 --
152 2.26.2
153
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.