made bar togglalble
This commit is contained in:
		
							parent
							
								
									d96307cbe4
								
							
						
					
					
						commit
						2aef8b9b4c
					
				| @ -3,6 +3,7 @@ | ||||
|  * See LICENSE file for license details. */ | ||||
| 
 | ||||
| /* appearance */ | ||||
| #define BARPOS			BarTop /* BarBot, BarOff */ | ||||
| #define BORDERPX		1 | ||||
| #define FONT			"-*-pixelcarnage monospace-*-r-*-*-14-*-*-*-*-*-*-*" | ||||
| #define NORMBORDERCOLOR		"#333" | ||||
| @ -11,7 +12,6 @@ | ||||
| #define SELBORDERCOLOR		"#8c8" | ||||
| #define SELBGCOLOR		"#555" | ||||
| #define SELFGCOLOR		"#fff" | ||||
| #define TOPBAR			True		/* False */ | ||||
| 
 | ||||
| /* tagging */ | ||||
| #define TAGS \ | ||||
| @ -47,6 +47,7 @@ static Key key[] = { \ | ||||
| 	{ MODKEY|ShiftMask,		XK_Return,	spawn, \ | ||||
| 		"exec urxvtcd -tr -bg '#222' -fg '#eee' -cr '#eee' +sb -fn '"FONT"'" }, \ | ||||
| 	{ MODKEY,			XK_space,	setlayout,	NULL }, \ | ||||
| 	{ MODKEY,			XK_b,		togglebar,	NULL }, \ | ||||
| 	{ MODKEY,			XK_h,		incmasterw,	"-32" }, \ | ||||
| 	{ MODKEY,			XK_l,		incmasterw,	"32" }, \ | ||||
| 	{ MODKEY|ShiftMask,		XK_j,		incnmaster,	"1" }, \ | ||||
|  | ||||
| @ -3,6 +3,7 @@ | ||||
|  * See LICENSE file for license details. */ | ||||
| 
 | ||||
| /* appearance */ | ||||
| #define BARPOS			BarTop /* BarBot, BarOff */ | ||||
| #define BORDERPX		1 | ||||
| #define FONT			"-*-fixed-medium-r-normal-*-13-*-*-*-*-*-*-*" | ||||
| #define NORMBORDERCOLOR		"#dddddd" | ||||
| @ -11,7 +12,6 @@ | ||||
| #define SELBORDERCOLOR		"#ff0000" | ||||
| #define SELBGCOLOR		"#006699" | ||||
| #define SELFGCOLOR		"#ffffff" | ||||
| #define TOPBAR			True		/* False */ | ||||
| 
 | ||||
| /* tagging */ | ||||
| #define TAGS \ | ||||
| @ -45,6 +45,7 @@ static Key key[] = { \ | ||||
| 	{ MODKEY|ShiftMask,		XK_Return,	spawn,		"exec xterm" }, \ | ||||
| 	{ MODKEY,			XK_p,		spawn, 		"exe=`dmenu_path | dmenu` && exec $exe" }, \ | ||||
| 	{ MODKEY,			XK_space,	setlayout,	NULL }, \ | ||||
| 	{ MODKEY,			XK_b,		togglebar,	NULL }, \ | ||||
| 	{ MODKEY,			XK_h,		incmasterw,	"-32" }, \ | ||||
| 	{ MODKEY,			XK_l,		incmasterw,	"32" }, \ | ||||
| 	{ MODKEY|ShiftMask,		XK_j,		incnmaster,	"1" }, \ | ||||
|  | ||||
							
								
								
									
										9
									
								
								dwm.h
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								dwm.h
									
									
									
									
									
								
							| @ -37,10 +37,11 @@ | ||||
| /* mask shorthands, used in event.c and client.c */ | ||||
| #define BUTTONMASK		(ButtonPressMask | ButtonReleaseMask) | ||||
| 
 | ||||
| enum { NetSupported, NetWMName, NetLast };		/* EWMH atoms */ | ||||
| enum { WMProtocols, WMDelete, WMState, WMLast };	/* default atoms */ | ||||
| enum { BarTop, BarBot, BarOff };			/* bar position */ | ||||
| enum { CurNormal, CurResize, CurMove, CurLast };	/* cursor */ | ||||
| enum { ColBorder, ColFG, ColBG, ColLast };		/* color */ | ||||
| enum { NetSupported, NetWMName, NetLast };		/* EWMH atoms */ | ||||
| enum { WMProtocols, WMDelete, WMState, WMLast };	/* default atoms */ | ||||
| 
 | ||||
| typedef struct Client Client; | ||||
| struct Client { | ||||
| @ -83,7 +84,7 @@ extern const char *tags[];		/* all tags */ | ||||
| char stext[256];			/* status text */ | ||||
| int screen, sx, sy, sw, sh;		/* screen geometry */ | ||||
| int wax, way, wah, waw;			/* windowarea geometry */ | ||||
| unsigned int bh, blw;			/* bar height, bar layout label width */ | ||||
| unsigned int bh, blw, bpos;		/* bar height, bar layout label width, bar position */ | ||||
| unsigned int ntags, numlockmask;	/* number of tags, dynamic lock mask */ | ||||
| void (*handler[LASTEvent])(XEvent *);	/* event handler */ | ||||
| Atom wmatom[WMLast], netatom[NetLast]; | ||||
| @ -127,10 +128,12 @@ void initlayouts(void);			/* initialize layout array */ | ||||
| Client *nexttiled(Client *c);		/* returns tiled successor of c */ | ||||
| void restack(void);			/* restores z layers of all clients */ | ||||
| void setlayout(const char *arg);	/* sets layout, -1 toggles */ | ||||
| void togglebar(const char *arg);	/* shows/hides the bar */ | ||||
| void togglemax(const char *arg);	/* toggles maximization of floating client */ | ||||
| void zoom(const char *arg);		/* zooms the focused client to master area, arg is ignored */ | ||||
| 
 | ||||
| /* main.c */ | ||||
| void updatebarpos(void);		/* updates the bar position */ | ||||
| void quit(const char *arg);		/* quit dwm nicely */ | ||||
| int xerror(Display *dsply, XErrorEvent *ee);	/* dwm's X error handler */ | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										6
									
								
								layout.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								layout.c
									
									
									
									
									
								
							| @ -216,6 +216,12 @@ setlayout(const char *arg) { | ||||
| 		drawstatus(); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| togglebar(const char *arg) { | ||||
| 	bpos = (bpos == BarOff) ? BARPOS : BarOff; | ||||
| 	updatebarpos(); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| togglemax(const char *arg) { | ||||
| 	XEvent ev; | ||||
|  | ||||
							
								
								
									
										32
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								main.c
									
									
									
									
									
								
							| @ -18,7 +18,7 @@ | ||||
| 
 | ||||
| char stext[256]; | ||||
| int screen, sx, sy, sw, sh, wax, way, waw, wah; | ||||
| unsigned int bh, ntags, numlockmask; | ||||
| unsigned int bh, bpos, ntags, numlockmask; | ||||
| Atom wmatom[WMLast], netatom[NetLast]; | ||||
| Bool *seltag; | ||||
| Bool selscreen = True; | ||||
| @ -190,17 +190,13 @@ setup(void) { | ||||
| 	wa.override_redirect = 1; | ||||
| 	wa.background_pixmap = ParentRelative; | ||||
| 	wa.event_mask = ButtonPressMask | ExposureMask; | ||||
| 	barwin = XCreateWindow(dpy, root, sx, sy + (TOPBAR ? 0 : sh - bh), sw, bh, 0, | ||||
| 	barwin = XCreateWindow(dpy, root, sx, sy - bh, sw, bh, 0, | ||||
| 			DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen), | ||||
| 			CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa); | ||||
| 	XDefineCursor(dpy, barwin, cursor[CurNormal]); | ||||
| 	updatebarpos(); | ||||
| 	XMapRaised(dpy, barwin); | ||||
| 	strcpy(stext, "dwm-"VERSION); | ||||
| 	/* windowarea */ | ||||
| 	wax = sx; | ||||
| 	way = sy + (TOPBAR ? bh : 0); | ||||
| 	wah = sh - bh; | ||||
| 	waw = sw; | ||||
| 	/* pixmap for everything */ | ||||
| 	dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen)); | ||||
| 	dc.gc = XCreateGC(dpy, root, 0, 0); | ||||
| @ -228,6 +224,28 @@ quit(const char *arg) { | ||||
| 	readin = running = False; | ||||
| } | ||||
| 
 | ||||
| void | ||||
| updatebarpos(void) { | ||||
| 	wax = sx; | ||||
| 	way = sy; | ||||
| 	wah = sh; | ||||
| 	waw = sw; | ||||
| 	switch(bpos) { | ||||
| 	case BarTop: | ||||
| 		wah -= bh; | ||||
| 		way += bh; | ||||
| 		XMoveWindow(dpy, barwin, sx, sy); | ||||
| 		break; | ||||
| 	case BarBot: | ||||
| 		wah -= bh; | ||||
| 		XMoveWindow(dpy, barwin, sx, sy + wah); | ||||
| 		break; | ||||
| 	case BarOff: | ||||
| 		XMoveWindow(dpy, barwin, sx, sy - bh); | ||||
| 	} | ||||
| 	lt->arrange(); | ||||
| } | ||||
| 
 | ||||
| /* There's no way to check accesses to destroyed windows, thus those cases are
 | ||||
|  * ignored (especially on UnmapNotify's).  Other types of errors call Xlibs | ||||
|  * default error handler, which may call exit. | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Anselm R. Garbe
						Anselm R. Garbe