Cygwin / X та підсистема Windows для Linux


14

У мене на пристрої Windows 10 функціонує установка Cygwin (поверхня 3, якщо це має значення), включаючи функціонуюче середовище вікон Xorg. Я також почав експериментувати з підсистемою Windows для Linux. Схоже, порада для запуску GUI-програм із WSL полягає у встановленні іншого X-сервера. Зазвичай рекомендується Xming, але я не бачив жодних припущень щодо того, що Cygwin не повинен працювати.

Однак простий спосіб не вдається:

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

Я підозрював, що це може бути проблема з мережею через

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

... але ssh на віддаленій машині працює чудово, і, мабуть, Xservers перестали слухати на порту 6000 з моменту останнього моменту налагодження.

Я спробував запустити cygwin $ xhost +localhost, лише щоб виявити, що xhostнаразі там не встановлено. Що може бути наступна річ , щоб спробувати, чи може бути дикий гусак гонитва --- xhost(або , по крайней мере, голий xhost +) був в основному НЕ рекомендується в останній раз я налагоджений сервер X.

Чи є якийсь фундаментальний недолік, який заважає WSL використовувати сервер Cygwin X? Якщо ні, то як мені діяти?


1
Оскільки ви використовуєте пристрій високої DPI (Surface 3), цей додатковий трюк може бути корисним для вас. Ви можете збільшити розмір шрифту, розмір вікна тощо, що відображається, змінивши те, що CygwinX вважає екраном DPI. Відредагуйте /etc/X11/Xresourcesта змініть за Xft.dpiзамовчуванням 96. Ваш дисплей повинен бути 214 DPI, тому текст CygwinX повинен виглядати зовсім крихітно. Незалежно від цього, ви можете налаштувати це значення DPI, щоб змінити масштабування на свій смак. (Просто перезапустіть CygwinX між змінами.)
Кріс

Відповіді:


15

Потрібно сказати Cygwin / X прослухати TCP, що за замовчуванням не робить. Ви робите це, передаючи опцію -listen tcpв XLaunch. Коли ви це робите, це працює дуже добре. Я дійсно віддаю перевагу Cygwin / X перед Xming. Детальніше в посібнику .


Знайдіть ярлик, який ви використовуєте для запуску Cygwin / X. (Клавіші швидкого запуску для користувачів є C:\Users\<you>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup, а ярлики запуску загальносистемні - C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp. Відкрийте "Властивості" цього посилання та змініть ціль із

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

до

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

Для xauthпідтримки вам слід скопіювати ~/.Xauthorityз домашнього режиму Cygwin до домашнього dir вашого WSL.

Або якщо ви хочете відключити xauth, ви можете відредагувати Cygwin /usr/bin/startxwin, змінивши відповідний рядок у верхній частині на enable_xauth=0.


Мені це спрацювало, додавши -listen tcp до поля панелі XLaunch, коли я натиснув XLaunch у меню «Пуск». Я не зміг змінити властивість за допомогою пункту меню, щоб змінити аргумент командного рядка.
Ю. Шень

0

Ви повинні запустити X-сервер startx. Якщо у вас не встановлено X Windows, запустіть Cygwin setup.exeта виберіть усі системи X Windows та менеджер вікон.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.