index.md (1441B)
1 aspectresize 2 ============ 3 4 Description 5 ----------- 6 This patch you to resize the window with its aspect ratio remain constant, use 7 moveresize patch for manual resize. 8 9 Usage 10 ----- 11 1. Put the following `aspectresize()` function somewhere in your `dwm.c`, 12 **after** the line which includes the config.h file: 13 14 void 15 aspectresize(const Arg *arg) { 16 /* only floating windows can be moved */ 17 Client *c; 18 c = selmon->sel; 19 float ratio; 20 int w, h,nw, nh; 21 22 if (!c || !arg) 23 return; 24 if (selmon->lt[selmon->sellt]->arrange && !c->isfloating) 25 return; 26 27 ratio = (float)c->w / (float)c->h; 28 h = arg->i; 29 w = (int)(ratio * h); 30 31 nw = c->w + w; 32 nh = c->h + h; 33 34 XRaiseWindow(dpy, c->win); 35 resize(c, c->x, c->y, nw, nh, True); 36 } 37 38 39 2. Add a aspectresize() function definition in dwm.c below the line: 40 static void aspectresize(const Arg *arg); 41 42 3. You can use Mod+Shift+j to increase size and Mod+Shift+k to decrease the size of client 43 which respects client's aspect ratio: 44 45 { MODKEY|ShiftMask, XK_j, aspectresize, {.i = +24} }, 46 { MODKEY|ShiftMask, XK_k, aspectresize, {.i = -24} }, 47 48 Download 49 -------- 50 * [dwm-aspectresize-6.2.diff](dwm-aspectresize-6.2.diff) 51 52 Authors 53 ------- 54 * Dhaval Patel - <dhavalpatel32768@gmail.com>