Compare commits
	
		
			6 Commits
		
	
	
		
			cb3f58ad06
			...
			fibonacci
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | e6afb29fa7 | ||
|  | f09418bbb6 | ||
|  | ed3ab6b4fc | ||
|  | f087d20e6e | ||
|  | a8e9513783 | ||
|  | c82db690cc | 
| @@ -36,11 +36,14 @@ static const float mfact     = 0.55; /* factor of master area size [0.05..0.95] | ||||
| static const int nmaster     = 1;    /* number of clients in master area */ | ||||
| static const int resizehints = 1;    /* 1 means respect size hints in tiled resizals */ | ||||
|  | ||||
| #include "fibonacci.c" | ||||
| static const Layout layouts[] = { | ||||
| 	/* symbol     arrange function */ | ||||
| 	{ "[]=",      tile },    /* first entry is default */ | ||||
| 	{ "><>",      NULL },    /* no layout function means floating behavior */ | ||||
| 	{ "[M]",      monocle }, | ||||
|     { "[@]",      spiral }, | ||||
|     { "[\\]",      dwindle }, | ||||
| }; | ||||
|  | ||||
| /* key definitions */ | ||||
| @@ -76,6 +79,8 @@ static Key keys[] = { | ||||
| 	{ MODKEY,                       XK_t,      setlayout,      {.v = &layouts[0]} }, | ||||
| 	{ MODKEY,                       XK_f,      setlayout,      {.v = &layouts[1]} }, | ||||
| 	{ MODKEY,                       XK_m,      setlayout,      {.v = &layouts[2]} }, | ||||
| 	{ MODKEY,                       XK_r,      setlayout,      {.v = &layouts[3]} }, | ||||
| 	{ MODKEY|ShiftMask,             XK_r,      setlayout,      {.v = &layouts[4]} }, | ||||
| 	{ MODKEY,                       XK_space,  setlayout,      {0} }, | ||||
| 	{ MODKEY|ShiftMask,             XK_space,  togglefloating, {0} }, | ||||
| 	{ MODKEY,                       XK_0,      view,           {.ui = ~0 } }, | ||||
|   | ||||
| @@ -25,7 +25,7 @@ INCS = -I${X11INC} -I${FREETYPEINC} | ||||
| LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS} | ||||
|  | ||||
| # flags | ||||
| CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS} | ||||
| CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=200809L -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS} | ||||
| #CFLAGS   = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS} | ||||
| CFLAGS   = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os ${INCS} ${CPPFLAGS} | ||||
| LDFLAGS  = ${LIBS} | ||||
|   | ||||
							
								
								
									
										17
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								dwm.c
									
									
									
									
									
								
							| @@ -169,6 +169,7 @@ static void focus(Client *c); | ||||
| static void focusin(XEvent *e); | ||||
| static void focusmon(const Arg *arg); | ||||
| static void focusstack(const Arg *arg); | ||||
| static Atom getatomprop(Client *c, Atom prop); | ||||
| static int getrootptr(int *x, int *y); | ||||
| static long getstate(Window w); | ||||
| static int gettextprop(Window w, Atom atom, char *text, unsigned int size); | ||||
| @@ -695,7 +696,7 @@ dirtomon(int dir) | ||||
| void | ||||
| drawbar(Monitor *m) | ||||
| { | ||||
| 	int x, w, sw = 0; | ||||
| 	int x, w, tw = 0; | ||||
| 	int boxs = drw->fonts->h / 9; | ||||
| 	int boxw = drw->fonts->h / 6 + 2; | ||||
| 	unsigned int i, occ = 0, urg = 0; | ||||
| @@ -704,8 +705,8 @@ drawbar(Monitor *m) | ||||
| 	/* draw status first so it can be overdrawn by tags later */ | ||||
| 	if (m == selmon) { /* status is only drawn on selected monitor */ | ||||
| 		drw_setscheme(drw, scheme[SchemeNorm]); | ||||
| 		sw = TEXTW(stext) - lrpad + 2; /* 2px right padding */ | ||||
| 		drw_text(drw, m->ww - sw, 0, sw, bh, 0, stext, 0); | ||||
| 		tw = TEXTW(stext) - lrpad + 2; /* 2px right padding */ | ||||
| 		drw_text(drw, m->ww - tw, 0, tw, bh, 0, stext, 0); | ||||
| 	} | ||||
|  | ||||
| 	for (c = m->clients; c; c = c->next) { | ||||
| @@ -728,7 +729,7 @@ drawbar(Monitor *m) | ||||
| 	drw_setscheme(drw, scheme[SchemeNorm]); | ||||
| 	x = drw_text(drw, x, 0, w, bh, lrpad / 2, m->ltsymbol, 0); | ||||
|  | ||||
| 	if ((w = m->ww - sw - x) > bh) { | ||||
| 	if ((w = m->ww - tw - x) > bh) { | ||||
| 		if (m->sel) { | ||||
| 			drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]); | ||||
| 			drw_text(drw, x, 0, w, bh, lrpad / 2, m->sel->name, 0); | ||||
| @@ -1520,7 +1521,7 @@ setmfact(const Arg *arg) | ||||
| 	if (!arg || !selmon->lt[selmon->sellt]->arrange) | ||||
| 		return; | ||||
| 	f = arg->f < 1.0 ? arg->f + selmon->mfact : arg->f - 1.0; | ||||
| 	if (f < 0.1 || f > 0.9) | ||||
| 	if (f < 0.05 || f > 0.95) | ||||
| 		return; | ||||
| 	selmon->mfact = f; | ||||
| 	arrange(selmon); | ||||
| @@ -1688,11 +1689,13 @@ tile(Monitor *m) | ||||
| 		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); | ||||
| 			my += HEIGHT(c); | ||||
| 			if (my + HEIGHT(c) < m->wh) | ||||
| 				my += HEIGHT(c); | ||||
| 		} 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); | ||||
| 			if (ty + HEIGHT(c) < m->wh) | ||||
| 				ty += HEIGHT(c); | ||||
| 		} | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										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); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user