made tag/view/toggle{tag,view} work on pointer to tags-array, there was the need to define Key key[] not static to do this. split focusclient into focusnext/prev, fixed config.*.h's
This commit is contained in:
		
							parent
							
								
									e8792d95a1
								
							
						
					
					
						commit
						10bc0ce912
					
				
							
								
								
									
										78
									
								
								config.arg.h
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								config.arg.h
									
									
									
									
									
								
							@ -37,7 +37,7 @@ static Layout layout[] = { \
 | 
			
		||||
/* key definitions */
 | 
			
		||||
#define MODKEY			Mod1Mask
 | 
			
		||||
#define KEYS \
 | 
			
		||||
static Key key[] = { \
 | 
			
		||||
Key key[] = { \
 | 
			
		||||
	/* modifier			key		function	argument */ \
 | 
			
		||||
	{ MODKEY,			XK_p,		spawn, \
 | 
			
		||||
		"exe=`dmenu_path | dmenu -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"'" \
 | 
			
		||||
@ -46,8 +46,8 @@ static Key key[] = { \
 | 
			
		||||
		"exec urxvtcd -tr -bg '#111' -fg '#eee' -cr '#eee' +sb -fn '"FONT"'" }, \
 | 
			
		||||
	{ MODKEY,			XK_space,	setlayout,	NULL }, \
 | 
			
		||||
	{ MODKEY,			XK_b,		togglebar,	NULL }, \
 | 
			
		||||
	{ MODKEY,			XK_j,		focusclient,	"1" }, \
 | 
			
		||||
	{ MODKEY,			XK_k,		focusclient,	"-1" }, \
 | 
			
		||||
	{ MODKEY,			XK_j,		focusnext,	NULL }, \
 | 
			
		||||
	{ MODKEY,			XK_k,		focusprev,	NULL }, \
 | 
			
		||||
	{ MODKEY,			XK_h,		addtomwfact,	"-0.05" }, \
 | 
			
		||||
	{ MODKEY,			XK_l,		addtomwfact,	"0.05" }, \
 | 
			
		||||
	{ MODKEY,			XK_m,		togglemax,	NULL }, \
 | 
			
		||||
@ -55,42 +55,42 @@ static Key key[] = { \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_space,	togglefloating,	NULL }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_c,		killclient,	NULL }, \
 | 
			
		||||
	{ MODKEY,			XK_0,		view,		NULL }, \
 | 
			
		||||
	{ MODKEY,			XK_1,		view,		"0" }, \
 | 
			
		||||
	{ MODKEY,			XK_2,		view,		"1" }, \
 | 
			
		||||
	{ MODKEY,			XK_3,		view,		"2" }, \
 | 
			
		||||
	{ MODKEY,			XK_4,		view,		"3" }, \
 | 
			
		||||
	{ MODKEY,			XK_5,		view,		"4" }, \
 | 
			
		||||
	{ MODKEY,			XK_6,		view,		"5" }, \
 | 
			
		||||
	{ MODKEY,			XK_7,		view,		"6" }, \
 | 
			
		||||
	{ MODKEY,			XK_8,		view,		"7" }, \
 | 
			
		||||
	{ MODKEY,			XK_9,		view,		"8" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_1,		toggleview,	"0" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_2,		toggleview,	"1" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_3,		toggleview,	"2" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_4,		toggleview,	"3" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_5,		toggleview,	"4" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_6,		toggleview,	"5" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_7,		toggleview,	"6" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_8,		toggleview,	"7" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_9,		toggleview,	"8" }, \
 | 
			
		||||
	{ MODKEY,			XK_1,		view,		tags[0] }, \
 | 
			
		||||
	{ MODKEY,			XK_2,		view,		tags[1] }, \
 | 
			
		||||
	{ MODKEY,			XK_3,		view,		tags[2] }, \
 | 
			
		||||
	{ MODKEY,			XK_4,		view,		tags[3] }, \
 | 
			
		||||
	{ MODKEY,			XK_5,		view,		tags[4] }, \
 | 
			
		||||
	{ MODKEY,			XK_6,		view,		tags[5] }, \
 | 
			
		||||
	{ MODKEY,			XK_7,		view,		tags[6] }, \
 | 
			
		||||
	{ MODKEY,			XK_8,		view,		tags[7] }, \
 | 
			
		||||
	{ MODKEY,			XK_9,		view,		tags[8] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_1,		toggleview,	tags[0] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_2,		toggleview,	tags[1] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_3,		toggleview,	tags[2] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_4,		toggleview,	tags[3] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_5,		toggleview,	tags[4] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_6,		toggleview,	tags[5] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_7,		toggleview,	tags[6] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_8,		toggleview,	tags[7] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_9,		toggleview,	tags[8] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_0,		tag,		NULL }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_1,		tag,		"0" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_2,		tag,		"1" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_3,		tag,		"2" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_4,		tag,		"3" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_5,		tag,		"4" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_6,		tag,		"5" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_7,		tag,		"6" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_8,		tag,		"7" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_9,		tag,		"8" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_1,		toggletag,	"0" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_2,		toggletag,	"1" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_3,		toggletag,	"2" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_4,		toggletag,	"3" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_5,		toggletag,	"4" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_6,		toggletag,	"5" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_7,		toggletag,	"6" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_8,		toggletag,	"7" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_9,		toggletag,	"8" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_1,		tag,		tags[0] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_2,		tag,		tags[1] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_3,		tag,		tags[2] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_4,		tag,		tags[3] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_5,		tag,		tags[4] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_6,		tag,		tags[5] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_7,		tag,		tags[6] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_8,		tag,		tags[7] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_9,		tag,		tags[8] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_1,		toggletag,	tags[0] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_2,		toggletag,	tags[1] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_3,		toggletag,	tags[2] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_4,		toggletag,	tags[3] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_5,		toggletag,	tags[4] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_6,		toggletag,	tags[5] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_7,		toggletag,	tags[6] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_8,		toggletag,	tags[7] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_9,		toggletag,	tags[8] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_q,		quit,		NULL }, \
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -38,14 +38,14 @@ static Layout layout[] = { \
 | 
			
		||||
/* key definitions */
 | 
			
		||||
#define MODKEY			Mod1Mask
 | 
			
		||||
#define KEYS \
 | 
			
		||||
static Key key[] = { \
 | 
			
		||||
Key key[] = { \
 | 
			
		||||
	/* modifier			key		function	argument */ \
 | 
			
		||||
	{ 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_j,		focusclient,	"1" }, \
 | 
			
		||||
	{ MODKEY,			XK_k,		focusclient,	"-1" }, \
 | 
			
		||||
	{ MODKEY,			XK_j,		focusnext,	NULL }, \
 | 
			
		||||
	{ MODKEY,			XK_k,		focusprev,	NULL }, \
 | 
			
		||||
	{ MODKEY,			XK_h,		addtomwfact,	"-0.05" }, \
 | 
			
		||||
	{ MODKEY,			XK_l,		addtomwfact,	"0.05" }, \
 | 
			
		||||
	{ MODKEY,			XK_m,		togglemax,	NULL }, \
 | 
			
		||||
@ -53,42 +53,42 @@ static Key key[] = { \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_space,	togglefloating,	NULL }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_c,		killclient,	NULL }, \
 | 
			
		||||
	{ MODKEY,			XK_0,		view,		NULL }, \
 | 
			
		||||
	{ MODKEY,			XK_1,		view,		"0" }, \
 | 
			
		||||
	{ MODKEY,			XK_2,		view,		"1" }, \
 | 
			
		||||
	{ MODKEY,			XK_3,		view,		"2" }, \
 | 
			
		||||
	{ MODKEY,			XK_4,		view,		"3" }, \
 | 
			
		||||
	{ MODKEY,			XK_5,		view,		"4" }, \
 | 
			
		||||
	{ MODKEY,			XK_6,		view,		"5" }, \
 | 
			
		||||
	{ MODKEY,			XK_7,		view,		"6" }, \
 | 
			
		||||
	{ MODKEY,			XK_8,		view,		"7" }, \
 | 
			
		||||
	{ MODKEY,			XK_9,		view,		"8" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_1,		toggleview,	"0" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_2,		toggleview,	"1" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_3,		toggleview,	"2" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_4,		toggleview,	"3" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_5,		toggleview,	"4" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_6,		toggleview,	"5" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_7,		toggleview,	"6" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_8,		toggleview,	"7" }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_9,		toggleview,	"8" }, \
 | 
			
		||||
	{ MODKEY,			XK_1,		view,		tags[0] }, \
 | 
			
		||||
	{ MODKEY,			XK_2,		view,		tags[1] }, \
 | 
			
		||||
	{ MODKEY,			XK_3,		view,		tags[2] }, \
 | 
			
		||||
	{ MODKEY,			XK_4,		view,		tags[3] }, \
 | 
			
		||||
	{ MODKEY,			XK_5,		view,		tags[4] }, \
 | 
			
		||||
	{ MODKEY,			XK_6,		view,		tags[5] }, \
 | 
			
		||||
	{ MODKEY,			XK_7,		view,		tags[6] }, \
 | 
			
		||||
	{ MODKEY,			XK_8,		view,		tags[7] }, \
 | 
			
		||||
	{ MODKEY,			XK_9,		view,		tags[8] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_1,		toggleview,	tags[0] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_2,		toggleview,	tags[1] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_3,		toggleview,	tags[2] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_4,		toggleview,	tags[3] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_5,		toggleview,	tags[4] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_6,		toggleview,	tags[5] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_7,		toggleview,	tags[6] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_8,		toggleview,	tags[7] }, \
 | 
			
		||||
	{ MODKEY|ControlMask,		XK_9,		toggleview,	tags[8] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_0,		tag,		NULL }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_1,		tag,		"0" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_2,		tag,		"1" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_3,		tag,		"2" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_4,		tag,		"3" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_5,		tag,		"4" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_6,		tag,		"5" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_7,		tag,		"6" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_8,		tag,		"7" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_9,		tag,		"8" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_1,		toggletag,	"0" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_2,		toggletag,	"1" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_3,		toggletag,	"2" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_4,		toggletag,	"3" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_5,		toggletag,	"4" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_6,		toggletag,	"5" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_7,		toggletag,	"6" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_8,		toggletag,	"7" }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_9,		toggletag,	"8" }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_1,		tag,		tags[0] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_2,		tag,		tags[1] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_3,		tag,		tags[2] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_4,		tag,		tags[3] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_5,		tag,		tags[4] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_6,		tag,		tags[5] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_7,		tag,		tags[6] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_8,		tag,		tags[7] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_9,		tag,		tags[8] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_1,		toggletag,	tags[0] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_2,		toggletag,	tags[1] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_3,		toggletag,	tags[2] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_4,		toggletag,	tags[3] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_5,		toggletag,	tags[4] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_6,		toggletag,	tags[5] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_7,		toggletag,	tags[6] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_8,		toggletag,	tags[7] }, \
 | 
			
		||||
	{ MODKEY|ControlMask|ShiftMask,	XK_9,		toggletag,	tags[8] }, \
 | 
			
		||||
	{ MODKEY|ShiftMask,		XK_q,		quit,		NULL }, \
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								dwm.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								dwm.h
									
									
									
									
									
								
							@ -114,7 +114,8 @@ void grabkeys(void);			/* grab all keys defined in config.h */
 | 
			
		||||
 | 
			
		||||
/* layout.c */
 | 
			
		||||
void arrange(void);			/* arranges all windows depending on the layout in use */
 | 
			
		||||
void focusclient(const char *arg);	/* focuses next(1)/previous(-1) visible client */
 | 
			
		||||
void focusnext(const char *arg);	/* focuses next visible client */
 | 
			
		||||
void focusprev(const char *arg);	/* focuses prev visible client */
 | 
			
		||||
const char *getsymbol(void);		/* returns symbol of enabled layout */
 | 
			
		||||
Bool isfloating(void);			/* returns True if floating layout is enabled */
 | 
			
		||||
Bool isarrange(void (*func)());		/* returns True if func is the layout function in use */
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										20
									
								
								event.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								event.c
									
									
									
									
									
								
							@ -1,6 +1,5 @@
 | 
			
		||||
/* See LICENSE file for copyright and license details. */
 | 
			
		||||
#include "dwm.h"
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <X11/keysym.h>
 | 
			
		||||
#include <X11/Xatom.h>
 | 
			
		||||
@ -15,8 +14,6 @@ typedef struct {
 | 
			
		||||
	const char *arg;
 | 
			
		||||
} Key;
 | 
			
		||||
 | 
			
		||||
KEYS
 | 
			
		||||
 | 
			
		||||
#define CLEANMASK(mask)		(mask & ~(numlockmask | LockMask))
 | 
			
		||||
#define MOUSEMASK		(BUTTONMASK | PointerMotionMask)
 | 
			
		||||
 | 
			
		||||
@ -112,29 +109,26 @@ resizemouse(Client *c) {
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
buttonpress(XEvent *e) {
 | 
			
		||||
	static char buf[32];
 | 
			
		||||
	unsigned int i, x;
 | 
			
		||||
	Client *c;
 | 
			
		||||
	XButtonPressedEvent *ev = &e->xbutton;
 | 
			
		||||
 | 
			
		||||
	buf[0] = 0;
 | 
			
		||||
	if(barwin == ev->window) {
 | 
			
		||||
		x = 0;
 | 
			
		||||
		for(i = 0; i < ntags; i++) {
 | 
			
		||||
			x += textw(tags[i]);
 | 
			
		||||
			if(ev->x < x) {
 | 
			
		||||
				snprintf(buf, sizeof buf, "%d", i);
 | 
			
		||||
				if(ev->button == Button1) {
 | 
			
		||||
					if(ev->state & MODKEY)
 | 
			
		||||
						tag(buf);
 | 
			
		||||
						tag(tags[i]);
 | 
			
		||||
					else
 | 
			
		||||
						view(buf);
 | 
			
		||||
						view(tags[i]);
 | 
			
		||||
				}
 | 
			
		||||
				else if(ev->button == Button3) {
 | 
			
		||||
					if(ev->state & MODKEY)
 | 
			
		||||
						toggletag(buf);
 | 
			
		||||
						toggletag(tags[i]);
 | 
			
		||||
					else
 | 
			
		||||
						toggleview(buf);
 | 
			
		||||
						toggleview(tags[i]);
 | 
			
		||||
				}
 | 
			
		||||
				return;
 | 
			
		||||
			}
 | 
			
		||||
@ -257,7 +251,8 @@ expose(XEvent *e) {
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
keypress(XEvent *e) {
 | 
			
		||||
	static unsigned int len = sizeof key / sizeof key[0];
 | 
			
		||||
	KEYS
 | 
			
		||||
	unsigned int len = sizeof key / sizeof key[0];
 | 
			
		||||
	unsigned int i;
 | 
			
		||||
	KeySym keysym;
 | 
			
		||||
	XKeyEvent *ev = &e->xkey;
 | 
			
		||||
@ -362,7 +357,8 @@ void (*handler[LASTEvent]) (XEvent *) = {
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
grabkeys(void) {
 | 
			
		||||
	static unsigned int len = sizeof key / sizeof key[0];
 | 
			
		||||
	KEYS
 | 
			
		||||
	unsigned int len = sizeof key / sizeof key[0];
 | 
			
		||||
	unsigned int i;
 | 
			
		||||
	KeyCode code;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										34
									
								
								layout.c
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								layout.c
									
									
									
									
									
								
							@ -42,22 +42,30 @@ arrange(void) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
focusclient(const char *arg) {
 | 
			
		||||
focusnext(const char *arg) {
 | 
			
		||||
	Client *c;
 | 
			
		||||
   
 | 
			
		||||
	if(!sel || !arg)
 | 
			
		||||
 | 
			
		||||
	if(!sel)
 | 
			
		||||
		return;
 | 
			
		||||
	if(atoi(arg) < 0) {
 | 
			
		||||
		for(c = sel->prev; c && !isvisible(c); c = c->prev);
 | 
			
		||||
		if(!c) {
 | 
			
		||||
			for(c = clients; c && c->next; c = c->next);
 | 
			
		||||
			for(; c && !isvisible(c); c = c->prev);
 | 
			
		||||
		}
 | 
			
		||||
	for(c = sel->next; c && !isvisible(c); c = c->next);
 | 
			
		||||
	if(!c)
 | 
			
		||||
		for(c = clients; c && !isvisible(c); c = c->next);
 | 
			
		||||
	if(c) {
 | 
			
		||||
		focus(c);
 | 
			
		||||
		restack();
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		for(c = sel->next; c && !isvisible(c); c = c->next);
 | 
			
		||||
		if(!c)
 | 
			
		||||
			for(c = clients; c && !isvisible(c); c = c->next);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
focusprev(const char *arg) {
 | 
			
		||||
	Client *c;
 | 
			
		||||
 | 
			
		||||
	if(!sel)
 | 
			
		||||
		return;
 | 
			
		||||
	for(c = sel->prev; c && !isvisible(c); c = c->prev);
 | 
			
		||||
	if(!c) {
 | 
			
		||||
		for(c = clients; c && c->next; c = c->next);
 | 
			
		||||
		for(; c && !isvisible(c); c = c->prev);
 | 
			
		||||
	}
 | 
			
		||||
	if(c) {
 | 
			
		||||
		focus(c);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										26
									
								
								tag.c
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								tag.c
									
									
									
									
									
								
							@ -40,6 +40,16 @@ persistconfig(Client *c) {
 | 
			
		||||
			PropModeReplace, (unsigned char *)prop, i);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static unsigned int
 | 
			
		||||
idxoftag(const char *tag) {
 | 
			
		||||
	unsigned int i;
 | 
			
		||||
 | 
			
		||||
	for(i = 0; i < ntags; i++)
 | 
			
		||||
		if(tags[i] == tag)
 | 
			
		||||
			return i;
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* extern */
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
@ -135,13 +145,13 @@ settags(Client *c, Client *trans) {
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
tag(const char *arg) {
 | 
			
		||||
	int i;
 | 
			
		||||
	unsigned int i;
 | 
			
		||||
 | 
			
		||||
	if(!sel)
 | 
			
		||||
		return;
 | 
			
		||||
	for(i = 0; i < ntags; i++)
 | 
			
		||||
		sel->tags[i] = arg == NULL;
 | 
			
		||||
	i = arg ? atoi(arg) : 0;
 | 
			
		||||
	i = idxoftag(arg);
 | 
			
		||||
	if(i >= 0 && i < ntags)
 | 
			
		||||
		sel->tags[i] = True;
 | 
			
		||||
	persistconfig(sel);
 | 
			
		||||
@ -162,11 +172,11 @@ togglefloating(const char *arg) {
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
toggletag(const char *arg) {
 | 
			
		||||
	int i, j;
 | 
			
		||||
	unsigned int i, j;
 | 
			
		||||
 | 
			
		||||
	if(!sel)
 | 
			
		||||
		return;
 | 
			
		||||
	i = arg ? atoi(arg) : 0;
 | 
			
		||||
	i = idxoftag(arg);
 | 
			
		||||
	sel->tags[i] = !sel->tags[i];
 | 
			
		||||
	for(j = 0; j < ntags && !sel->tags[j]; j++);
 | 
			
		||||
	if(j == ntags)
 | 
			
		||||
@ -177,9 +187,9 @@ toggletag(const char *arg) {
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
toggleview(const char *arg) {
 | 
			
		||||
	int i, j;
 | 
			
		||||
	unsigned int i, j;
 | 
			
		||||
 | 
			
		||||
	i = arg ? atoi(arg) : 0;
 | 
			
		||||
	i = idxoftag(arg);
 | 
			
		||||
	seltag[i] = !seltag[i];
 | 
			
		||||
	for(j = 0; j < ntags && !seltag[j]; j++);
 | 
			
		||||
	if(j == ntags)
 | 
			
		||||
@ -189,11 +199,11 @@ toggleview(const char *arg) {
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
view(const char *arg) {
 | 
			
		||||
	int i;
 | 
			
		||||
	unsigned int i;
 | 
			
		||||
 | 
			
		||||
	for(i = 0; i < ntags; i++)
 | 
			
		||||
		seltag[i] = arg == NULL;
 | 
			
		||||
	i = arg ? atoi(arg) : 0;
 | 
			
		||||
	i = idxoftag(arg);
 | 
			
		||||
	if(i >= 0 && i < ntags)
 | 
			
		||||
		seltag[i] = True;
 | 
			
		||||
	arrange();
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user