summaryrefslogtreecommitdiff
path: root/dwl-0.4/dwl.c
diff options
context:
space:
mode:
authortslil clingman <tslil@posteo.de>2023-02-12 11:42:31 +0100
committertslil clingman <tslil@posteo.de>2023-02-12 12:00:13 +0100
commite9d8f093021dc416a5c790e2161d047426db2592 (patch)
treed79ef21c1bbf5ce642382e5b95d9afc282dc8a09 /dwl-0.4/dwl.c
parent85afc067bc8adeaee9269bfbc8cb27230bd78896 (diff)
[dwl, somebar] add gaps
also allow dwl to match on empty titles
Diffstat (limited to 'dwl-0.4/dwl.c')
-rw-r--r--dwl-0.4/dwl.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/dwl-0.4/dwl.c b/dwl-0.4/dwl.c
index 5bcf768..3aa0415 100644
--- a/dwl-0.4/dwl.c
+++ b/dwl-0.4/dwl.c
@@ -462,6 +462,8 @@ applyrules(Client *c)
if (!(title = client_get_title(c)))
title = broken;
+ if (strnlen(title, 1) == 0) title="DWL_EMPTY_TITLE";
+
for (r = rules; r < END(rules); r++) {
if ((!r->title || strstr(title, r->title))
&& (!r->id || strstr(appid, r->id))) {
@@ -1816,7 +1818,7 @@ printstatus(void)
urg |= c->tags;
}
if ((c = focustop(m))) {
- printf("%s title %s\n", m->wlr_output->name, client_get_title(c));
+ printf("%s title %s (%s)\n", m->wlr_output->name, client_get_title(c), client_get_appid(c));
printf("%s fullscreen %u\n", m->wlr_output->name, c->isfullscreen);
printf("%s floating %u\n", m->wlr_output->name, c->isfloating);
sel = c->tags;
@@ -2326,7 +2328,7 @@ tagmon(const Arg *arg)
void
tile(Monitor *m)
{
- unsigned int i, n = 0, mw, my, ty;
+ unsigned int i, n = 0, mw, my, ty, r, h;
Client *c;
wl_list_for_each(c, &clients, link)
@@ -2344,21 +2346,25 @@ tile(Monitor *m)
if (!VISIBLEON(c, m) || c->isfloating || c->isfullscreen)
continue;
if (i < m->nmaster) {
+ r = MIN(n, m->nmaster) - i;
+ h = (m->w.height - my - gap * (r - 1)) / r;
resize(c, (struct wlr_box){
.x = m->w.x + m->w.width - mw,
.y = m->w.y + my,
- .height = (m->w.height - my) / (MIN(n, m->nmaster) - i),
- .width = mw
+ .width = mw - gap,
+ .height = h
}, 0);
- my += c->geom.height;
+ my += c->geom.height + gap;
} else {
+ r = n - i;
+ h = (m->w.height - ty - gap * (r-1)) / r;
resize(c, (struct wlr_box){
.x = m->w.x,
.y = m->w.y + ty,
- .width = m->w.width - mw,
- .height = (m->w.height - ty) / (n - i)
+ .width = m->w.width - mw - gap,
+ .height = h
}, 0);
- ty += c->geom.height;
+ ty += c->geom.height + gap;
}
i++;
}