diff options
| author | Anselm R. Garbe <arg@suckless.org> | 2007-02-19 17:00:32 +0100 | 
|---|---|---|
| committer | Anselm R. Garbe <arg@suckless.org> | 2007-02-19 17:00:32 +0100 | 
| commit | cee56d38632bbac08e7f59d58c7c7ab1370be329 (patch) | |
| tree | 53869a5d9d948bbd25f51a57f531e9b7d4f282af | |
| parent | 7c4da2446531bfec2f9b32998604aa9ff2da11c3 (diff) | |
| download | dwm-cee56d38632bbac08e7f59d58c7c7ab1370be329.tar.gz | |
renamed floating into swimming (this does not clash with C naming conventions and fits better the fish symbol) - also in man page
| -rw-r--r-- | client.c | 8 | ||||
| -rw-r--r-- | config.arg.h | 8 | ||||
| -rw-r--r-- | config.default.h | 8 | ||||
| -rw-r--r-- | dwm.1 | 20 | ||||
| -rw-r--r-- | dwm.h | 7 | ||||
| -rw-r--r-- | event.c | 8 | ||||
| -rw-r--r-- | screen.c | 133 | 
7 files changed, 96 insertions, 96 deletions
| @@ -253,8 +253,8 @@ manage(Window w, XWindowAttributes *wa) {  	updatetitle(c);  	for(t = clients; t && t->win != trans; t = t->next);  	settags(c, t); -	if(!c->isfloat) -		c->isfloat = (t != NULL) || c->isfixed; +	if(!c->swimming) +		c->swimming = (t != NULL) || c->isfixed;  	attach(c);  	attachstack(c);  	c->isbanned = True; @@ -268,7 +268,7 @@ manage(Window w, XWindowAttributes *wa) {  Client *  nexttiled(Client *c) { -	for(; c && (c->isfloat || !isvisible(c)); c = c->next); +	for(; c && (c->swimming || !isvisible(c)); c = c->next);  	return c;  } @@ -440,7 +440,7 @@ zoom(Arg *arg) {  	if(!sel)  		return; -	if(sel->isfloat || (lt->arrange == dofloat)) { +	if(sel->swimming || (lt->arrange == swim)) {  		togglemax(sel);  		return;  	} diff --git a/config.arg.h b/config.arg.h index 67069a6..7b54ca2 100644 --- a/config.arg.h +++ b/config.arg.h @@ -8,8 +8,8 @@ const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", NULL };  #define LAYOUTS \  static Layout layout[] = { \  	/* symbol		function */ \ -	{ "[]=",		dotile }, /* first entry is default */ \ -	{ "><>",		dofloat }, \ +	{ "[]=",		tile }, /* first entry is default */ \ +	{ "><>",		swim }, \  };  #define BORDERPX		1 @@ -64,7 +64,7 @@ static Key key[] = { \  	{ MODKEY|ControlMask|ShiftMask,	XK_9,		toggletag,	{ .i = 8 } }, \  	{ MODKEY|ShiftMask,		XK_c,		killclient,	{ 0 } }, \  	{ MODKEY,			XK_space,	togglelayout,	{ 0 } }, \ -	{ MODKEY|ShiftMask,		XK_space,	togglefloat,	{ 0 } }, \ +	{ MODKEY|ShiftMask,		XK_space,	toggleswimming,	{ 0 } }, \  	{ MODKEY,			XK_0,		view,		{ .i = -1 } }, \  	{ MODKEY,			XK_1,		view,		{ .i = 0 } }, \  	{ MODKEY,			XK_2,		view,		{ .i = 1 } }, \ @@ -89,7 +89,7 @@ static Key key[] = { \  #define RULES \  static Rule rule[] = { \ -	/* class:instance:title regex	tags regex	isfloat */ \ +	/* class:instance:title regex	tags regex	swimming */ \  	{ "Firefox",			"3",		False }, \  	{ "Gimp",			NULL,		True }, \  	{ "MPlayer",			NULL,		True }, \ diff --git a/config.default.h b/config.default.h index c318973..1b6b349 100644 --- a/config.default.h +++ b/config.default.h @@ -8,8 +8,8 @@ const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", NULL };  #define LAYOUTS \  Layout layout[] = { \  	/* symbol		function */ \ -	{ "[]=",		dotile }, /* first entry is default */ \ -	{ "><>",		dofloat }, \ +	{ "[]=",		tile }, /* first entry is default */ \ +	{ "><>",		swim }, \  };  #define BORDERPX		1 @@ -59,7 +59,7 @@ static Key key[] = { \  	{ MODKEY|ControlMask|ShiftMask,	XK_9,		toggletag,	{ .i = 8 } }, \  	{ MODKEY|ShiftMask,		XK_c,		killclient,	{ 0 } }, \  	{ MODKEY,			XK_space,	togglelayout,	{ 0 } }, \ -	{ MODKEY|ShiftMask,		XK_space,	togglefloat,	{ 0 } }, \ +	{ MODKEY|ShiftMask,		XK_space,	toggleswimming,	{ 0 } }, \  	{ MODKEY,			XK_0,		view,		{ .i = -1 } }, \  	{ MODKEY,			XK_1,		view,		{ .i = 0 } }, \  	{ MODKEY,			XK_2,		view,		{ .i = 1 } }, \ @@ -86,7 +86,7 @@ static Key key[] = { \   * xprop | awk -F '"' '/^WM_CLASS/ { printf("%s:%s:",$4,$2) }; /^WM_NAME/ { printf("%s\n",$2) }' */  #define RULES \  static Rule rule[] = { \ -	/* class:instance:title regex	tags regex	isfloat */ \ +	/* class:instance:title regex	tags regex	swimming */ \  	{ "Gimp",			NULL,		True }, \  	{ "MPlayer",			NULL,		True }, \  	{ "Acroread",			NULL,		True }, \ @@ -6,13 +6,13 @@ dwm \- dynamic window manager  .RB [ \-v ]  .SH DESCRIPTION  dwm is a dynamic window manager for X. It manages windows in tiling and -floating layouts. Either layout can be applied dynamically, optimizing the +swimming layouts. Either layout can be applied dynamically, optimizing the  environment for the application in use and the task performed.  .P  In tiling layout windows are managed in a master and stacking area. The master  area contains the windows which currently need most attention, whereas the -stacking area contains all other windows. In floating layout windows can be -resized and moved freely. Dialog windows are always managed floating, +stacking area contains all other windows. In swimming layout windows can be +resized and moved freely. Dialog windows are always managed swimming,  regardless of the layout applied.  .P  Windows are grouped by tags. Each window can be tagged with one or multiple @@ -38,7 +38,7 @@ is read and displayed in the status text area.  .TP  .B Button1  click on a tag label to display all windows with that tag, click on the layout -label toggles between tiling and floating layout. +label toggles between tiling and swimming layout.  .TP  .B Button3  click on a tag label adds/removes all windows with that tag to/from the view. @@ -67,7 +67,7 @@ Focus next window.  Focus previous window.  .TP  .B Mod1-Return -Zooms/cycles current window to/from master area (tiling layout), toggles maximization of current window (floating layout). +Zooms/cycles current window to/from master area (tiling layout), toggles maximization of current window (swimming layout).  .TP  .B Mod1-g  Grow master area (tiling layout only). @@ -98,10 +98,10 @@ tag to/from current window.  Close focused window.  .TP  .B Mod1-space -Toggle between tiling and floating layout (affects all windows). +Toggle between tiling and swimming layout (affects all windows).  .TP  .B Mod1-Shift-space -Toggle focused window between floating and non-floating state (tiling layout only). +Toggle focused window between swimming and non-swimming state (tiling layout only).  .TP  .B Mod1-[1..n]  View all windows with @@ -121,13 +121,13 @@ Quit dwm.  .SS Mouse commands  .TP  .B Mod1-Button1 -Move current window while dragging (floating layout only). +Move current window while dragging (swimming layout only).  .TP  .B Mod1-Button2 -Zooms/cycles current window to/from master area (tiling layout), toggles maximization of current window (floating layout). +Zooms/cycles current window to/from master area (tiling layout), toggles maximization of current window (swimming layout).  .TP  .B Mod1-Button3 -Resize current window while dragging (floating layout only). +Resize current window while dragging (swimming layout only).  .SH CUSTOMIZATION  dwm is customized by creating a custom config.h and (re)compiling the source  code. This keeps it fast, secure and simple. @@ -72,7 +72,7 @@ struct Client {  	int minax, minay, maxax, maxay;  	long flags;   	unsigned int border; -	Bool isbanned, isfixed, isfloat, ismax; +	Bool isbanned, isfixed, ismax, swimming;  	Bool *tags;  	Client *next;  	Client *prev; @@ -129,16 +129,15 @@ extern int xerror(Display *dsply, XErrorEvent *ee);	/* dwm's X error handler */  /* screen.c */  extern void compileregs(void);			/* initialize regexps of rules defined in config.h */ -extern void dofloat(void);			/* arranges all windows floating */ -extern void dotile(void);			/* arranges all windows tiled */  extern void incnmaster(Arg *arg);		/* increments nmaster with arg's index value */  extern void initlayouts(void);			/* initialize layout array */  extern Bool isvisible(Client *c);		/* returns True if client is visible */  extern void resizemaster(Arg *arg);		/* resizes the master percent with arg's index value */  extern void restack(void);			/* restores z layers of all clients */  extern void settags(Client *c, Client *trans);	/* sets tags of c */ +extern void swim(void);				/* arranges all windows swimming */  extern void tag(Arg *arg);			/* tags c with arg's index */ -extern void togglefloat(Arg *arg);		/* toggles focusesd client between floating/non-floating state */ +extern void toggleswimming(Arg *arg);		/* toggles focusesd client between swimming/and non-swimming state */  extern void togglelayout(Arg *arg);		/* toggles layout */  extern void toggletag(Arg *arg);		/* toggles c tags with arg's index */  extern void toggleview(Arg *arg);		/* toggles the tag with arg's index (in)visible */ @@ -156,14 +156,14 @@ buttonpress(XEvent *e) {  		focus(c);  		if(CLEANMASK(ev->state) != MODKEY)  			return; -		if(ev->button == Button1 && (lt->arrange == dofloat || c->isfloat)) { +		if(ev->button == Button1 && (lt->arrange == swim || c->swimming)) {  			restack();  			movemouse(c);  		}  		else if(ev->button == Button2)  			zoom(NULL);  		else if(ev->button == Button3 -		&& (lt->arrange == dofloat || c->isfloat) && !c->isfixed) +		&& (lt->arrange == swim || c->swimming) && !c->isfixed)  		{  			restack();  			resizemouse(c); @@ -181,7 +181,7 @@ configurerequest(XEvent *e) {  		c->ismax = False;  		if(ev->value_mask & CWBorderWidth)  			c->border = ev->border_width; -		if(c->isfixed || c->isfloat || (lt->arrange == dofloat)) { +		if(c->isfixed || c->swimming || (lt->arrange == swim)) {  			if(ev->value_mask & CWX)  				c->x = ev->x;  			if(ev->value_mask & CWY) @@ -309,7 +309,7 @@ propertynotify(XEvent *e) {  			default: break;  			case XA_WM_TRANSIENT_FOR:  				XGetTransientForHint(dpy, c->win, &trans); -				if(!c->isfloat && (c->isfloat = (trans != 0))) +				if(!c->swimming && (c->swimming = (getclient(trans) != NULL)))  					lt->arrange();  				break;  			case XA_WM_NORMAL_HINTS: @@ -19,7 +19,7 @@ Layout *lt = NULL;  typedef struct {  	const char *prop;  	const char *tags; -	Bool isfloat; +	Bool swimming;  } Rule;  typedef struct { @@ -27,7 +27,6 @@ typedef struct {  	regex_t *tagregex;  } Regs; -LAYOUTS  TAGS  RULES @@ -35,60 +34,8 @@ static Regs *regs = NULL;  static unsigned int nrules = 0;  static unsigned int nlayouts = 0; -/* extern */ - -void -compileregs(void) { -	unsigned int i; -	regex_t *reg; - -	if(regs) -		return; -	nrules = sizeof rule / sizeof rule[0]; -	regs = emallocz(nrules * sizeof(Regs)); -	for(i = 0; i < nrules; i++) { -		if(rule[i].prop) { -			reg = emallocz(sizeof(regex_t)); -			if(regcomp(reg, rule[i].prop, REG_EXTENDED)) -				free(reg); -			else -				regs[i].propregex = reg; -		} -		if(rule[i].tags) { -			reg = emallocz(sizeof(regex_t)); -			if(regcomp(reg, rule[i].tags, REG_EXTENDED)) -				free(reg); -			else -				regs[i].tagregex = reg; -		} -	} -} - -void -dofloat(void) { -	Client *c; - -	for(c = clients; c; c = c->next) { -		if(isvisible(c)) { -			if(c->isbanned) -				XMoveWindow(dpy, c->win, c->x, c->y); -			c->isbanned = False; -			resize(c, c->x, c->y, c->w, c->h, True); -		} -		else { -			c->isbanned = True; -			XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); -		} -	} -	if(!sel || !isvisible(sel)) { -		for(c = stack; c && !isvisible(c); c = c->snext); -		focus(c); -	} -	restack(); -} - -void -dotile(void) { +static void +tile(void) {  	unsigned int i, n, nx, ny, nw, nh, mw, mh, tw, th;  	Client *c; @@ -105,7 +52,7 @@ dotile(void) {  			if(c->isbanned)  				XMoveWindow(dpy, c->win, c->x, c->y);  			c->isbanned = False; -			if(c->isfloat) +			if(c->swimming)  				continue;  			c->ismax = False;  			nx = wax; @@ -139,9 +86,40 @@ dotile(void) {  	restack();  } +LAYOUTS + +/* extern */ + +void +compileregs(void) { +	unsigned int i; +	regex_t *reg; + +	if(regs) +		return; +	nrules = sizeof rule / sizeof rule[0]; +	regs = emallocz(nrules * sizeof(Regs)); +	for(i = 0; i < nrules; i++) { +		if(rule[i].prop) { +			reg = emallocz(sizeof(regex_t)); +			if(regcomp(reg, rule[i].prop, REG_EXTENDED)) +				free(reg); +			else +				regs[i].propregex = reg; +		} +		if(rule[i].tags) { +			reg = emallocz(sizeof(regex_t)); +			if(regcomp(reg, rule[i].tags, REG_EXTENDED)) +				free(reg); +			else +				regs[i].tagregex = reg; +		} +	} +} +  void  incnmaster(Arg *arg) { -	if((lt->arrange == dofloat) || (nmaster + arg->i < 1) +	if((lt->arrange != tile) || (nmaster + arg->i < 1)  	|| (wah / (nmaster + arg->i) <= 2 * BORDERPX))  		return;  	nmaster += arg->i; @@ -176,7 +154,7 @@ isvisible(Client *c) {  void  resizemaster(Arg *arg) { -	if(lt->arrange != dotile) +	if(lt->arrange != tile)  		return;  	if(arg->i == 0)  		master = MASTER; @@ -197,10 +175,10 @@ restack(void) {  	drawstatus();  	if(!sel)  		return; -	if(sel->isfloat || lt->arrange == dofloat) +	if(sel->swimming || lt->arrange == swim)  		XRaiseWindow(dpy, sel->win); -	if(lt->arrange != dofloat) { -		if(!sel->isfloat) +	if(lt->arrange != swim) { +		if(!sel->swimming)  			XLowerWindow(dpy, sel->win);  		for(c = nexttiled(clients); c; c = nexttiled(c->next)) {  			if(c == sel) @@ -230,7 +208,7 @@ settags(Client *c, Client *trans) {  				ch.res_name ? ch.res_name : "", c->name);  		for(i = 0; i < nrules; i++)  			if(regs[i].propregex && !regexec(regs[i].propregex, prop, 1, &tmp, 0)) { -				c->isfloat = rule[i].isfloat; +				c->swimming = rule[i].swimming;  				for(j = 0; regs[i].tagregex && j < ntags; j++) {  					if(!regexec(regs[i].tagregex, tags[j], 1, &tmp, 0)) {  						matched = True; @@ -249,6 +227,29 @@ settags(Client *c, Client *trans) {  }  void +swim(void) { +	Client *c; + +	for(c = clients; c; c = c->next) { +		if(isvisible(c)) { +			if(c->isbanned) +				XMoveWindow(dpy, c->win, c->x, c->y); +			c->isbanned = False; +			resize(c, c->x, c->y, c->w, c->h, True); +		} +		else { +			c->isbanned = True; +			XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); +		} +	} +	if(!sel || !isvisible(sel)) { +		for(c = stack; c && !isvisible(c); c = c->snext); +		focus(c); +	} +	restack(); +} + +void  tag(Arg *arg) {  	unsigned int i; @@ -262,10 +263,10 @@ tag(Arg *arg) {  }  void -togglefloat(Arg *arg) { -	if(!sel || lt->arrange == dofloat) +toggleswimming(Arg *arg) { +	if(!sel || lt->arrange == swim)  		return; -	sel->isfloat = !sel->isfloat; +	sel->swimming = !sel->swimming;  	lt->arrange();  } | 
