Вопрос или проблема
Я пытаюсь использовать графические приложения на Windows 11 через WSL и WSLg. К сожалению, моему графическому приложению нужны нестандартные шрифты (в частности, xfonts-100dpi
и xfonts-75dpi
). Поскольку WSLg не включает эти шрифты, моё графическое приложение вылетает.
Как я могу установить эти шрифты и сделать их доступными для WSLg (сервера x11)?
Я установил их для самого WSL, но, похоже, они не совместимы с WSLg. Даже ручное копирование файлов шрифтов из /usr/share/fonts
в /mnt/wslg/fonts
не изменило ситуацию.
Похоже, вы используете более старую версию WSL, которая была включена в Windows 11 как функция Windows.
Поддержка использования шрифтов из вашей дистрибуции в WSLg была добавлена совсем недавно в версии WSL, которую теперь можно установить как пакет приложения из Microsoft Store. Это происходит путем монтирования вашей текущей дистрибуции внутрь системной дистрибуции WSLg и (предположительно, но я этого не проверял) создания символических ссылок или точек монтирования /usr/share/fonts
в WSLg, чтобы указать на эквиваленты вашей дистрибуции.
Чтобы установить новую версию, выполните одно из следующих действий:
-
Убедитесь, что вы на Windows 11 22H2
-
Выйдите из WSL
-
Запустите обычную оболочку PowerShell (не администраторскую) и выполните:
wsl --shutdown wsl --update wsl --version
-
Если это не сработает, или если вы на Windows 11 21H2, то просто вручную установите новое обновление со своей страницы Microsoft Store.
Примечание: пользователи Windows 10 теперь также могут обновиться до этой версии (и использовать WSLg). Смотрите этот вопрос для получения более подробной информации о необходимых условиях.
Ответ или решение
Установка пользовательских шрифтов в WSL/WSLg для GUI-приложений
Использование графических приложений в Windows 11 через WSL (Windows Subsystem for Linux) и WSLg (графическая подсистема для Linux) предоставляет множество удобств, но иногда возникает необходимость в установке пользовательских шрифтов, таких как xfonts-100dpi
и xfonts-75dpi
. Если ваш GUI-приложение требует эти шрифты, но они не доступны в WSLg, вы можете столкнуться с проблемами: приложение может просто не запускаться или аварийно завершать работу. В этой статье мы рассмотрим шаги по установке шрифтов и их интеграции в WSLg.
Шаг 1: Убедитесь, что у вас установлена последняя версия WSL
Начиная с обновления WSL, доступного в Microsoft Store, добавлена поддержка шрифтов вашей дистрибуции в WSLg. Чтобы установить актуальную версию WSL, следуйте следующему порядку действий:
- Убедитесь, что на вашем компьютере установлена Windows 11 версии 22H2.
- Закройте WSL. Это можно сделать простым закрытием терминала.
- Откройте обычный PowerShell (без прав администратора) и выполните следующие команды:
wsl --shutdown
wsl --update
wsl --version
- Если команды обновления не сработали, или вы находитесь на версии Windows 11 21H2, то загрузите новую версию WSL вручную с этой страницы Microsoft Store.
Шаг 2: Установка необходимых шрифтов
После обновления WSL необходимо установить нужные шрифты. В данном случае, речь идет о шрифтах xfonts-100dpi
и xfonts-75dpi
. Выполните следующие команды в терминале WSL:
sudo apt update
sudo apt install xfonts-100dpi xfonts-75dpi
После установки шрифтов подразумевается, что они будут автоматически доступны для использования в WSLg.
Шаг 3: Проверка доступности шрифтов
Чтобы удостовериться, что шрифты корректно установлены и интегрированы, вы можете выполнить команду:
fc-list | grep -E '100dpi|75dpi'
Если шрифты отображаются в списке, значит установка прошла успешно.
Шаг 4: Перезапустите WSLg
После завершения установки и проверки шрифтов рекомендуется перезапустить WSLg, чтобы изменения вступили в силу:
- В PowerShell выполните команду:
wsl --shutdown
- Запустите ваше GUI-приложение заново в WSL.
Заключение
Если все выполненные шаги выполнены корректно, ваше GUI-приложение должно теперь корректно отображаться с новыми шрифтами. Таким образом, установка пользовательских шрифтов в WSLg — это процесс, который, хотя и требует нескольких этапов, по сути не сложен. Убедитесь, что у вас установлена актуальная версия WSL, а необходимые шрифты корректно добавлены и доступны для использования.
Для дальнейших улучшений производительности и стабильности работы приложений в WSLg следите за обновлениями Windows и WSL, а также не забывайте проверять документацию на предмет изменения в структуре шрифтов и их поддержке.