Mark J. Reed
Fri Aug 31 13:32:00 GMT 2007
>> Make sure the X server is running first (run 'startxwin').
> > This might not sufficient - at least it is not in my system:
> > Even when you start the X server (in my case in multiwindow
> > mode), but then try to start xterm from a CMD Cygwin shell
> > (such as from the shell you get when opening the Cygwin
> > icon which is created by default when you setup Cygwin initially),
> > you get the above error message.
X allows individual programs running on one computer to display
selectively on a different one over the network, which is quite handy.
You can also have multiple X servers running on the same host, thanks
to things like virtual consoles, Xnest, Xvnc, etc.
But that means that an X client can't safely make assumptions about
where the X server is. So you have to tell it.
You do this by supplying a display identifier string. In the usual
case, a single X server on the same machine as the program, the
display identifier is almost always ":0".
How do you provide this information? The usual way is by setting the
environment variable DISPLAY. If you have a shell that was started up
by an X program (like xterm or rxvt), that shell will inherit the
value of DISPLAY (if you type "echo $DISPLAY" you will see it). So
that shell can automatically start up X programs; they will show up on
the same display as the window you type their command in.
However, a plain Cygwin shell running in a Windows command window has
no knowledge of X by default, and no DISPLAY variable set. So when
you try to run an X program it complains about not being able to open
the display - because you haven't told it which display to open. (Not
the most informative error message, and it probably ought to default
to :0, but I'm just the messenger. :))
You can tell each program manually where to display:
$ xterm -display :0
Or you can just set DISPLAY yourself first:
If you're always (or almost always) going to have X running, you can
put the export command in your .bash_profile so that you can always
start X programs. But that can cause difficulties - some programs,
such as vim, behave differently when DISPLAY is set, and may hang for
a while trying to get some information about the X environment if
DISPLAY is set when X isn't really running.
Mark J. Reed <firstname.lastname@example.org>
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
More information about the Cygwin-xfree