I am running Windows 10 on my Surface Pro 3. I installed Cygwin and also added some useful packages (gvim, nedit, emacs, vim, g++). However, when I run gvim, I get "Can't open display". The same thing happens with nedit. When I did echo $DISPLAY, I showed nothing so I set the DISPLAY to :0.0. I still get "can't open display." I tried removing cygwin and re-installing but I get the same problem.
-
1Sounds like the X11 server isn't running. Have you worked through the steps at x.cygwin.com ?– thrigCommented Sep 6, 2015 at 17:11
-
Let me also clarify that I am running Cygwin on my machine, where I am an admin. Yes, I did install the x11 packages, and looked through the x11 issues but that doesn't solve the problem.– JohnCommented Sep 6, 2015 at 17:17
7 Answers
Unix GUI programs display through an X server. Cygwin doesn't automatically start an X server. You need to install the packages xorg-server
and xinit
, and run startxwin
.
-
5As of 2017/01, startxwin is included in the xinit package Commented Jan 20, 2017 at 19:58
Source : CygwinX FAQ :
Since X server 1.17, by default the server does not listen for TCP/IP connections, only accepting local connections on a unix domain socket.
For local clients, use DISPLAY=:0.0
, rather than DISPLAY=localhost:0.0
, DISPLAY=127.0.0.1:0.0
, DISPLAY=::1:0.0
, etc
If it does not work (if you are connecting from remote): Use the -listen tcp
option to restore the previous behaviour, allowing the X server to open a TCP/IP socket as well e.g.
startxwin -- -listen tcp
Finally, don't forget to run xhost +
in the Cygwin terminal.
What helped me is changing
DISPLAY=:0.0 <mycommand>
to
DISPLAY=localhost:0.0 <mycommand>
-
odd, running locally, after installing all the packages and first running xlaunch with the default display (0), the following command works for me: DISPLAY=:0.0 gimp– theRileyCommented Mar 12, 2019 at 18:15
You can also use XLaunch/Xming.
- Open XLaunch, choose "Multiple Windows", and set a Display number (doesn't matter).
- In Cygwin,
export DISPLAY=[whatever your XLaunch Display number is]
. - Launch your program with
gvim &
How I got it working:
- Install packages
xorg-server
andxinit
. Run this commands in a Cygwin shell window:
startxwin
DISPLAY=localhost:0.0 xterm
However, to be honest, the default CygWin console is nicer than XTerm, so I continued to use that.
I run graphic programs without a script, i.e. startxwin <myapp>
the following way:
- For my command in
/etc/bash.bashrc
:
export DISPLAY=:0.0
- Start the XWin Server with the standard command:
C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; exec /usr/bin/startxwin"
- Start your graph application from terminal, for example:
/bin/kate
P.S. I solved my error with Eclipse IDE:
qt.qpa.screen: QXcbConnection: Could not connect to display <...>
Could not connect to any X display.
I added a Windows system variable: DISPLAY=:0.0
just export it
export DISPLAY=localhost:0.0
to make persistant add that to your .bash_profile