removed all defines of geoms, implemented setgeoms() instead, added config.anselm.h to show how I'd like to see that people edit their geoms
This commit is contained in:
		
							parent
							
								
									59107755c8
								
							
						
					
					
						commit
						95eae7b9d2
					
				
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @ -35,7 +35,7 @@ clean: | |||||||
| dist: clean | dist: clean | ||||||
| 	@echo creating dist tarball | 	@echo creating dist tarball | ||||||
| 	@mkdir -p dwm-${VERSION} | 	@mkdir -p dwm-${VERSION} | ||||||
| 	@cp -R LICENSE Makefile README config.def.h config.mk \
 | 	@cp -R LICENSE Makefile README config.*.h config.mk \
 | ||||||
| 		dwm.1 ${SRC} dwm-${VERSION} | 		dwm.1 ${SRC} dwm-${VERSION} | ||||||
| 	@tar -cf dwm-${VERSION}.tar dwm-${VERSION} | 	@tar -cf dwm-${VERSION}.tar dwm-${VERSION} | ||||||
| 	@gzip dwm-${VERSION}.tar | 	@gzip dwm-${VERSION}.tar | ||||||
|  | |||||||
| @ -10,35 +10,6 @@ | |||||||
| #define SELBGCOLOR		"#0066ff" | #define SELBGCOLOR		"#0066ff" | ||||||
| #define SELFGCOLOR		"#ffffff" | #define SELFGCOLOR		"#ffffff" | ||||||
| 
 | 
 | ||||||
| /* bar position */ |  | ||||||
| #define BX 0 |  | ||||||
| #define BY 0 |  | ||||||
| #define BW 1280 |  | ||||||
| 
 |  | ||||||
| /* window area, including floating windows */ |  | ||||||
| #define WX 0 |  | ||||||
| #define WY bh |  | ||||||
| #define WW sw |  | ||||||
| #define WH sh - bh |  | ||||||
| 
 |  | ||||||
| /* master area */ |  | ||||||
| #define MX WX |  | ||||||
| #define MY bh |  | ||||||
| #define MW 1280 |  | ||||||
| #define MH 800 - bh |  | ||||||
| 
 |  | ||||||
| /* tile area, might be on a different screen */ |  | ||||||
| #define TX 1280 |  | ||||||
| #define TY 0 |  | ||||||
| #define TW 1680 |  | ||||||
| #define TH 1050 |  | ||||||
| 
 |  | ||||||
| /* monocle area, might be restricted to a specific screen */ |  | ||||||
| #define MOX MX |  | ||||||
| #define MOY MY |  | ||||||
| #define MOW MW |  | ||||||
| #define MOH MH |  | ||||||
| 
 |  | ||||||
| /* tagging */ | /* tagging */ | ||||||
| const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; | const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; | ||||||
| 
 | 
 | ||||||
| @ -56,24 +27,78 @@ Rule rules[] = { | |||||||
| 
 | 
 | ||||||
| Layout layouts[] = { | Layout layouts[] = { | ||||||
| 	/* symbol		function	isfloating */ | 	/* symbol		function	isfloating */ | ||||||
| 	{ "[]|",		tileh,		False }, /* first entry is default */ | 	{ "[]=",		tilev,		False }, /* first entry is default */ | ||||||
| 	{ "[]=",		tilev,		False }, | 	{ "[]|",		tileh,		False }, | ||||||
| 	{ "><>",		floating,	True }, | 	{ "><>",		floating,	True }, | ||||||
| 	{ "[M]",		monocle,	True }, | 	{ "[M]",		monocle,	True }, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | void | ||||||
|  | setanselmgeoms(void) { | ||||||
|  | 
 | ||||||
|  | 	/* screen dimensions */ | ||||||
|  | 	sx = 0; | ||||||
|  | 	sy = 0; | ||||||
|  | 	sw = DisplayWidth(dpy, screen); | ||||||
|  | 	sh = DisplayHeight(dpy, screen); | ||||||
|  | 
 | ||||||
|  | 	/* bar position */ | ||||||
|  | 	bx = sx; | ||||||
|  | 	by = sy; | ||||||
|  | 	bw = 1280; | ||||||
|  | 	bh = dc.font.height + 2; | ||||||
|  | 
 | ||||||
|  | 	/* window area */ | ||||||
|  | 	wx = sx; | ||||||
|  | 	wy = sy + bh; | ||||||
|  | 	ww = sw; | ||||||
|  | 	wh = sh - bh; | ||||||
|  | 
 | ||||||
|  | 	/* master area */ | ||||||
|  | 	mx = wx; | ||||||
|  | 	my = wy; | ||||||
|  | 	mw = 1280; | ||||||
|  | 	mh = 800; | ||||||
|  | 
 | ||||||
|  | 	/* tile area */ | ||||||
|  | 	tx = 1280; | ||||||
|  | 	ty = 0; | ||||||
|  | 	tw = ww - 1280; | ||||||
|  | 	th = wh; | ||||||
|  | 
 | ||||||
|  | 	/* monocle area */ | ||||||
|  | 	mox = mx; | ||||||
|  | 	moy = my; | ||||||
|  | 	mow = mw; | ||||||
|  | 	moh = mh; | ||||||
|  | 
 | ||||||
|  | 	if(dc.drawable != 0) | ||||||
|  | 		XFreePixmap(dpy, dc.drawable); | ||||||
|  | 	dc.drawable = XCreatePixmap(dpy, root, bw, bh, DefaultDepth(dpy, screen)); | ||||||
|  | 	XMoveResizeWindow(dpy, barwin, bx, by, bw, bh); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void | ||||||
|  | anselmgeoms(const char *arg) { | ||||||
|  | 	setgeoms = setanselmgeoms; | ||||||
|  | 	arrange(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void | ||||||
|  | defgeoms(const char *arg) { | ||||||
|  | 	setgeoms = setdefaultgeoms; | ||||||
|  | 	arrange(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| /* key definitions */ | /* key definitions */ | ||||||
| #define MODKEY			Mod1Mask | #define MODKEY			Mod1Mask | ||||||
| Key keys[] = { | Key keys[] = { | ||||||
| 	/* modifier			key		function	argument */ | 	/* modifier			key		function	argument */ | ||||||
| #if ANSELM_OFFICE |  | ||||||
| 	{ MODKEY,			XK_p,		spawn, | 	{ MODKEY,			XK_p,		spawn, | ||||||
| 		"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"' -x 0 -y 0 -w 1280" }, | 		"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"' -x 0 -y 0 -w 1280" }, | ||||||
| #else |  | ||||||
| 	{ MODKEY,			XK_p,		spawn, |  | ||||||
| 		"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" }, |  | ||||||
| #endif |  | ||||||
| 	{ MODKEY|ShiftMask,		XK_Return,	spawn, "exec uxterm" }, | 	{ MODKEY|ShiftMask,		XK_Return,	spawn, "exec uxterm" }, | ||||||
|  | 	{ MODKEY,			XK_a,		anselmgeoms,	NULL }, | ||||||
|  | 	{ MODKEY,			XK_d,		defgeoms,	NULL }, | ||||||
| 	{ MODKEY,			XK_j,		focusnext,	NULL }, | 	{ MODKEY,			XK_j,		focusnext,	NULL }, | ||||||
| 	{ MODKEY,			XK_k,		focusprev,	NULL }, | 	{ MODKEY,			XK_k,		focusprev,	NULL }, | ||||||
| 	{ MODKEY,			XK_r,		reapply,	NULL }, | 	{ MODKEY,			XK_r,		reapply,	NULL }, | ||||||
|  | |||||||
							
								
								
									
										34
									
								
								config.def.h
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								config.def.h
									
									
									
									
									
								
							| @ -10,35 +10,6 @@ | |||||||
| #define SELBGCOLOR		"#0066ff" | #define SELBGCOLOR		"#0066ff" | ||||||
| #define SELFGCOLOR		"#ffffff" | #define SELFGCOLOR		"#ffffff" | ||||||
| 
 | 
 | ||||||
| /* bar position */ |  | ||||||
| #define BX sx |  | ||||||
| #define BY sy |  | ||||||
| #define BW sw |  | ||||||
| 
 |  | ||||||
| /* window area */ |  | ||||||
| #define WX 0 |  | ||||||
| #define WY bh |  | ||||||
| #define WW sw |  | ||||||
| #define WH sh - bh |  | ||||||
| 
 |  | ||||||
| /* master area */ |  | ||||||
| #define MX WX |  | ||||||
| #define MY WY |  | ||||||
| #define MW ((int)(((float)sw) * 0.6)) |  | ||||||
| #define MH WH |  | ||||||
| 
 |  | ||||||
| /* tile area, might be on a different screen */ |  | ||||||
| #define TX MX + MW |  | ||||||
| #define TY WY |  | ||||||
| #define TW WW - MW |  | ||||||
| #define TH WH |  | ||||||
| 
 |  | ||||||
| /* monocle area, might be restricted to a specific screen */ |  | ||||||
| #define MOX WX |  | ||||||
| #define MOY WY |  | ||||||
| #define MOW WW |  | ||||||
| #define MOH WH |  | ||||||
| 
 |  | ||||||
| /* tagging */ | /* tagging */ | ||||||
| const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; | const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; | ||||||
| 
 | 
 | ||||||
| @ -66,13 +37,8 @@ Layout layouts[] = { | |||||||
| #define MODKEY			Mod1Mask | #define MODKEY			Mod1Mask | ||||||
| Key keys[] = { | Key keys[] = { | ||||||
| 	/* modifier			key		function	argument */ | 	/* modifier			key		function	argument */ | ||||||
| #if ANSELM_OFFICE |  | ||||||
| 	{ MODKEY,			XK_p,		spawn, |  | ||||||
| 		"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"' -x 0 -y 0 -w 1280" }, |  | ||||||
| #else |  | ||||||
| 	{ MODKEY,			XK_p,		spawn, | 	{ MODKEY,			XK_p,		spawn, | ||||||
| 		"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" }, | 		"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" }, | ||||||
| #endif |  | ||||||
| 	{ MODKEY|ShiftMask,		XK_Return,	spawn, "exec uxterm" }, | 	{ MODKEY|ShiftMask,		XK_Return,	spawn, "exec uxterm" }, | ||||||
| 	{ MODKEY,			XK_j,		focusnext,	NULL }, | 	{ MODKEY,			XK_j,		focusnext,	NULL }, | ||||||
| 	{ MODKEY,			XK_k,		focusprev,	NULL }, | 	{ MODKEY,			XK_k,		focusprev,	NULL }, | ||||||
|  | |||||||
							
								
								
									
										78
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								dwm.c
									
									
									
									
									
								
							| @ -160,6 +160,7 @@ void restack(void); | |||||||
| void run(void); | void run(void); | ||||||
| void scan(void); | void scan(void); | ||||||
| void setclientstate(Client *c, long state); | void setclientstate(Client *c, long state); | ||||||
|  | void setdefaultgeoms(void); | ||||||
| void setlayout(const char *arg); | void setlayout(const char *arg); | ||||||
| void setup(void); | void setup(void); | ||||||
| void spawn(const char *arg); | void spawn(const char *arg); | ||||||
| @ -220,6 +221,7 @@ Display *dpy; | |||||||
| DC dc = {0}; | DC dc = {0}; | ||||||
| Layout *lt = NULL; | Layout *lt = NULL; | ||||||
| Window root, barwin; | Window root, barwin; | ||||||
|  | void (*setgeoms)(void) = setdefaultgeoms; | ||||||
| 
 | 
 | ||||||
| /* configuration, allows nested code to access above variables */ | /* configuration, allows nested code to access above variables */ | ||||||
| #include "config.h" | #include "config.h" | ||||||
| @ -404,11 +406,7 @@ configurenotify(XEvent *e) { | |||||||
| 	XConfigureEvent *ev = &e->xconfigure; | 	XConfigureEvent *ev = &e->xconfigure; | ||||||
| 
 | 
 | ||||||
| 	if(ev->window == root && (ev->width != sw || ev->height != sh)) { | 	if(ev->window == root && (ev->width != sw || ev->height != sh)) { | ||||||
| 		sw = ev->width; | 		setgeoms(); | ||||||
| 		sh = ev->height; |  | ||||||
| 		XFreePixmap(dpy, dc.drawable); |  | ||||||
| 		dc.drawable = XCreatePixmap(dpy, root, bw, bh, DefaultDepth(dpy, screen)); |  | ||||||
| 		XMoveResizeWindow(dpy, barwin, bx, by, bw, bh); |  | ||||||
| 		arrange(); | 		arrange(); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| @ -1378,6 +1376,51 @@ setclientstate(Client *c, long state) { | |||||||
| 			PropModeReplace, (unsigned char *)data, 2); | 			PropModeReplace, (unsigned char *)data, 2); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void | ||||||
|  | setdefaultgeoms(void) { | ||||||
|  | 
 | ||||||
|  | 	/* screen dimensions */ | ||||||
|  | 	sx = 0; | ||||||
|  | 	sy = 0; | ||||||
|  | 	sw = DisplayWidth(dpy, screen); | ||||||
|  | 	sh = DisplayHeight(dpy, screen); | ||||||
|  | 
 | ||||||
|  | 	/* bar position */ | ||||||
|  | 	bx = sx; | ||||||
|  | 	by = sy; | ||||||
|  | 	bw = sw; | ||||||
|  | 	bh = dc.font.height + 2; | ||||||
|  | 
 | ||||||
|  | 	/* window area */ | ||||||
|  | 	wx = sx; | ||||||
|  | 	wy = sy + bh; | ||||||
|  | 	ww = sw; | ||||||
|  | 	wh = sh - bh; | ||||||
|  | 
 | ||||||
|  | 	/* master area */ | ||||||
|  | 	mx = wx; | ||||||
|  | 	my = wy; | ||||||
|  | 	mw = ((float)sw) * 0.55; | ||||||
|  | 	mh = wh; | ||||||
|  | 
 | ||||||
|  | 	/* tile area */ | ||||||
|  | 	tx = wx; | ||||||
|  | 	ty = wy; | ||||||
|  | 	tw = ww - mw; | ||||||
|  | 	th = wh; | ||||||
|  | 
 | ||||||
|  | 	/* monocle area */ | ||||||
|  | 	mox = wx; | ||||||
|  | 	moy = wy; | ||||||
|  | 	mow = ww; | ||||||
|  | 	moh = wh; | ||||||
|  | 
 | ||||||
|  | 	if(dc.drawable != 0) | ||||||
|  | 		XFreePixmap(dpy, dc.drawable); | ||||||
|  | 	dc.drawable = XCreatePixmap(dpy, root, bw, bh, DefaultDepth(dpy, screen)); | ||||||
|  | 	XMoveResizeWindow(dpy, barwin, bx, by, bw, bh); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void | void | ||||||
| setlayout(const char *arg) { | setlayout(const char *arg) { | ||||||
| 	static Layout *revert = 0; | 	static Layout *revert = 0; | ||||||
| @ -1410,10 +1453,10 @@ setup(void) { | |||||||
| 	/* init screen */ | 	/* init screen */ | ||||||
| 	screen = DefaultScreen(dpy); | 	screen = DefaultScreen(dpy); | ||||||
| 	root = RootWindow(dpy, screen); | 	root = RootWindow(dpy, screen); | ||||||
| 	sx = 0; | 	initfont(FONT); | ||||||
| 	sy = 0; | 
 | ||||||
| 	sw = DisplayWidth(dpy, screen); | 	/* apply default geometries */ | ||||||
| 	sh = DisplayHeight(dpy, screen); | 	setgeoms(); | ||||||
| 
 | 
 | ||||||
| 	/* init atoms */ | 	/* init atoms */ | ||||||
| 	wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); | 	wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); | ||||||
| @ -1436,7 +1479,7 @@ setup(void) { | |||||||
| 	dc.sel[ColBG] = getcolor(SELBGCOLOR); | 	dc.sel[ColBG] = getcolor(SELBGCOLOR); | ||||||
| 	dc.sel[ColFG] = getcolor(SELFGCOLOR); | 	dc.sel[ColFG] = getcolor(SELFGCOLOR); | ||||||
| 	initfont(FONT); | 	initfont(FONT); | ||||||
| 	dc.h = bh = dc.font.height + 2; | 	dc.h = bh; | ||||||
| 	dc.drawable = XCreatePixmap(dpy, root, DisplayWidth(dpy, screen), bh, DefaultDepth(dpy, screen)); | 	dc.drawable = XCreatePixmap(dpy, root, DisplayWidth(dpy, screen), bh, DefaultDepth(dpy, screen)); | ||||||
| 	dc.gc = XCreateGC(dpy, root, 0, 0); | 	dc.gc = XCreateGC(dpy, root, 0, 0); | ||||||
| 	XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); | 	XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); | ||||||
| @ -1451,21 +1494,6 @@ setup(void) { | |||||||
| 	/* init layouts */ | 	/* init layouts */ | ||||||
| 	lt = &layouts[0]; | 	lt = &layouts[0]; | ||||||
| 
 | 
 | ||||||
| 	/* bar position */ |  | ||||||
| 	bx = BX; by = BY; bw = BW; |  | ||||||
| 
 |  | ||||||
| 	/* window area */ |  | ||||||
| 	wx = WX; wy = WY; ww = WW; wh = WH; |  | ||||||
| 
 |  | ||||||
| 	/* master area */ |  | ||||||
| 	mx = MX; my = MY; mw = MW; mh = MH; |  | ||||||
| 
 |  | ||||||
| 	/* tile area */ |  | ||||||
| 	tx = TX; ty = TY; tw = TW; th = TH; |  | ||||||
| 
 |  | ||||||
| 	/* monocle area */ |  | ||||||
| 	mox = MOX; moy = MOY; mow = MOW; moh = MOH; |  | ||||||
| 
 |  | ||||||
| 	/* init bar */ | 	/* init bar */ | ||||||
| 	for(blw = i = 0; i < LENGTH(layouts); i++) { | 	for(blw = i = 0; i < LENGTH(layouts); i++) { | ||||||
| 		i = textw(layouts[i].symbol); | 		i = textw(layouts[i].symbol); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Anselm R Garbe
						Anselm R Garbe