summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--calmwm.c15
-rw-r--r--calmwm.h2
-rw-r--r--cwm.111
3 files changed, 23 insertions, 5 deletions
diff --git a/calmwm.c b/calmwm.c
index ab0142e..8cab0db 100644
--- a/calmwm.c
+++ b/calmwm.c
@@ -55,10 +55,15 @@ main(int argc, char **argv)
 	int ch;
 	int conf_flags = 0;
 
+	char *display_name = NULL;
+
 	DefaultFontName = "sans-serif:pixelsize=14:bold";
 
-	while ((ch = getopt(argc, argv, "sf:")) != -1) {
+	while ((ch = getopt(argc, argv, "d:sf:")) != -1) {
 		switch (ch) {
+		case 'd':
+			display_name = optarg;
+			break;
 		case 's':
 			conf_flags |= CONF_STICKY_GROUPS;
 			break;
@@ -69,6 +74,8 @@ main(int argc, char **argv)
 			errx(1, "Unknown option '%c'", ch);
 		}
 	}
+	argc -= optind;
+	argv +- optind;
 
 	/* Ignore a few signals. */
         if (signal(SIGPIPE, SIG_IGN) == SIG_ERR)
@@ -83,7 +90,7 @@ main(int argc, char **argv)
 	conf_setup(&G_conf);
 	G_conf.flags |= conf_flags;
 	client_setup();
-	x_setup();
+	x_setup(display_name);
 	G_starting = 0;
 
 	xev_init();
@@ -108,7 +115,7 @@ main(int argc, char **argv)
 }
 
 void
-x_setup(void)
+x_setup(char *display_name)
 {
 	int i;
 	struct screen_ctx *sc;
@@ -116,7 +123,7 @@ x_setup(void)
 
 	TAILQ_INIT(&G_screenq);
 
-	if ((G_dpy = XOpenDisplay("")) == NULL)
+	if ((G_dpy = XOpenDisplay(display_name)) == NULL)
 		errx(1, "%s:%d XOpenDisplay()", __FILE__, __LINE__);
 
 	XSetErrorHandler(x_errorhandler);
diff --git a/calmwm.h b/calmwm.h
index 0f5b4b8..11c922e 100644
--- a/calmwm.h
+++ b/calmwm.h
@@ -285,7 +285,7 @@ struct mwm_hints {
 int input_keycodetrans(KeyCode, u_int, enum ctltype *, char *, int);
 
 int   x_errorhandler(Display *, XErrorEvent *);
-void  x_setup(void);
+void  x_setup(char *display_name);
 char *x_screenname(int);
 void  x_loop(void);
 int   x_setupscreen(struct screen_ctx *, u_int);
diff --git a/cwm.1 b/cwm.1
index 9cb9290..490ae52 100644
--- a/cwm.1
+++ b/cwm.1
@@ -10,6 +10,7 @@
 .Sh SYNOPSIS
 .\" For a program:  program [-abc] file ...
 .Nm cwm
+.Op Fl d Ar display
 .Op Fl s 
 .Op Fl f Ar fontname
 .Sh DESCRIPTION
@@ -104,6 +105,8 @@ The options for
 .Nm
 are as follows:
 .Bl -tag -width Ds
+.It Fl d Ar display
+Specify the display to use.
 .It Fl s
 Set sticky group mode on.
 The default behavior for new windows is to not assign any group.
@@ -204,6 +207,14 @@ and
 .Xr xlock 1 ,
 respectively.
 
+.Sh ENVIRONMENT
+.TP
+DISPLAY
+.Nm
+starts on this display unless the
+.Fl d
+option is given.
+
 .Sh ACKNOWLEDGEMENTS
 .Nm
 contains some code from 9wm.