aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoroga2008-05-19 17:13:55 +0000
committeroga2008-05-19 17:13:55 +0000
commit7ba072eb1a4c66b68f47468db29b67353fac496c (patch)
tree07ae20d2127b0b331d300f7d77cb927ff0697ba5
parenta6afc5f36998efb9a564b3a22d2e36a89812af3d (diff)
downloadcwm-7ba072eb1a4c66b68f47468db29b67353fac496c.tar.gz
allow an autogroup value of 0 to mean no group. This means you can set
automatically "sticky" (in the traditional sense of the word) windows in autogroup mode. Based on an initial diff from Andrew Fresh, thanks! ok okan@.
-rw-r--r--calmwm.h4
-rw-r--r--cwmrc.510
-rw-r--r--group.c5
-rw-r--r--parse.y4
4 files changed, 15 insertions, 8 deletions
diff --git a/calmwm.h b/calmwm.h
index 2d14637..fec4cba 100644
--- a/calmwm.h
+++ b/calmwm.h
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $Id: calmwm.h,v 1.44 2008/05/19 17:11:19 okan Exp $
+ * $Id: calmwm.h,v 1.45 2008/05/19 17:13:55 oga Exp $
*/
#ifndef _CALMWM_H_
@@ -159,7 +159,7 @@ struct client_ctx {
TAILQ_HEAD(client_ctx_q, client_ctx);
static char *shortcut_to_name[] = {
- "XXX", "one", "two", "three",
+ "nogroup", "one", "two", "three",
"four", "five", "six", "seven",
"eight", "nine"
};
diff --git a/cwmrc.5 b/cwmrc.5
index 81e1e95..7c63c77 100644
--- a/cwmrc.5
+++ b/cwmrc.5
@@ -1,4 +1,4 @@
-.\" $OpenBSD: cwmrc.5,v 1.6 2008/05/18 19:57:43 okan Exp $
+.\" $OpenBSD: cwmrc.5,v 1.7 2008/05/19 17:13:55 oga Exp $
.\"
.\" Copyright (c) 2004,2005 Marius Aamodt Eriksen <marius@monkey.org>
.\"
@@ -15,7 +15,7 @@
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The following requests are required for all man pages.
-.Dd $Mdocdate: May 18 2008 $
+.Dd $Mdocdate: May 19 2008 $
.Dt CWMRC 5
.Os
.Sh NAME
@@ -33,7 +33,11 @@ The following options are accepted in the configuration file:
Control automatic window grouping, based on the class and/or name
properties, where
.Ar group
-is a number between 1 and 9.
+is a number between 0 and 9.
+If the group number is 0, then the window will not be grouped; this to
+allow for
+.Dq sticky
+windows in sticky group mode.
.Pp
The class and name of a window may be obtained using
.Xr xprop 1 .
diff --git a/group.c b/group.c
index f96e8f1..294d7f7 100644
--- a/group.c
+++ b/group.c
@@ -16,7 +16,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $Id: group.c,v 1.15 2008/05/19 17:11:19 okan Exp $
+ * $Id: group.c,v 1.16 2008/05/19 17:13:55 oga Exp $
*/
#include "headers.h"
@@ -328,6 +328,9 @@ group_autogroup(struct client_ctx *cc)
}
}
+ if (strncmp("nogroup", group, 7) == 0)
+ return;
+
TAILQ_FOREACH(gc, &Groupq, entry) {
if (strcmp(shortcut_to_name[gc->shortcut], group) == 0) {
_group_add(gc, cc);
diff --git a/parse.y b/parse.y
index 5c5187c..6219960 100644
--- a/parse.y
+++ b/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.8 2008/05/18 19:43:50 oga Exp $ */
+/* $OpenBSD: parse.y,v 1.9 2008/05/19 17:13:55 oga Exp $ */
/*
* Copyright (c) 2002, 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -125,7 +125,7 @@ main : FONTNAME STRING {
struct autogroupwin *aw;
char *p;
- if ($2 < 1 || $2 > 9) {
+ if ($2 < 0 || $2 > 9) {
free($3);
yyerror("autogroup number out of range: %d", $2);
YYERROR;