Приложения с графическим интерфейсом не работают в WSL2 для Windows 11
При запуске приложения с графическим интерфейсом у меня нет сообщения об ошибке, но окно не появляется. Моя переменная отображения установлена на 192.168.128.1:0 (не знаю, поможет ли это).
Работаю на ноутбуке AMD с Ryzen 5 2500U.
2 ответа
На данный момент я собираюсь сделать предположение, но, пожалуйста, отредактируйте свой вопрос, указав дополнительные подробности, которые я запросил в комментариях, чтобы мы могли быть уверены, что другим пользователям в будущем будет легче найти ваш вопрос.
Мое предположение:
- Раньше вы использовали Windows 10
- В какой-то момент вы либо использовали X-сервер (например, VcXsrv или GWSL) под WSL в Windows 10, либо пытались это сделать.
- Вы обновили выпуск Windows 10 до Windows 11.
- Вы побежали
wsl --update
в Windows 11, чтобы обновить выпуск WSL, включив в него WSLg. - Теперь вы пытаетесь использовать функцию WSLg в Windows 11 для запуска приложений с графическим интерфейсом.
Из192.168.128.1:0
заставляет меня так думать, поскольку по умолчанию$DISPLAY
в недавно установленной Windows 11 Ubuntu будет просто:0
.
Пытаться:
cd ~
grep -r --exclude-dir=* DISPLAY
Если вы обнаружите какие-либо результаты в файлах конфигурации запуска, таких как.bashrc
, отредактируйте файлы запуска, чтобы удалить все пользовательские настройки ЭКРАНА, которые вы сделали ранее.
у меня именно такая проблема
~$ grep DISPLAY .bashrc
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 # in WSL 2
Это касается «Ubuntu для Windows», которая стояла на моей машине, когда я обновил ее до Win11, и которую впоследствии я обновил до Jammy Jellyfish 22.04.03.
Я также получил Ubuntu 22.04.02 из Магазина Windows и установил ее после обновления до Windows 11. Никаких проблем с графическим интерфейсом не было. и его ДИСПЛЕЙ был установлен на ":0"
declare -x DISPLAY=:0
работал отлично. Итак, все так, как сказал @NotTheDr01ds, но я могу утверждать, что проблема в файле .bashrc, и, прокомментировав эту строку, она будет решена - я не знаю, где она устанавливается, но вам не нужно явно устанавливать для DISPLAY значение :0
~$ grep -B1 DISPLAY ~/.bashrc
# from https://wiki.ubuntu.com/WSL#Running_Graphical_Applications
# export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0 # in WSL 2