Приложения с графическим интерфейсом не работают в 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
Другие вопросы по тегам