Серверная (www.it-simple.ru)

Steam под WINE: окна без текста


Родной клиент Steam для Linux существует уже больше года. Для родной платформы доступно около трёхсот игр, тем не менее, многих отличных игр там нет. Поэтому параллельно с родным клиентом держу ещё и вайновский — это лучше, чем держать целую винду. Эдакий компромисс.

С недавних пор вайновский стим стал показывать при запуске пустые окна. Текста заголовков (подсказок) нет, ввод не отображается (тем не менее, он есть), менюшек не видно. То есть, в окнах отсутствует любая текстовая информация.

Поиск в интернете ни к чему не привёл. Максимум, что советовали — добавить в вайн микрософтовские шрифты или откатиться на пару версий назад. То есть, стандартный набор нерабочих советов.

В итоге, всё оказалось достаточно просто.

Для улучшения красоты и производительности, виндовый стим отрисовывает текст в своих окнах через DirectWrite — модуль DirectX, предназначенный для прямого (минуя стандартные окошечки) рисования текста в видеокарту. Надо, чтобы он так не делал. И есть как минимум два способа, чтобы заставить его.

1. Через реестр

wine regedit

Ищем раздел "HKEY_CURRENT_USER\Software\Valve\Steam" и создаём в нём ключ типа "DWORD" по имени "DWriteEnable" со значением "0".
Стим начинает рисовать текст другими средствами, проблема исчезает навсегда.

2. Средствами командной строки

К строке запуска программы добавляем параметр "-no-dwrite". Типа того:

wine steam.exe -no-dwrite

Этот параметр относится к Стиму, а не к Вайну и делает ровно то же самое, что и настройка реестра, только в рамках одного запуска.