Вопрос или проблема
Я начал использовать пакет Win-Kex для создания графического интерфейса для WSL2 Kali Linux. Все работает нормально, однако просмотрщик tigerVNC выглядит размытным и трудным для чтения.
После расследования я выяснил, что это вызвано настройками масштабирования и компоновки Windows (которые установлены по умолчанию на 150%). Если я изменю это на 100%, Kali Linux выглядит нормально, но в таком случае иконки и текст Windows становятся слишком маленькими.
Я знал, что раньше был трюк, который позволял изменять параметры высокого DPI для отдельных приложений (однако, так как исполняемый файл размещен в WSL, я не могу использовать эту настройку)
Есть идеи, как это исправить?
Спасибо, Джек
Я думаю, что нашел решение этой проблемы на Windows 11. Я установил масштабирование на 100%. Затем я изменил размер текста в Настройках > Специальные возможности > Размер текста.
К сожалению, изменение размера текста также влияет на внешние экраны с низким разрешением.
Также, по крайней мере, на моем ноутбуке с Windows 10, масштабирование текста выглядит очень некрасиво (портит оформление приложений) и применяется только к некоторым элементам текста, оставляя другие и также иконки слишком маленькими.
Поэтому я был очень недоволен этим решением и продолжил поиски:
Диспетчер задач Windows сообщает нам путь к исполняемому файлу нашего VNC-клиента:
“\wsl.localhost\kali-linux\usr\lib\win-kex\TigerVNC\win-kex-win-x64”
Копируя это на наш диск Windows (и добавляя расширение .exe), мы можем изменить настройки совместимости:
Проводник Windows -> контекстное меню файла -> Свойства
-> Вкладка: Совместимость -> Изменить параметры высокого DPI
-> Установите флажок: “Переопределить поведение масштабирования высокого DPI.”
-> Выберите из выпадающего списка: “Приложение”
Поиск имени бинарного файла в реестре Windows показывает, что это сделало:
Папка: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
Ключ: C:\path-to-copy\win-kex-win-x64.exe
Тип: REG_SZ
Значение: ~ HIGHDPIAWARE
Отключив автоматически запущенный VNC-клиент (F8 -> отключить)
и используя копию для подключения к kali_linux_ip:5901,
мы можем заставить X-сервер Kali использовать родное разрешение вашего экрана.
Открытые вопросы:
- Можем ли мы как-то применить ту же настройку совместимости к оригинальному пути клиента?
Изменение ключа реестра с “C:\path-to-copy\win-kex-win-x64.exe”
на “\wsl.localhost\kali-linux\usr\lib\win-kex\TigerVNC\win-kex-win-x64” к сожалению, похоже, ничего не дает. - Как мы можем заставить kex запускать X-сервер с правильным родным разрешением?
Вы можете попробовать это решение, оно основано на ответе @xogoxec344 и вносит несколько изменений, мы можем найти и изменить исполняемую программу, отвечающую за запуск дистрибутива Kali WSL, и отрегулировать ее настройки DPI.
Мне удалось решить эту проблему таким образом.
Согласно документации WSL, мы можем запустить дистрибутив Kali WSL в CMD / PowerShell хост-системы Windows, выполнив kali
, что является сокращенной формой kali.exe
в CMD / PowerShell. На самом деле, kali.exe
соответствует исполняемому файлу, расположенному в одном из путей, входящих в переменную окружения системы Path
.
Итак, вы можете попробовать эти шаги:
-
найдите путь к
kali.exe
с помощью командыGet-Command -ShowCommandInfo kali
-
откройте папку, содержащую
kali.exe
, с помощью Проводника Windows -
Щелкните правой кнопкой мыши на
kali.exe
и выберитеСвойства
в контекстном меню. -
Перейдите на вкладку
Совместимость
и нажмитеИзменить параметры высокого DPI
. -
В появившемся подокне выберите
Использовать эту настройку для исправления проблем с масштабированием для этой программы вместо той, что в настройках
Вы также можете обратиться к моему посту https://pwnfan.github.io/en/post/Issues-Series-Blurry-Screen-in-Kali-When-Connecting-By-Win-KeX-In-WSL/ для получения подробностей.
Ответ или решение
Разрешение экрана Win-Kex: Решение проблемы с размытием и масштабированием
Использование пакета Win-Kex для создания графического интерфейса пользователя (GUI) на базе WSL2 с Kali Linux может столкнуться с проблемами при настройке разрешения экрана и масштабирования. Наиболее распространенной проблемой является размытость изображений и текста, особенно при использованной настройке масштабирования Windows по умолчанию в 150%. Данная статья предлагает эффективные способы решения этих вопросов.
Причины проблемы
Проблема размытости в TigerVNC-клиенте, встроенном в Win-Kex, возникает из-за того, что Windows применяет масштабирование к приложениям, которые не поддерживают High DPI. При настройке Windows на 150% масштабирования текст и изображения в Kali Linux становятся нечёткими и сложно читаемыми. Однако, с уменьшением масштабирования до 100% текст Windows становится слишком маленьким, что вызывает неудобства при использовании.
Решение проблемы с помощью настройки совместимости
Вы можете улучшить отображение, используя настройки совместимости приложения. Вот несколько шагов, которые помогут вам в этом:
-
Копирование исполняемого файла VNC клиента:
- Найдите путь к исполняемому файлу в Windows, как указано в диспетчере задач. Это будет что-то вроде
\wsl.localhost\kali-linux\usr\lib\win-kex\TigerVNC\win-kex-win-x64
. - Скопируйте этот файл в папку на своем Windows-диске и добавьте
.exe
в конец имени файла.
- Найдите путь к исполняемому файлу в Windows, как указано в диспетчере задач. Это будет что-то вроде
-
Настройка совместимости:
- Откройте Проводник Windows и найдите скопированный файл.
- Щелкните правой кнопкой мыши по файлу и выберите "Свойства".
- Перейдите на вкладку "Совместимость" и нажмите "Изменить параметры высокого DPI".
- Установите флажок "Применить это исправление масштабирования для этой программы, а не для параметров в настройках".
- В выпадающем меню выберите "Приложение" и нажмите "ОК".
Эти шаги позволят Kali’s X-серверу использовать родное разрешение вашего экрана при соединении с помощью нового исполняемого файла.
Решения для изменения разрешения X-сервера при запуске Win-Kex
Для того чтобы указать Win-Kex запускать X-сервер с корректным разрешением, вы можете попробовать один из следующих подходов:
-
Изменение настроек запуска через PowerShell:
Запустите Kali WSL через PowerShell, используйте командуkali
и измените использование разрешения, указав параметры для X-сервера. -
Настройка скрипта запуска:
Измените скрипт, запускающий Win-Kex, для передачи дополнительных параметров, отвечающих за разрешение и масштабирование.
Открытые вопросы
Несмотря на предложенные решения, у пользователей остаются важные вопросы:
-
Применение настроек совместимости к оригинальному пути клиента:
К сожалению, изменения в реестре, указывая на оригинальный путь, не всегда эффективны. Точно определить место, где система будет учитывать изменения, может быть сложно. -
Автоматизация и улучшение процесса:
Разработка скриптов для автоматического исправления параметров разрешения при старте Kali WSL может улучшить удобство использования.
Заключение
Проблемы с разрешением экрана и масштабированием при использовании Win-Kex в WSL2 могут быть решены путем корректной настройки совместимости исполняемых файлов и создания инструментов для улучшения качества отображения. С помощью описанных методов вы сможете улучшить читабельность интерфейса Kali Linux, сохранив комфортные параметры работы на Windows.