From 17501c9f28226b1f332d6842be0d7f50ba618a29 Mon Sep 17 00:00:00 2001 From: moonsabre Date: Fri, 14 Mar 2025 16:04:25 -0700 Subject: [PATCH] Bar title centering parameter. --- config.def.h | 1 + dwl.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/config.def.h b/config.def.h index 5d1dc2b..8ac3a8b 100644 --- a/config.def.h +++ b/config.def.h @@ -9,6 +9,7 @@ static const int bypass_surface_visibility = 0; /* 1 means idle inhibitors will static const unsigned int borderpx = 1; /* border pixel of windows */ static const int showbar = 1; /* 0 means no bar */ static const int topbar = 1; /* 0 means bottom bar */ +static const int centeredtitle = 1; /* 1 means centered title */ static const char *fonts[] = {"monospace:size=10"}; static const float rootcolor[] = COLOR(0x000000ff); /* This conforms to the xdg-protocol. Set the alpha to zero to restore the old behavior */ diff --git a/dwl.c b/dwl.c index ece537a..9eb816b 100644 --- a/dwl.c +++ b/dwl.c @@ -1551,9 +1551,14 @@ drawbar(Monitor *m) if ((w = m->b.width - tw - x) > m->b.height) { if (c) { drwl_setscheme(m->drw, colors[m == selmon ? SchemeSel : SchemeNorm]); - drwl_text(m->drw, x, 0, w, m->b.height, m->lrpad / 2, client_get_title(c), 0); + tw = TEXTW(selmon, client_get_title(c)); + drwl_text(m->drw, x, 0, w, m->b.height, + !centeredtitle || tw > w ? m->lrpad / 2 : (w - tw) / 2, + client_get_title(c), 0); if (c && c->isfloating) - drwl_rect(m->drw, x + boxs, boxs, boxw, boxw, 0, 0); + drwl_rect(m->drw, + !centeredtitle || tw > w ? x + boxs : x + ((w - tw) / 2 - boxs * 8), + boxs, boxw, boxw, 0, 0); } else { drwl_setscheme(m->drw, colors[SchemeNorm]); drwl_rect(m->drw, x, 0, w, m->b.height, 1, 1); -- 2.48.1