added xlock command (I need it regularly)
This commit is contained in:
		
							parent
							
								
									0a638a4caf
								
							
						
					
					
						commit
						ce846e941b
					
				
							
								
								
									
										30
									
								
								client.c
								
								
								
								
							
							
						
						
									
										30
									
								
								client.c
								
								
								
								
							| 
						 | 
					@ -11,9 +11,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "dwm.h"
 | 
					#include "dwm.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void floating(void);
 | 
					static void (*arrange)(void *) = floating;
 | 
				
			||||||
static void tiling(void);
 | 
					 | 
				
			||||||
static void (*arrange)(void) = floating;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
max(void *aux)
 | 
					max(void *aux)
 | 
				
			||||||
| 
						 | 
					@ -24,27 +22,30 @@ max(void *aux)
 | 
				
			||||||
	stack->y = sy;
 | 
						stack->y = sy;
 | 
				
			||||||
	stack->w = sw - 2 * stack->border;
 | 
						stack->w = sw - 2 * stack->border;
 | 
				
			||||||
	stack->h = sh - 2 * stack->border;
 | 
						stack->h = sh - 2 * stack->border;
 | 
				
			||||||
 | 
						craise(stack);
 | 
				
			||||||
	resize(stack);
 | 
						resize(stack);
 | 
				
			||||||
	discard_events(EnterWindowMask);
 | 
						discard_events(EnterWindowMask);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					void
 | 
				
			||||||
floating(void)
 | 
					floating(void *aux)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	Client *c;
 | 
						Client *c;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						arrange = floating;
 | 
				
			||||||
	for(c = stack; c; c = c->snext)
 | 
						for(c = stack; c; c = c->snext)
 | 
				
			||||||
		resize(c);
 | 
							resize(c);
 | 
				
			||||||
	discard_events(EnterWindowMask);
 | 
						discard_events(EnterWindowMask);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					void
 | 
				
			||||||
tiling(void)
 | 
					tiling(void *aux)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	Client *c;
 | 
						Client *c;
 | 
				
			||||||
	int n, cols, rows, gw, gh, i, j;
 | 
						int n, cols, rows, gw, gh, i, j;
 | 
				
			||||||
    float rt, fd;
 | 
					    float rt, fd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						arrange = tiling;
 | 
				
			||||||
	if(!clients)
 | 
						if(!clients)
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
	for(n = 0, c = clients; c; c = c->next, n++);
 | 
						for(n = 0, c = clients; c; c = c->next, n++);
 | 
				
			||||||
| 
						 | 
					@ -75,17 +76,6 @@ tiling(void)
 | 
				
			||||||
	discard_events(EnterWindowMask);
 | 
						discard_events(EnterWindowMask);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					 | 
				
			||||||
toggle(void *aux)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	if(arrange == floating)
 | 
					 | 
				
			||||||
		arrange = tiling;
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
		arrange = floating;
 | 
					 | 
				
			||||||
	arrange();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
sel(void *aux)
 | 
					sel(void *aux)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -280,7 +270,7 @@ manage(Window w, XWindowAttributes *wa)
 | 
				
			||||||
			GrabModeAsync, GrabModeSync, None, None);
 | 
								GrabModeAsync, GrabModeSync, None, None);
 | 
				
			||||||
	XGrabButton(dpy, Button3, Mod1Mask, c->win, False, ButtonPressMask,
 | 
						XGrabButton(dpy, Button3, Mod1Mask, c->win, False, ButtonPressMask,
 | 
				
			||||||
			GrabModeAsync, GrabModeSync, None, None);
 | 
								GrabModeAsync, GrabModeSync, None, None);
 | 
				
			||||||
	arrange();
 | 
						arrange(NULL);
 | 
				
			||||||
	XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2);
 | 
						XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2);
 | 
				
			||||||
	focus(c);
 | 
						focus(c);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -400,7 +390,7 @@ unmanage(Client *c)
 | 
				
			||||||
	XFlush(dpy);
 | 
						XFlush(dpy);
 | 
				
			||||||
	XSetErrorHandler(error_handler);
 | 
						XSetErrorHandler(error_handler);
 | 
				
			||||||
	XUngrabServer(dpy);
 | 
						XUngrabServer(dpy);
 | 
				
			||||||
	arrange();
 | 
						arrange(NULL);
 | 
				
			||||||
	if(stack)
 | 
						if(stack)
 | 
				
			||||||
		focus(stack);
 | 
							focus(stack);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										5
									
								
								dev.c
								
								
								
								
							
							
						
						
									
										5
									
								
								dev.c
								
								
								
								
							| 
						 | 
					@ -17,13 +17,16 @@ const char *term[] = {
 | 
				
			||||||
	"-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*",NULL
 | 
						"-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*",NULL
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
const char *browse[] = { "firefox", NULL };
 | 
					const char *browse[] = { "firefox", NULL };
 | 
				
			||||||
 | 
					const char *xlock[] = { "xlock", NULL };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static Key key[] = {
 | 
					static Key key[] = {
 | 
				
			||||||
	{ Mod1Mask, XK_Return, (void (*)(void *))spawn, term },
 | 
						{ Mod1Mask, XK_Return, (void (*)(void *))spawn, term },
 | 
				
			||||||
	{ Mod1Mask, XK_w, (void (*)(void *))spawn, browse },
 | 
						{ Mod1Mask, XK_w, (void (*)(void *))spawn, browse },
 | 
				
			||||||
 | 
						{ Mod1Mask, XK_l, (void (*)(void *))spawn, xlock },
 | 
				
			||||||
	{ Mod1Mask, XK_k, sel, "prev" }, 
 | 
						{ Mod1Mask, XK_k, sel, "prev" }, 
 | 
				
			||||||
	{ Mod1Mask, XK_j, sel, "next" }, 
 | 
						{ Mod1Mask, XK_j, sel, "next" }, 
 | 
				
			||||||
	{ Mod1Mask, XK_space, toggle, NULL }, 
 | 
						{ Mod1Mask, XK_t, tiling, NULL }, 
 | 
				
			||||||
 | 
						{ Mod1Mask, XK_f, tiling, NULL }, 
 | 
				
			||||||
	{ Mod1Mask, XK_m, max, NULL }, 
 | 
						{ Mod1Mask, XK_m, max, NULL }, 
 | 
				
			||||||
	{ Mod1Mask | ShiftMask, XK_c, ckill, NULL }, 
 | 
						{ Mod1Mask | ShiftMask, XK_c, ckill, NULL }, 
 | 
				
			||||||
	{ Mod1Mask | ShiftMask, XK_q, quit, NULL },
 | 
						{ Mod1Mask | ShiftMask, XK_q, quit, NULL },
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										3
									
								
								dwm.h
								
								
								
								
							
							
						
						
									
										3
									
								
								dwm.h
								
								
								
								
							| 
						 | 
					@ -100,7 +100,8 @@ extern void lower(Client *c);
 | 
				
			||||||
extern void ckill(void *aux);
 | 
					extern void ckill(void *aux);
 | 
				
			||||||
extern void sel(void *aux);
 | 
					extern void sel(void *aux);
 | 
				
			||||||
extern void max(void *aux);
 | 
					extern void max(void *aux);
 | 
				
			||||||
extern void toggle(void *aux);
 | 
					extern void floating(void *aux);
 | 
				
			||||||
 | 
					extern void tiling(void *aux);
 | 
				
			||||||
extern void gravitate(Client *c, Bool invert);
 | 
					extern void gravitate(Client *c, Bool invert);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* draw.c */
 | 
					/* draw.c */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										6
									
								
								dwm.html
								
								
								
								
							
							
						
						
									
										6
									
								
								dwm.html
								
								
								
								
							| 
						 | 
					@ -59,9 +59,9 @@
 | 
				
			||||||
			</li>
 | 
								</li>
 | 
				
			||||||
			<li>
 | 
								<li>
 | 
				
			||||||
			garbeam <b>does not</b> want any feedback to dwm. If you ask for support,
 | 
								garbeam <b>does not</b> want any feedback to dwm. If you ask for support,
 | 
				
			||||||
			feature requests or if you report bugs, they will be <b>ignored</b>
 | 
								feature requests, or if you report bugs, they will be <b>ignored</b>
 | 
				
			||||||
			with a high chance. dwm is only intended to fit garbeam's needs,
 | 
								with a high chance. dwm is only intended to fit garbeams needs.
 | 
				
			||||||
			however you are free to download and distribute/relicense it, with the
 | 
								However you are free to download and distribute/relicense it, with the
 | 
				
			||||||
			conditions of the <a href="http://wmii.de/cgi-bin/hgwebdir.cgi/dwm?f=f10eb1139362;file=LICENSE;style=raw">MIT/X Consortium license</a>.
 | 
								conditions of the <a href="http://wmii.de/cgi-bin/hgwebdir.cgi/dwm?f=f10eb1139362;file=LICENSE;style=raw">MIT/X Consortium license</a>.
 | 
				
			||||||
			</li>
 | 
								</li>
 | 
				
			||||||
		</ul>
 | 
							</ul>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue