From 9c71f5e1afdb617f7d46222a9b08a672078155c5 Mon Sep 17 00:00:00 2001 From: murat Date: Mon, 13 Jan 2025 15:14:42 +0300 Subject: [PATCH] alwayscenter patch --- config.def.h | 4 +- config.h | 4 +- dwm | Bin 67584 -> 67584 bytes dwm.c | 2 + dwm.c.orig | 33 +++++++---- dwm.o | Bin 58448 -> 58520 bytes .../dwm-alwayscenter-20200625-f04cac6.diff | 12 ++++ patches/dwm-attachbottom-6.3.diff | 54 ++++++++++++++++++ 8 files changed, 95 insertions(+), 14 deletions(-) create mode 100644 patches/dwm-alwayscenter-20200625-f04cac6.diff create mode 100644 patches/dwm-attachbottom-6.3.diff diff --git a/config.def.h b/config.def.h index 6e2060d..5d98b45 100644 --- a/config.def.h +++ b/config.def.h @@ -6,8 +6,8 @@ static const unsigned int gappx = 5; /* gaps between windows */ static const unsigned int snap = 32; /* snap pixel */ static const int showbar = 1; /* 0 means no bar */ static const int topbar = 1; /* 0 means bottom bar */ -static const char *fonts[] = { "monospace:size=10" }; -static const char dmenufont[] = "monospace:size=10"; +static const char *fonts[] = { "FiraMono Nerd Font:size=10" }; +static const char dmenufont[] = "FirMono Nerd Font:size=10"; static const char col_gray1[] = "#222222"; static const char col_gray2[] = "#444444"; static const char col_gray3[] = "#bbbbbb"; diff --git a/config.h b/config.h index 6e2060d..5d98b45 100644 --- a/config.h +++ b/config.h @@ -6,8 +6,8 @@ static const unsigned int gappx = 5; /* gaps between windows */ static const unsigned int snap = 32; /* snap pixel */ static const int showbar = 1; /* 0 means no bar */ static const int topbar = 1; /* 0 means bottom bar */ -static const char *fonts[] = { "monospace:size=10" }; -static const char dmenufont[] = "monospace:size=10"; +static const char *fonts[] = { "FiraMono Nerd Font:size=10" }; +static const char dmenufont[] = "FirMono Nerd Font:size=10"; static const char col_gray1[] = "#222222"; static const char col_gray2[] = "#444444"; static const char col_gray3[] = "#bbbbbb"; diff --git a/dwm b/dwm index 57e81aa70554e116c45ea451b53c075177812162..eb16e7b4fedbe921bae434ddac9e789aa4fb4554 100755 GIT binary patch delta 3572 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 delta 3737 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 = c->mon->mx + (c->mon->mw - WIDTH(c)) / 2; + c->y = c->mon->my + (c->mon->mh - HEIGHT(c)) / 2; XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask); grabbuttons(c, 0); if (!c->isfloating) diff --git a/dwm.c.orig b/dwm.c.orig index 1443802..6e7382b 100644 --- a/dwm.c.orig +++ b/dwm.c.orig @@ -118,6 +118,7 @@ struct Monitor { int by; /* bar geometry */ int mx, my, mw, mh; /* screen size */ int wx, wy, ww, wh; /* window area */ + int gappx; /* gaps between windows */ unsigned int seltags; unsigned int sellt; unsigned int tagset[2]; @@ -199,6 +200,7 @@ static void sendmon(Client *c, Monitor *m); static void setclientstate(Client *c, long state); static void setfocus(Client *c); static void setfullscreen(Client *c, int fullscreen); +static void setgaps(const Arg *arg); static void setlayout(const Arg *arg); static void setmfact(const Arg *arg); static void setup(void); @@ -640,6 +642,7 @@ createmon(void) m->nmaster = nmaster; m->showbar = showbar; m->topbar = topbar; + m->gappx = gappx; m->lt[0] = &layouts[0]; m->lt[1] = &layouts[1 % LENGTH(layouts)]; strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol); @@ -1506,6 +1509,16 @@ setfullscreen(Client *c, int fullscreen) } } +void +setgaps(const Arg *arg) +{ + if ((arg->i == 0) || (selmon->gappx + arg->i < 0)) + selmon->gappx = 0; + else + selmon->gappx += arg->i; + arrange(selmon); +} + void setlayout(const Arg *arg) { @@ -1696,18 +1709,18 @@ tile(Monitor *m) if (n > m->nmaster) mw = m->nmaster ? m->ww * m->mfact : 0; else - mw = m->ww; - for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) + mw = m->ww - m->gappx; + for (i = 0, my = ty = m->gappx, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) if (i < m->nmaster) { - h = (m->wh - my) / (MIN(n, m->nmaster) - i); - resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0); - if (my + HEIGHT(c) < m->wh) - my += HEIGHT(c); + h = (m->wh - my) / (MIN(n, m->nmaster) - i) - m->gappx; + resize(c, m->wx + m->gappx, m->wy + my, mw - (2*c->bw) - m->gappx, h - (2*c->bw), 0); + if (my + HEIGHT(c) + m->gappx < m->wh) + my += HEIGHT(c) + m->gappx; } else { - h = (m->wh - ty) / (n - i); - resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0); - if (ty + HEIGHT(c) < m->wh) - ty += HEIGHT(c); + h = (m->wh - ty) / (n - i) - m->gappx; + resize(c, m->wx + mw + m->gappx, m->wy + ty, m->ww - mw - (2*c->bw) - 2*m->gappx, h - (2*c->bw), 0); + if (ty + HEIGHT(c) + m->gappx < m->wh) + ty += HEIGHT(c) + m->gappx; } } diff --git a/dwm.o b/dwm.o index 997b552ad6f4c48cd4f2e9402d3865bb2865df47..405dd7ef7cd7b3d18ce0e5f1c4772cec6a5e6725 100644 GIT binary patch delta 1869 zcmZ`(VN4rk82;YtNC0t;i91@^#@yzp5*gEkwm^?+QjZA+3|nx7NtaD68VUsdEQUc0 ziOq!s^Nu+8OZ`XKg5Aw!2&J8540JO!8si^UT8y?!aWsoiho*iXcW2H^_9gfA?s=d0 zdEY+Yy%$+9U05`YmccIp>$A4E>!q&-fshbK2yscn4fNh6jqRX6BLzfqm%+C#(?}70 zv_?MN$eP@xF8^>YeU#kg)&+`)QZ3CSU+*BNh{=6G^xvg~0!m0QxN^P0e?PIgjPKb} za1~qaCFNI=*=)TOWJMeNzIPMdzh*TN+RI1(Wo8qbtN59{b?5P0lrS9bf9!rn^~I9RvJxl-hS#^hXn;H<|E|BAIFU2AhhD1>f^9i?ytTMTyOy^ zYV9zA-rDbB3~kN>P>b!(9`5E37;&}%k;{cffF3+s_Y$1J$-0wVD1=YA_H*z2h9{ln z)Nbr>70H9HUT&w`+v{ocb@@tPKht}<)a~o)lQ&-}*(R5Yk%B@RG{pXDc~AgBT=g7+ zd-7AK_UFS<+5Y~k9L0vZ4nYLRyDH2U2lJnh!L6OzV-?k}& z>}}dcuS=?alyT~F?EjC}Q2*H~R&kawPp`kT$~tJ^Ur_n4;SE}=NtZRJ%kpBHb~VO0 z@Hy_A;mtuE^RkZl6E@HA@cR}sg+nv^xphNDq-?f!t8Qxl>#72iT-8S-UTnZ;RDQbw z*K~#z9Qk0O`Lcndc{q)(AaDLgjWVzPq?hK^8ukQv$TE)S=^CXRU?cJ;xU2Ke)zJ}A;y~E3g?__cyB3pmFpLZ^z&H;Ix@f9}9 z(7r0A2K=Hr9}Navt8m(Y+tjx>Wx&rXXC;5K^d>+jrten4muQU&a0$J1594@L$P24h zj9@xi1&wH37GM;;bnn3NWq~VO#Cyw5jcV_3&Zg;DwU*g7_BP;SNt<}t~j9y$5#Z}NpeNV%Pc8MOBjgn{TFj~ B3OoP+ delta 1693 zcmZ`(e{2&~9KY{v;5w#`p=X=*XbE)wq?|b(? zpU?O6eed0ScQRTK8!b4t7LElUe4w^M3e+*AT`FbT8Oi@knhwl!+x^$mTatL8c4qyp z-xQ@)3M`>Si$m!30mF1HlLGr)=DGCZw4yiygB08Dce~P;@H>HLw`A~F;pwtdUnz>z z8|hlsD)}>QyQjC^#GRI!``#NNurSGLT?X&aV=&**TUbC=|w4U;!!hvdK6lpak}gLwMwFBK&nK4Gmbo}D3+CM8Q# zxY>F?^r6f8B)lXKSw9E%wkRH`6YiM3swfSChBYPX+OWBF1y0nRg*f)u*066)<6-+c zykcu$@BALi#WrY^Ul*SM2;t@WYUsy>`e#^E1Y7K@A&7_U4=ve9W&=3he2*Nl?`2J| zxjWpQ9_OAHzyNA-^rxP{$XI} z4eTK_hdI7l{Ta}+mHRsSih9sV*bg-}-}$V{UNo?O8JsUu);wll!v^-&|5W5K8|I)I zR}FFCR^Lx!^AN{}v~#M@@C@;yEs9@|Dlv_vGn^$|U;CmV%eZ3&*iHQJ#w2leiqz-7 zYd?U?BOL#6y-NPOGvDNf%sI42IJiPJa7~THvOh9k#Kr{diEbrVEgIdxW-RjG(ZfJM z`QX)(84%Ck2@xa=l30n^ zgvcgFaZ}R9Mt0!dqzyj8U{W+icII*%xR9)YQZ!!`VJ&(|T!%ptCCsYPoD#_i_NGKO X_5*&JvOy7M3FJcalnCe0J5}`$B3}T% diff --git a/patches/dwm-alwayscenter-20200625-f04cac6.diff b/patches/dwm-alwayscenter-20200625-f04cac6.diff new file mode 100644 index 0000000..03ea9ef --- /dev/null +++ b/patches/dwm-alwayscenter-20200625-f04cac6.diff @@ -0,0 +1,12 @@ +diff -up dwm/dwm.c dwmmod/dwm.c +--- dwm/dwm.c 2020-06-25 00:21:30.383692180 -0300 ++++ dwmmod/dwm.c 2020-06-25 00:20:35.643692330 -0300 +@@ -1057,6 +1057,8 @@ manage(Window w, XWindowAttributes *wa) + updatewindowtype(c); + updatesizehints(c); + updatewmhints(c); ++ c->x = c->mon->mx + (c->mon->mw - WIDTH(c)) / 2; ++ c->y = c->mon->my + (c->mon->mh - HEIGHT(c)) / 2; + XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask); + grabbuttons(c, 0); + if (!c->isfloating) diff --git a/patches/dwm-attachbottom-6.3.diff b/patches/dwm-attachbottom-6.3.diff new file mode 100644 index 0000000..c3955f9 --- /dev/null +++ b/patches/dwm-attachbottom-6.3.diff @@ -0,0 +1,54 @@ +diff -up dwm-6.3/dwm.c dwm-6.3-attachbottom/dwm.c +--- dwm-6.3/dwm.c 2022-01-07 12:42:18.000000000 +0100 ++++ dwm-6.3-attachbottom/dwm.c 2022-08-17 22:14:41.813809073 +0200 +@@ -147,6 +147,7 @@ static int applysizehints(Client *c, int + static void arrange(Monitor *m); + static void arrangemon(Monitor *m); + static void attach(Client *c); ++static void attachbottom(Client *c); + static void attachstack(Client *c); + static void buttonpress(XEvent *e); + static void checkotherwm(void); +@@ -408,6 +409,15 @@ attach(Client *c) + } + + void ++attachbottom(Client *c) ++{ ++ Client **tc; ++ c->next = NULL; ++ for (tc = &c->mon->clients; *tc; tc = &(*tc)->next); ++ *tc = c; ++} ++ ++void + attachstack(Client *c) + { + c->snext = c->mon->stack; +@@ -1066,7 +1076,7 @@ manage(Window w, XWindowAttributes *wa) + c->isfloating = c->oldstate = trans != None || c->isfixed; + if (c->isfloating) + XRaiseWindow(dpy, c->win); +- attach(c); ++ attachbottom(c); + attachstack(c); + XChangeProperty(dpy, root, netatom[NetClientList], XA_WINDOW, 32, PropModeAppend, + (unsigned char *) &(c->win), 1); +@@ -1421,7 +1431,7 @@ sendmon(Client *c, Monitor *m) + detachstack(c); + c->mon = m; + c->tags = m->tagset[m->seltags]; /* assign tags of target monitor */ +- attach(c); ++ attachbottom(c); + attachstack(c); + focus(NULL); + arrange(NULL); +@@ -1903,7 +1913,7 @@ updategeom(void) + m->clients = c->next; + detachstack(c); + c->mon = mons; +- attach(c); ++ attachbottom(c); + attachstack(c); + } + if (m == selmon)