Sottosistema Cygwin / X e Windows per Linux


14

Ho un'installazione Cygwin funzionante sul mio dispositivo Windows 10 (un Surface 3, nel caso sia importante), incluso un ambiente con finestre Xorg funzionante. Ho appena iniziato a sperimentare anche con il sottosistema Windows per Linux. Sembra che il consiglio per l'esecuzione di applicazioni GUI da WSL sia quello di installare un altro server X. Di solito è raccomandato Xming, ma non ho visto alcun suggerimento che Cygwin non dovrebbe funzionare.

Tuttavia, il modo semplice non riesce:

WSL $ export DISPLAY=:0
WSL $ emacs &
Display :0 unavailable, simulating -nw

Ho sospettato che potrebbe essere un problema di rete, a causa di

WSL $ telnet localhost 6000
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
WSL $ /sbin/ifconfig
Warning: cannot open /proc/net/dev (No such file or directory). Limited output.
WSL $ # there was no output at all, actually

... ma ssh su una macchina remota funziona bene, e apparentemente Xserver ha smesso di ascoltare sulla porta 6000 dall'ultima volta che ne ho eseguito il debug.

Ho provato a correre cygwin $ xhost +localhost, solo per scoprire che xhostnon è attualmente installato lì. Quale potrebbe essere la prossima cosa da provare, o potrebbe essere una caccia all'oca selvatica --- xhost(o almeno un nudo xhost +) è stata per lo più scoraggiata l'ultima volta che ho eseguito il debug di un server X.

C'è qualche difetto fondamentale che impedisce a WSL di utilizzare il server Cygwin X? In caso contrario, come devo procedere?


1
Poiché stai utilizzando un dispositivo DPI elevato (Surface 3), questo trucco aggiuntivo potrebbe esserti utile. È possibile aumentare la dimensione del carattere, la dimensione della finestra, ecc., Cambiando ciò che CygwinX pensa che sia il DPI dello schermo. Modifica /etc/X11/Xresourcese modifica il Xft.dpivalore predefinito da 96. Il tuo schermo dovrebbe essere di 214 DPI, quindi il testo deve apparire abbastanza piccolo tramite CygwinX. Indipendentemente da ciò, è possibile modificare quel valore DPI per modificare il ridimensionamento a proprio piacimento. (Basta riavviare CygwinX tra le modifiche.)
Chris

Risposte:


15

Devi dire a Cygwin / X di ascoltare TCP, cosa che non funziona per impostazione predefinita. Puoi farlo passando l'opzione -listen tcpa XLaunch. Quando lo fai, funziona davvero bene. In realtà preferisco Cygwin / X a Xming. Maggiori dettagli nel manuale .


Trova il collegamento che stai utilizzando per avviare Cygwin / X. (I collegamenti di avvio per utente sono attivi C:\Users\<you>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup, mentre i collegamenti di avvio a livello di sistema sono attivi C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp. Apri le "Proprietà" di questo link e cambia la destinazione da

C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; exec /usr/bin/startxwin"

per

C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; exec /usr/bin/startxwin -- -listen tcp"

Per il xauthsupporto, è necessario copiare ~/.Xauthoritydalla home directory di Cygwin alla home directory di WSL.

Oppure, se si desidera disabilitare xauth, è possibile modificare Cygwin /usr/bin/startxwin, cambiando la riga appropriata in alto a enable_xauth=0.


Mi ha funzionato aggiungendo -listen tcp al campo del pannello di XLaunch quando ho fatto clic su XLaunch nel menu Start. Non ho potuto modificare la proprietà con la voce di menu per modificare l'argomento della riga di comando.
Yu Shen,

0

Devi avviare il server X con startx. Se non hai installato X Windows, esegui Cygwin setup.exee seleziona tutti i sistemi X Windows e un gestore di finestre.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.