web-dev-qa-db-fra.com

Cygwin sous Windows: impossible d'ouvrir l'affichage

J'utilise Windows 10 sur ma Surface Pro 3. J'ai installé Cygwin et j'ai également ajouté des packages utiles (gvim, nedit, emacs, vim, g ++). Cependant, lorsque j'exécute gvim, j'obtiens "Impossible d'ouvrir l'affichage". La même chose se produit avec nedit. Lorsque j'ai fait écho à $ DISPLAY, je n'ai rien montré, j'ai donc réglé DISPLAY sur: 0.0. J'obtiens toujours "impossible d'ouvrir l'écran". J'ai essayé de supprimer cygwin et de réinstaller, mais j'obtiens le même problème.

27
John

Les programmes GUI Unix s'affichent via un serveur X . Cygwin ne démarre pas automatiquement un serveur X. Vous devez installer les packages xorg-server et xinit, et exécutez startxwin .

Source: FAQ CygwinX :

Depuis le serveur X 1.17, par défaut, le serveur n'écoute pas les connexions TCP/IP, acceptant uniquement les connexions locales sur un socket de domaine Unix. Pour les clients locaux, utilisez DISPLAY=:0.0, plutôt que DISPLAY=localhost:0.0, DISPLAY=127.0.0.1:0.0, DISPLAY=::1:0.0, etc

Si cela ne fonctionne pas (si vous vous connectez à distance): utilisez le -listen tcp option pour restaurer le comportement précédent, permettant également au serveur X d'ouvrir un socket TCP/IP, par exemple.

startxwin -- -listen tcp

Enfin, n'oubliez pas d'exécuter xhost + dans le terminal Cygwin.

9
WhoCares

Ce qui m'a aidé change

DISPLAY=:0.0 <mycommand>

à

DISPLAY=localhost:0.0 <mycommand>
4
Andriy

Vous pouvez également utiliser XLaunch/Xming .

  • Ouvrez XLaunch, choisissez "Plusieurs fenêtres" et définissez un numéro d'affichage (peu importe).
  • À Cygwin, export DISPLAY=[whatever your XLaunch Display number is].
  • Lancez votre programme avec gvim &
2
rubynorails

Comment je l'ai fait fonctionner:

  • Installer les packages xorg-server et xinit.
  • Exécutez ces commandes dans une fenêtre Cygwin Shell:

    startxwin

    DISPLAY=localhost:0.0 xterm

Cependant, pour être honnête, la console CygWin par défaut est plus agréable que XTerm, j'ai donc continué à l'utiliser.

1
Contango