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.

  • 1
    Sounds like the X11 server isn't running. Have you worked through the steps at x.cygwin.com ?
    – thrig
    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.
    – John
    Sep 6, 2015 at 17:17

7 Answers 7


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.


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=, 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>


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
    – theRiley
    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 and xinit.
  • Run this commands in a Cygwin shell window:


    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:

  1. For my command in /etc/bash.bashrc:
export DISPLAY=:0.0
  1. 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"
  1. Start your graph application from terminal, for example:

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.