apply patch cfacts
This commit is contained in:
		
							parent
							
								
									4fc4de9e21
								
							
						
					
					
						commit
						14f781f3a9
					
				
							
								
								
									
										1
									
								
								README
								
								
								
								
							
							
						
						
									
										1
									
								
								README
								
								
								
								
							|  | @ -59,3 +59,4 @@ Customisations | |||
| * Merged patch: https://dwm.suckless.org/patches/hide_vacant_tags/dwm-hide_vacant_tags-6.2.diff | ||||
| * Merged patch: https://dwm.suckless.org/patches/warp/dwm-warp-git-20160626-7af4d43.diff | ||||
| * Merged patch: https://dwm.suckless.org/patches/dwmc/dwm-dwmc-6.2.diff | ||||
| * Merged patch:https: //dwm.suckless.org/patches/cfacts/dwm-cfacts-6.2.diff | ||||
|  |  | |||
|  | @ -72,6 +72,9 @@ static Key keys[] = { | |||
| 	{ MODKEY,                       XK_d,      incnmaster,     {.i = -1 } }, | ||||
| 	{ MODKEY,                       XK_h,      setmfact,       {.f = -0.05} }, | ||||
| 	{ MODKEY,                       XK_l,      setmfact,       {.f = +0.05} }, | ||||
| 	{ MODKEY|ShiftMask,             XK_h,      setcfact,       {.f = +0.25} }, | ||||
| 	{ MODKEY|ShiftMask,             XK_l,      setcfact,       {.f = -0.25} }, | ||||
| 	{ MODKEY|ShiftMask,             XK_o,      setcfact,       {.f =  0.00} }, | ||||
| 	{ MODKEY,                       XK_Return, zoom,           {0} }, | ||||
| 	{ MODKEY,                       XK_Tab,    view,           {0} }, | ||||
| 	{ MODKEY|ShiftMask,             XK_c,      killclient,     {0} }, | ||||
|  |  | |||
							
								
								
									
										3
									
								
								config.h
								
								
								
								
							
							
						
						
									
										3
									
								
								config.h
								
								
								
								
							|  | @ -76,6 +76,9 @@ static Key keys[] = { | |||
| 	{ MODKEY,                       XK_i,      incnmaster,     {.i = +1 } }, | ||||
| 	{ MODKEY,                       XK_d,      incnmaster,     {.i = -1 } }, | ||||
| 	{ MODKEY,                       XK_h,      setmfact,       {.f = -0.05} }, | ||||
| 	{ MODKEY|ShiftMask,             XK_h,      setcfact,       {.f = +0.25} }, | ||||
| 	{ MODKEY|ShiftMask,             XK_l,      setcfact,       {.f = -0.25} }, | ||||
| 	{ MODKEY|ShiftMask,             XK_o,      setcfact,       {.f =  0.00} }, | ||||
| 	{ MODKEY,                       XK_l,      setmfact,       {.f = +0.05} }, | ||||
| 	{ MODKEY,                       XK_Return, zoom,           {0} }, | ||||
| 	{ MODKEY,                       XK_Tab,    view,           {0} }, | ||||
|  |  | |||
							
								
								
									
										32
									
								
								dwm.c
								
								
								
								
							
							
						
						
									
										32
									
								
								dwm.c
								
								
								
								
							|  | @ -87,6 +87,7 @@ typedef struct Client Client; | |||
| struct Client { | ||||
| 	char name[256]; | ||||
| 	float mina, maxa; | ||||
| 	float cfact; | ||||
| 	int x, y, w, h; | ||||
| 	int oldx, oldy, oldw, oldh; | ||||
| 	int basew, baseh, incw, inch, maxw, maxh, minw, minh; | ||||
|  | @ -206,6 +207,7 @@ static void setclientstate(Client *c, long state); | |||
| static void setfocus(Client *c); | ||||
| static void setfullscreen(Client *c, int fullscreen); | ||||
| static void setlayout(const Arg *arg); | ||||
| static void setcfact(const Arg *arg); | ||||
| static void setmfact(const Arg *arg); | ||||
| static void setup(void); | ||||
| static void seturgent(Client *c, int urg); | ||||
|  | @ -1087,6 +1089,7 @@ manage(Window w, XWindowAttributes *wa) | |||
| 	c->w = c->oldw = wa->width; | ||||
| 	c->h = c->oldh = wa->height; | ||||
| 	c->oldbw = wa->border_width; | ||||
| 	c->cfact = 1.0; | ||||
| 
 | ||||
| 	updatetitle(c); | ||||
| 	if (XGetTransientForHint(dpy, w, &trans) && (t = wintoclient(trans))) { | ||||
|  | @ -1572,6 +1575,23 @@ setlayout(const Arg *arg) | |||
| 		drawbar(selmon); | ||||
| } | ||||
| 
 | ||||
| void setcfact(const Arg *arg) { | ||||
| 	float f; | ||||
| 	Client *c; | ||||
| 
 | ||||
| 	c = selmon->sel; | ||||
| 
 | ||||
| 	if(!arg || !c || !selmon->lt[selmon->sellt]->arrange) | ||||
| 		return; | ||||
| 	f = arg->f + c->cfact; | ||||
| 	if(arg->f == 0.0) | ||||
| 		f = 1.0; | ||||
| 	else if(f < 0.25 || f > 4.0) | ||||
| 		return; | ||||
| 	c->cfact = f; | ||||
| 	arrange(selmon); | ||||
| } | ||||
| 
 | ||||
| /* arg > 1.0 will set mfact absolutely */ | ||||
| void | ||||
| setmfact(const Arg *arg) | ||||
|  | @ -1736,9 +1756,15 @@ void | |||
| tile(Monitor *m) | ||||
| { | ||||
| 	unsigned int i, n, h, mw, my, ty; | ||||
| 	float mfacts = 0, sfacts = 0; | ||||
| 	Client *c; | ||||
| 
 | ||||
| 	for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++); | ||||
| 	for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++) { | ||||
| 		if (n < m->nmaster) | ||||
| 			mfacts += c->cfact; | ||||
| 		else | ||||
| 			sfacts += c->cfact; | ||||
| 	} | ||||
| 	if (n == 0) | ||||
| 		return; | ||||
| 
 | ||||
|  | @ -1748,13 +1774,15 @@ tile(Monitor *m) | |||
| 		mw = m->ww; | ||||
| 	for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) | ||||
| 		if (i < m->nmaster) { | ||||
| 			h = (m->wh - my) / (MIN(n, m->nmaster) - i); | ||||
| 			h = (m->wh - my) * (c->cfact / mfacts); | ||||
| 			resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0); | ||||
| 			my += HEIGHT(c); | ||||
| 			mfacts -= c->cfact; | ||||
| 		} 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); | ||||
| 			ty += HEIGHT(c); | ||||
| 			sfacts -= c->cfact; | ||||
| 		} | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue