[wiki] [sites] added dwm patch aspectresize || Dhaval Patel

From: <git_AT_suckless.org>
Date: Tue, 23 Jun 2020 09:17:18 +0200

commit 58abc0213b0e4b9a3e62bbdf83e9cd1288477472
Author: Dhaval Patel <dhavalpatel32768_AT_gmail.com>
Date: Tue Jun 23 12:46:36 2020 +0530

    added dwm patch aspectresize

diff --git a/dwm.suckless.org/patches/aspectresize/dwm-aspectresize-6.2.diff b/dwm.suckless.org/patches/aspectresize/dwm-aspectresize-6.2.diff
new file mode 100644
index 00000000..1a2a673f
--- /dev/null
+++ b/dwm.suckless.org/patches/aspectresize/dwm-aspectresize-6.2.diff
_AT_@ -0,0 +1,56 @@
+diff --git a/config.def.h b/config.def.h
+index 1c0b587..2fcc30d 100644
+--- a/config.def.h
++++ b/config.def.h
+_AT_@ -72,6 +72,8 @@ static Key keys[] = {
+ { MODKEY, XK_l, setmfact, {.f = +0.05} },
+ { MODKEY, XK_Return, zoom, {0} },
+ { MODKEY, XK_Tab, view, {0} },
++ { MODKEY|ShiftMask, XK_j, aspectresize, {.i = +24} },
++ { MODKEY|ShiftMask, XK_k, aspectresize, {.i = -24} },
+ { MODKEY|ShiftMask, XK_c, killclient, {0} },
+ { MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
+ { MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
+diff --git a/dwm.c b/dwm.c
+index 9fd0286..6a02119 100644
+--- a/dwm.c
++++ b/dwm.c
+_AT_@ -146,6 +146,7 @@ static void applyrules(Client *c);
+ static int applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact);
+ static void arrange(Monitor *m);
+ static void arrangemon(Monitor *m);
++static void aspectresize(const Arg *arg);
+ static void attach(Client *c);
+ static void attachstack(Client *c);
+ static void buttonpress(XEvent *e);
+_AT_@ -400,6 +401,30 @@ arrangemon(Monitor *m)
+ m->lt[m->sellt]->arrange(m);
+ }
+
++void
++aspectresize(const Arg *arg) {
++ /* only floating windows can be moved */
++ Client *c;
++ c = selmon->sel;
++ float ratio;
++ int w, h,nw, nh;
++
++ if (!c || !arg)
++ return;
++ if (selmon->lt[selmon->sellt]->arrange && !c->isfloating)
++ return;
++
++ ratio = (float)c->w / (float)c->h;
++ h = arg->i;
++ w = (int)(ratio * h);
++
++ nw = c->w + w;
++ nh = c->h + h;
++
++ XRaiseWindow(dpy, c->win);
++ resize(c, c->x, c->y, nw, nh, True);
++}
++
+ void
+ attach(Client *c)
+ {
diff --git a/dwm.suckless.org/patches/aspectresize/index.md b/dwm.suckless.org/patches/aspectresize/index.md
new file mode 100644
index 00000000..86377c2a
--- /dev/null
+++ b/dwm.suckless.org/patches/aspectresize/index.md
_AT_@ -0,0 +1,54 @@
+aspectresize
+==========
+
+Description
+-----------
+This patch you to resize the window with its aspect ratio remain constant, use
+moveresize patch for manual resize.
+
+Usage
+-----
+1. Put the following `aspectresize()` function somewhere in your `dwm.c`,
+ **after** the line which includes the config.h file:
+
+ void
+ aspectresize(const Arg *arg) {
+ /* only floating windows can be moved */
+ Client *c;
+ c = selmon->sel;
+ float ratio;
+ int w, h,nw, nh;
+
+ if (!c || !arg)
+ return;
+ if (selmon->lt[selmon->sellt]->arrange && !c->isfloating)
+ return;
+
+ ratio = (float)c->w / (float)c->h;
+ h = arg->i;
+ w = (int)(ratio * h);
+
+ nw = c->w + w;
+ nh = c->h + h;
+
+ XRaiseWindow(dpy, c->win);
+ resize(c, c->x, c->y, nw, nh, True);
+ }
+
+
+2. Add a aspectresize() function definition in dwm.c below the line:
+ static void aspectresize(const Arg *arg);
+
+3. You can use Mod+Shift+j to increase size and Mod+Shift+k to decrease the size of client
+ which respects client's aspect ratio:
+
+ { MODKEY|ShiftMask, XK_j, aspectresize, {.i = +24} },
+ { MODKEY|ShiftMask, XK_k, aspectresize, {.i = -24} },
+
+Download
+--------
+* [dwm-aspectresize-6.2.diff](dwm-aspectresize-6.2.diff)
+
+Authors
+-------
+* Dhaval Patel - <dhavalpatel32768_AT_gmail.com>
Received on Tue Jun 23 2020 - 09:17:18 CEST

This archive was generated by hypermail 2.3.0 : Tue Jun 23 2020 - 09:24:45 CEST