Merge branch 'fibonacci' into allpatch
# Conflicts: # config.def.h
This commit is contained in:
		
						commit
						7446126690
					
				| @ -45,12 +45,15 @@ static const int nmaster     = 1;    /* number of clients in master area */ | |||||||
| static const int resizehints = 1;    /* 1 means respect size hints in tiled resizals */ | static const int resizehints = 1;    /* 1 means respect size hints in tiled resizals */ | ||||||
| static const int attachbelow = 1;    /* 1 means attach after the currently active window */ | static const int attachbelow = 1;    /* 1 means attach after the currently active window */ | ||||||
| 
 | 
 | ||||||
|  | #include "fibonacci.c" | ||||||
| static const Layout layouts[] = { | static const Layout layouts[] = { | ||||||
| 	/* symbol     arrange function */ | 	/* symbol     arrange function */ | ||||||
| 	{ "[]=",      tile },    /* first entry is default */ | 	{ "[]=",      tile },    /* first entry is default */ | ||||||
| 	{ "><>",      NULL },    /* no layout function means floating behavior */ | 	{ "><>",      NULL },    /* no layout function means floating behavior */ | ||||||
| 	{ "[M]",      monocle }, | 	{ "[M]",      monocle }, | ||||||
| 	{ "[D]",      deck }, | 	{ "[D]",      deck }, | ||||||
|  |  	{ "[@]",      spiral }, | ||||||
|  |  	{ "[\\]",      dwindle }, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| /* key definitions */ | /* key definitions */ | ||||||
| @ -87,6 +90,8 @@ static Key keys[] = { | |||||||
| 	{ MODKEY,                       XK_f,      setlayout,      {.v = &layouts[1]} }, | 	{ MODKEY,                       XK_f,      setlayout,      {.v = &layouts[1]} }, | ||||||
| 	{ MODKEY,                       XK_m,      setlayout,      {.v = &layouts[2]} }, | 	{ MODKEY,                       XK_m,      setlayout,      {.v = &layouts[2]} }, | ||||||
| 	{ MODKEY,                       XK_c,      setlayout,      {.v = &layouts[3]} }, | 	{ MODKEY,                       XK_c,      setlayout,      {.v = &layouts[3]} }, | ||||||
|  | 	{ MODKEY,                       XK_r,      setlayout,      {.v = &layouts[4]} }, | ||||||
|  | 	{ MODKEY|ShiftMask,             XK_r,      setlayout,      {.v = &layouts[5]} }, | ||||||
| 	{ MODKEY,                       XK_space,  setlayout,      {0} }, | 	{ MODKEY,                       XK_space,  setlayout,      {0} }, | ||||||
| 	{ MODKEY|ShiftMask,             XK_space,  togglefloating, {0} }, | 	{ MODKEY|ShiftMask,             XK_space,  togglefloating, {0} }, | ||||||
| 	{ MODKEY,                       XK_0,      view,           {.ui = ~0 } }, | 	{ MODKEY,                       XK_0,      view,           {.ui = ~0 } }, | ||||||
|  | |||||||
							
								
								
									
										66
									
								
								fibonacci.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								fibonacci.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,66 @@ | |||||||
|  | void | ||||||
|  | fibonacci(Monitor *mon, int s) { | ||||||
|  | 	unsigned int i, n, nx, ny, nw, nh; | ||||||
|  | 	Client *c; | ||||||
|  | 
 | ||||||
|  | 	for(n = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next), n++); | ||||||
|  | 	if(n == 0) | ||||||
|  | 		return; | ||||||
|  | 	 | ||||||
|  | 	nx = mon->wx; | ||||||
|  | 	ny = 0; | ||||||
|  | 	nw = mon->ww; | ||||||
|  | 	nh = mon->wh; | ||||||
|  | 	 | ||||||
|  | 	for(i = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next)) { | ||||||
|  | 		if((i % 2 && nh / 2 > 2 * c->bw) | ||||||
|  | 		   || (!(i % 2) && nw / 2 > 2 * c->bw)) { | ||||||
|  | 			if(i < n - 1) { | ||||||
|  | 				if(i % 2) | ||||||
|  | 					nh /= 2; | ||||||
|  | 				else | ||||||
|  | 					nw /= 2; | ||||||
|  | 				if((i % 4) == 2 && !s) | ||||||
|  | 					nx += nw; | ||||||
|  | 				else if((i % 4) == 3 && !s) | ||||||
|  | 					ny += nh; | ||||||
|  | 			} | ||||||
|  | 			if((i % 4) == 0) { | ||||||
|  | 				if(s) | ||||||
|  | 					ny += nh; | ||||||
|  | 				else | ||||||
|  | 					ny -= nh; | ||||||
|  | 			} | ||||||
|  | 			else if((i % 4) == 1) | ||||||
|  | 				nx += nw; | ||||||
|  | 			else if((i % 4) == 2) | ||||||
|  | 				ny += nh; | ||||||
|  | 			else if((i % 4) == 3) { | ||||||
|  | 				if(s) | ||||||
|  | 					nx += nw; | ||||||
|  | 				else | ||||||
|  | 					nx -= nw; | ||||||
|  | 			} | ||||||
|  | 			if(i == 0) | ||||||
|  | 			{ | ||||||
|  | 				if(n != 1) | ||||||
|  | 					nw = mon->ww * mon->mfact; | ||||||
|  | 				ny = mon->wy; | ||||||
|  | 			} | ||||||
|  | 			else if(i == 1) | ||||||
|  | 				nw = mon->ww - nw; | ||||||
|  | 			i++; | ||||||
|  | 		} | ||||||
|  | 		resize(c, nx, ny, nw - 2 * c->bw, nh - 2 * c->bw, False); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void | ||||||
|  | dwindle(Monitor *mon) { | ||||||
|  | 	fibonacci(mon, 1); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void | ||||||
|  | spiral(Monitor *mon) { | ||||||
|  | 	fibonacci(mon, 0); | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user