Улучшение графического интерфейса приложений Wine

Во многих случаях Windows-программы работают нормально в Wine, но все еще существует досадная проблема их появления.

Как заставить вещи выглядеть лучше в Wine, особенно шрифты?

6 ответов

Решение

Приведенное ниже решение должно рассматриваться в контексте прогресса, достигнутого playonlinux - который теперь очень в состоянии обеспечить из коробки, по крайней мере для программ, рассмотренных, когда этот ответ был впервые опубликован, таких как foobar2000, необходимые настройки для лучший внешний вид графических приложений Wine.

Если вам не нравится Playonlinux и вы используете только Wine напрямую, не стесняйтесь комментировать и / или редактировать этот ответ по вопросам, связанным только с Wine.

Рассматривая тематику GTK в Wine: смотрите последнюю часть этого ответа.


  • Наиболее важным улучшением, касающимся шрифтов, является включение сглаживания шрифтов - сохраните скрипт ниже как winefontssmoothing_en.sh и запустить в Терминале с помощью команды bash winefontssmoothing_en.sh:
#!/bin/sh
# Quick and dirty script for configuring wine font smoothing
#
# Author: Igor Tarasov <tarasov.igor@gmail.com>

WINE=${WINE:-wine}
WINEPREFIX=${WINEPREFIX:-$HOME/.wine}
DIALOG=whiptail

if [ ! -x "`which "$WINE"`" ]
then
    echo "Wine was not found. Is it really installed? ($WINE)"
    exit 1
fi

if [ ! -x "`which "$DIALOG"`" ]
then
    DIALOG=dialog
fi

TMPFILE=`mktemp` || exit 1

$DIALOG --menu \
    "Please select font smoothing mode for wine programs:" 13 51\
    4\
        1 "Smoothing disabled"\
        2 "Grayscale smoothing"\
        3 "Subpixel smoothing (ClearType) RGB"\
        4 "Subpixel smoothing (ClearType) BGR" 2> $TMPFILE

STATUS=$?
ANSWER=`cat $TMPFILE`

if [ $STATUS != 0 ]
then 
    rm -f $TMPFILE
    exit 1
fi

MODE=0 # 0 = disabled; 2 = enabled
TYPE=0 # 1 = regular;  2 = subpixel
ORIENTATION=1 # 0 = BGR; 1 = RGB

case $ANSWER in
    1) # disable
        ;;
    2) # enable
        MODE=2
        TYPE=1
        ;;
    3) # enable cleartype rgb
        MODE=2
        TYPE=2
        ;;
    4) # enable cleartype bgr
        MODE=2
        TYPE=2
        ORIENTATION=0
        ;;
    *)
        rm -f $TMPFILE
        echo Unexpected option: $ANSWER
        exit 1
        ;;
esac

echo "REGEDIT4

[HKEY_CURRENT_USER\Control Panel\Desktop]
\"FontSmoothing\"=\"$MODE\"
\"FontSmoothingOrientation\"=dword:0000000$ORIENTATION
\"FontSmoothingType\"=dword:0000000$TYPE
\"FontSmoothingGamma\"=dword:00000578" > $TMPFILE

echo -n "Updating configuration... "

$WINE regedit $TMPFILE 2> /dev/null

rm -f $TMPFILE

echo ok

выберите третью опцию в терминале - стрелками, затем используйте клавишу табуляции, чтобы выбрать ok и "ввод"

введите описание здесь

(источник здесь)

  • Для лучшего внешнего вида системы установите файл Windows msstyle в winecfg (Wine/Configure Wine/Desktop Integration), например, "Luna" или "Royale".

введите описание здесь

  • Увеличьте разрешение экрана в winecfg (Wine/Configure Wine/Graphics), который увеличит общие детали (включая шрифты) (если это то, что вам нужно: на моем ноутбуке детали винных программ по умолчанию слишком малы)

введите описание здесь

Но изображения выше взяты после включения сглаживания шрифта. Это самое важное действие, которое я смог проверить. Поскольку в какой-то момент мне пришлось переустановить Wine, мне также пришлось перезапустить все процедуры здесь. Используя все другие решения (включая установку всех шрифтов, как предложено в ответе Shauna - что очень желательно, и следует рассматривать как часть решения этого вопроса) - за исключением сглаживания шрифтов, Foobar2000 выглядел так:

введите описание здесь

После сглаживания шрифта:

введите описание здесь

Важно: изменение настроек в winecfg может сбросить сглаживание шрифтов, так что лучше запустить его в конце или снова включить, если шрифты кажутся уродливыми.


Учитывая тематику GTK в Wine

(упоминается в этом более недавнем ответе), результаты могут отличаться в зависимости от рабочего стола Linux и различных приложений. Тематизация GTK в вино, кажется, вопрос предпочтений, как это спорно выглядит ли тема GTK на программу Windows, лучше, чем Windows-тематизации.

Пример для Foobar2000:

В Ubuntu:

В элементарной ОС:

Немного улучшений по сравнению с msstyle Luna по умолчанию в Playonlinux:

В Playonlinux GTK тематика кажется отсутствующей даже при наличии последней доступной версии Wine-staging, так как при добавлении версии Wine-staging к виртуальному диску в Playonlinux в конфигурации Wine для этого диска появляется вкладка "Staging", но "Enable GTK Theming" серым цветом.

Это потому, что нужна не какая-либо постановочная версия вина, а winwhq-staging пакет, который не может быть установлен в Playonlinux.

ОБНОВЛЕНИЕ: я вижу, что в более поздних версиях Playonlinux на дату этого редактирования (ноябрь 2018) промежуточные версии wine в Playonlinux вообще не отображались с серой опцией gtk, упомянутой выше.

Обязательно установите шрифты:

winetricks allfonts

Проблемы со шрифтами обычно связаны с тем, что программа использует шрифты TrueType, которые не поставляются с Linux или Wine. Установка их через Winetricks (которая поставляется с текущими версиями Wine), должна решить проблему со шрифтами.

Прежде всего... Этот раздел помог мне настроить Wine, чтобы получить правильный внешний вид для Photoshop CS6.

Иногда winetricks allfonts не очень хорошо работает Иногда вы можете получить ошибки в сумме SHA1 для некоторых шрифтов, если они обновлены и еще не отражены в скрипте winetricks.

Текущая версия winetricks в репозитории для шрифта Droid указывает на http://android.git.kernel.org/ которая в настоящее время недоступна из-за хакеров:

sudo gedit /usr/bin/winetricks

Ищите что-то вроде этого:

load_droid()
{
# See http://en.wikipedia.org/wiki/Droid_(font)

И измените DROID_URL вокруг строки 6867 на:

DROID_URL='https://www.codeaurora.org/gitweb/quic/la/?p=platform/frameworks/base.git;a=blob_plain;f=data/fonts/'

Мне также пришлось изменить сумму SHA1 для шрифта "Droid Sans Fallback", расположенную около 6059 строки:

do_droid DroidSansFallback.ttf     "Droid Sans Fallback"     2f8a266389a8e22f68f402b775731eec6b760334

Если вы получили какую-либо другую ошибку, найдите "имя-шрифта" и вычислите новый SHA1 и измените значение в winetricks:

cd ~/.cache/winetricks/font-folder
sha1sum font-name
sudo gedit /usr/bin/winetricks

И измените значение с новым расчетом!

Этот совет работает и с Elementary OS. Но вам нужно изменить gedit и использовать scratch-text-editor.

Для лучшего внешнего вида системы установите файл Windows msstyle в winecfg (Wine/Configure Wine/Desktop Integration), например, "Luna" или "Royale".

У меня нет репутации комментировать принятый ответ, поэтому я оставлю свой комментарий здесь.

Еще один официальный файл msstyle с серверов MS.

Тема Zune от Microsoft.com

Просто установил .msi файл, и я смог выбрать "стиль Zune" из диалога настройки вина.

У вин-постановки теперь есть возможность для тематики GTK. Чтобы использовать это:

1. Сначала установите winehq-staging:

С https://wiki.winehq.org/Ubuntu:

  1. Если ваша система 64-битная, включите 32-битную архитектуру (если вы еще этого не сделали):

    sudo dpkg --add-architecture i386
    
  2. Добавьте репозиторий:

    • Для Ubuntu 18.10:

      wget -nc https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Ubuntu_18.10_standard/Release.key
      sudo apt-key add Release.key
      sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Ubuntu_18.10_standard ./'
      
    • Для версий Ubuntu до 18.10:

      wget -nc https://dl.winehq.org/wine-builds/Release.key
      sudo apt-key add Release.key
      sudo apt-add-repository https://dl.winehq.org/wine-builds/ubuntu/
      
  3. Обновите список пакетов:

    sudo apt-get update
    
  4. Затем установите:

    sudo apt-get install --install-recommends winehq-staging
    

    Если apt-get жалуется на отсутствующие зависимости, установите их, затем повторите два последних шага (обновление и установка).

2. Включить тематику GTK:

  1. открыто winecfg
  2. Нажмите вкладку "Постановка"
  3. Проверьте "Включить GTK Theming"
  4. Нажмите ОК

3. Включить сглаживание шрифтов:

Улучшение графического интерфейса приложений Wine

Cipricus ответ выше, отлично и очень тщательно. Однако есть еще один фактор, который влияет на качество шрифта, рендеринг FreeType.

Как решено здесь и обсуждено здесь, изменение версии рендеринга может вернуться к читаемым шрифтам.

Добавьте этот префикс в строку, которая запускает ваше винное приложение

FREETYPE_PROPERTIES="truetype:interpreter-version=35"

например

FREETYPE_PROPERTIES="truetype:interpreter-version=35" wine cmd

Скрипт в самом верхнем посте пользователя 47206 (или, точнее, решение, полученное на основе скрипта) у меня не работал, потому что regedit с префиксом Wine не смог найти файл в собственной файловой системе. Более надежное решение - если вы понимаете, что делаете (и не нуждаетесь в диалоговом окне с графическим интерфейсом пользователя), - это включить сглаживание путем непосредственного изменения реестра:

$ env WINEPREFIX=~/.wine/<prefix> wine reg add "HKCU\Control Panel\Desktop" /v FontSmoothing /t REG_SZ /d 2 /f

$ env WINEPREFIX=~/.wine/<prefix> wine reg add "HKCU\Control Panel\Desktop" /v FontSmoothingGamma /t REG_DWORD /d 0x578 /f

$ env WINEPREFIX=~/.wine/<prefix> wine reg add "HKCU\Control Panel\Desktop" /v FontSmoothingOrientation /t REG_DWORD /d 1 /f

$ env WINEPREFIX=~/.wine/<prefix> wine reg add "HKCU\Control Panel\Desktop" /v FontSmoothingType /t REG_DWORD /d 2 /f

Также можно проверить настройки так:

$ env WINEPREFIX=~/.wine/<prefix> wine reg query "HKCU\Control Panel\Desktop" | grep FontSmoothing
Другие вопросы по тегам