myvxwm

[fork] my vxwm config (optimised for my T480)
git clone https://git.lukeonline.net/repos/myvxwm
Log | Files | Refs | README | LICENSE

commit d11955622f822a815518ad8987c44b59a50ecb59
parent b1533df3279d51283d7d42c2cd47239e2dee94fa
Author: wh1tepearl <wh1tepearl@gmail.com>
Date:   Wed, 25 Mar 2026 21:51:23 +0000

brainfart

Diffstat:
MMakefile | 12++++--------
Mmodules/infinitetags/infinitetags.c | 44+++++++++++++++++++-------------------------
Mvxwm.c | 20++++++++++++++++++--
3 files changed, 41 insertions(+), 35 deletions(-)

diff --git a/Makefile b/Makefile @@ -34,14 +34,10 @@ dist: clean rm -rf vxwm-${VERSION} install: all - mkdir -p ${DESTDIR}${PREFIX}/bin - cp -f vxwm ${DESTDIR}${PREFIX}/bin - cp -f rvx ${DESTDIR}${PREFIX}/bin - chmod 755 ${DESTDIR}${PREFIX}/bin/vxwm - chmod 755 ${DESTDIR}${PREFIX}/bin/rvx - mkdir -p ${DESTDIR}${MANPREFIX}/man1 - sed "s/VERSION/${VERSION}/g" < vxwm.1 > ${DESTDIR}${MANPREFIX}/man1/vxwm.1 - chmod 644 ${DESTDIR}${MANPREFIX}/man1/vxwm.1 + install -D -m 755 vxwm ${DESTDIR}${PREFIX}/bin/vxwm + install -D -m 755 rvx ${DESTDIR}${PREFIX}/bin/rvx + install -D -m 644 vxwm.1 ${DESTDIR}${MANPREFIX}/man1/vxwm.1 + sed -i 's/VERSION/${VERSION}/g' ${DESTDIR}${MANPREFIX}/man1/vxwm.1 uninstall: rm -f ${DESTDIR}${PREFIX}/bin/vxwm\ diff --git a/modules/infinitetags/infinitetags.c b/modules/infinitetags/infinitetags.c @@ -170,37 +170,31 @@ restore_canvas_positions(Monitor *m) { void centerwindow(const Arg *arg) { - Client *c = (arg && arg->v) ? (Client *)arg->v : selmon->sel; + Client *c = (arg && arg->v) ? (Client *)arg->v : selmon->sel; - if (!c || !c->mon || c->mon->lt[c->mon->sellt]->arrange != NULL) - return; - - Monitor *m = c->mon; - int tagidx = getcurrenttag(m); - - int screen_center_x = m->wx + (m->ww / 2); - int screen_center_y = m->wy + (m->wh / 2); + if (!c || !c->mon || c->mon->lt[c->mon->sellt]->arrange != NULL) + return; - int win_center_x = c->x + (c->w + 2 * c->bw) / 2; - int win_center_y = c->y + (c->h + 2 * c->bw) / 2; + Monitor *m = c->mon; + int tagidx = getcurrenttag(m); - int dx = screen_center_x - win_center_x; - int dy = screen_center_y - win_center_y; + int dx = (m->wx + m->ww - WIDTH(c)) / 2 - c->x; + int dy = m->wy + (m->wh / 2) - (c->y + HEIGHT(c) / 2); - if (dx == 0 && dy == 0) - return; + if (dx == 0 && dy == 0) + return; - Client *tmp; - for (tmp = m->clients; tmp; tmp = tmp->next) { - if (ISVISIBLE(tmp)) { - tmp->x += dx; - tmp->y += dy; - XMoveWindow(dpy, tmp->win, tmp->x, tmp->y); - } + Client *tmp; + for (tmp = m->clients; tmp; tmp = tmp->next) { + if (ISVISIBLE(tmp)) { + tmp->x += dx; + tmp->y += dy; + XMoveWindow(dpy, tmp->win, tmp->x, tmp->y); } + } - m->canvas[tagidx].cx += dx; - m->canvas[tagidx].cy += dy; + m->canvas[tagidx].cx += dx; + m->canvas[tagidx].cy += dy; - drawbar(m); + drawbar(m); } diff --git a/vxwm.c b/vxwm.c @@ -598,7 +598,11 @@ cleanupmon(Monitor *mon) } XUnmapWindow(dpy, mon->barwin); XDestroyWindow(dpy, mon->barwin); - free(mon); +#if INFINITE_TAGS + free(mon->canvas); +#endif + free(mon); + } void @@ -897,7 +901,6 @@ drawbar(Monitor *m) } } drw_map(drw, m->barwin, 0, 0, m->ww, bh); - XRaiseWindow(dpy, m->barwin); } void @@ -1729,6 +1732,19 @@ restack(Monitor *m) wc.sibling = c->win; } } +#if INFINITE_TAGS + else { + wc.stack_mode = Below; + wc.sibling = m->barwin; + for (c = m->stack; c; c = c->snext) { + if (ISVISIBLE(c) && !c->isfixed) { + XConfigureWindow(dpy, c->win, CWSibling|CWStackMode, &wc); + wc.sibling = c->win; + } + } + XRaiseWindow(dpy, m->barwin); + } +#endif XSync(dpy, False); while (XCheckMaskEvent(dpy, EnterWindowMask, &ev)); }