Wine (Русский)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи Wine. Дата последней синхронизации: 11 июля 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Wineслой совместимости, позволяющий запускать приложения Microsoft Windows в Unix-подобных операционных системах. Программы, запущенные в Wine, работают так же, как и "родные" — без потерь производительности и увеличения потребления памяти, характерных для эмуляторов.

Важно:

Установка

Чтобы установить Wine, подключите репозиторий multilib и установите пакет wine (development-версия) или wine-staging (testing). Wine Staging — пропатченная версия Wine с исправлениями багов и некоторыми возможностями, которые ещё не были добавлены в stable- и development-версии. См. также #Графические драйвера и #Звук.

Если вы собираетесь запускать приложения, которые зависят от Internet Explorer и .NET, то имеет смысл также установить пакеты wine-gecko и wine-mono соответственно. Этот шаг не является обязательным, поскольку Wine может самостоятельно подгружать необходимые файлы по мере необходимости. Тем не менее, если скачать файлы заранее, то работать будет можно без подключения к сети, а Wine не придётся скачивать файлы каждый раз, когда они потребуются какому-нибудь префиксу.

Сторонние приложения

Перечисленные ниже приложения являются отдельными проектами, с собственными сообществами и веб-сайтами, и не поддерживаются основным сообществом Wine. Подробности можно найти в Wine Wiki.

  • CrossOver — Платная коммерческая версия Wine с более надёжной службой поддержки пользователей.
https://www.codeweavers.com || crossoverAUR
  • exe-thumbnailer — Генерирует эскизы для исполняемых файлов Windows (.exe, .lnk, .msi и .dll).
https://github.com/exe-thumbnailer/exe-thumbnailer || exe-thumbnailerAUR
  • Lutris — Игровой лончер для всех типов игр, в том числе игр Wine (с управлением префиксами), игр Linux и эмуляторов.
https://lutris.net || lutris
  • PlayOnLinux — Графический префикс менеджер для Wine. Включает скрипты для помощи в установке и настройке программ.
https://www.playonlinux.com || playonlinux
  • Proton — Иструмент совместимости для Steam на основе Wine и дополнительных компонентов. На странице ProtonDB можно найти список совместимости.
https://github.com/ValveSoftware/Proton || protonAUR
  • PyWinery — Простой графический префикс менеджер для Wine.
https://github.com/ergoithz/pywinery || pywineryAUR
  • Q4Wine — Графический префикс менеджер для Wine. Может экспортировать темы Qt в конфигурацию Wine для лучшей интеграции.
https://sourceforge.net/projects/q4wine/ || q4wineAUR
  • Bottles — Графический менеджер префиксов и запуска программ для Wine на основе GTK.
https://usebottles.com/ || bottlesAUR

Настройка

Настройка Wine обычно выполняется следующими инструментами:

  • winecfg — графический настройщик Wine, запускается командой winecfg.
  • regedit — утилита Wine для редактирования реестра, запускается командой regedit. См. статью Useful Registry Keys на сайте WineHQ.
  • control — реализация Панели управления Windows для Wine, запускается командой wine control.
  • Полный список команд можно найти в статье List of Commands на WineHQ.

WINEPREFIX

По умолчанию Wine хранит файлы настроек и установленные программы Windows в каталоге ~/.wine. Этот каталог обычно называют "префикс Wine" или "бутылка Wine" (wine bottle - "бутылка вина"). Каталог создаётся/обновляется каждый раз, когда вы запускаете программу Windows или одну из связанных с Wine программ вроде winecfg. Каталог префикса содержит дерево, которое ваши программы будут видеть как диск C:.

С помощью переменной окружения WINEPREFIX можно задать произвольный каталог для префикса. Это удобно, если вы хотите использовать разные настройки для разных Windows-программ. Когда программа впервые запускается с новым префиксом, Wine автоматически создает каталог с чистым диском C и реестром.

Например, если вы запустите одну программу командой $ env WINEPREFIX=~/.win-a wine program-a.exe, а другую — командой $ env WINEPREFIX=~/.win-b wine program-b.exe, то у каждой программы будет отдельный диск С и отдельный реестр.

Примечание: Префикс Wine не является песочницей! Программа, запущенная в Wine, всё ещё имеет доступ к остальной файловй системе. Например, диск Z: будет отображаться на / вне зависимости от текущего префикса.

Чтобы создать нужный префикс без запуска Windows-программы или графического инструмента, выполните:

$ env WINEPREFIX=~/.префикс wineboot -u

WINEARCH

Wine по умолчанию запускает 64-битное окружение. Это поведение можно изменить переменной окружения WINEARCH. Переименуйте каталог ~/.wine и создайте новое окружение Wine командой $ WINEARCH=win32 winecfg. Это окружение будет 32-битным. Если переменная WINEARCH не указана, то создаётся 64-битное окружение.

WINEARCH можно совместить с WINEPREFIX, чтобы создать отдельные окружения для win32 и win64:

$ WINEARCH=win32 WINEPREFIX=~/win32 winecfg
$ WINEPREFIX=~/win64 winecfg

Также WINEARCH можно совместить с другими программами Wine вроде winetricks (Steam взят для примера):

WINEARCH=win32 WINEPREFIX=~/.local/share/wineprefixes/steam winetricks steam

Узнать архитектуру существующего префикса можно в файле реестра. Следующая команда считывает системный реестр префикса ~/.wine и возвращает строку #arch=win32 или #arch=win64 в зависимости от типа архитектуры:

$ grep '#arch' ~/.wine/system.reg

Графические драйвера

Вам придётся установить 32-битную версию вашего графического драйвера. Выберите нужный пакет из столбца OpenGL (multilib) в таблице Xorg#Установка драйвера.

Верным признаком того, что ваш драйвер не подходит или неправильно настроен, будет следующее сообщение Wine в окне терминала:

Direct rendering is disabled, most likely your OpenGL drivers have not been installed correctly
Примечание: После установки нужной библиотеки необходимо перезагрузить X.

Звук

При запуске приложений в Wine могут возникнуть некоторые проблемы со звуком. Убедитесь, что в winecfg выбрано только одно звуковое устройство.

Установите необходимые вашему аудиодрайверу пакеты:

Дополнительные пакеты:

  • Играм, в которых используется продвинутая звуковая система (например, TESV: Skyrim), может потребоваться пакет lib32-openal.

Если winecfg по-прежнему не может обнаружить звуковой драйвер (Selected driver: (none)), настройте его через реестр. Например, если не работает микрофон в 32-битном приложении Windows на 64-битной базовой установке wine-1.9.7, получить полный доступ к звуковому аппаратному обеспечению можно следующим образом: откройте regedit, найдите HKEY_CURRENT_USER → Software → Wine → Drivers, добавьте строку с названием Audio и задайте ей значение alsa. Возможно, также поможет пересоздание префикса.

Поддержка MIDI

MIDI — довольно популярная музыкальная система видеоигр 90-х. Если вы пытаетесь запустить старую игру, то "из коробки" звук скорее всего работать не будет.

В Wine имеется отличная поддержка MIDI. Тем не менее, в первую очередь она должна работать на вашей хостовой системе, как объяснено в статье MIDI. Кроме того, убедитесь, что Wine использует правильный MIDI-разъём.

Прочие зависимости

Некоторым приложениям могут потребоваться дополнительные пакеты для различных целей:

Шрифты

Если в приложении Wine шрифты отображаются неразборчиво, проблема может быть в том, что они просто не установлены. Вы можете настроить Wine, чтобы он использовал системные шрифты:

$ cd ${WINEPREFIX:-~/.wine}/drive_c/windows/Fonts && for i in /usr/share/fonts/**/*.{ttf,otf}; do ln -s "$i" ; done

Wine использует FreeType для построения шрифтов, и стандартные настройки FreeType изменились несколько релизов назад. Попробуйте использовать следующее окружение для Wine-программ:

FREETYPE_PROPERTIES="truetype:interpreter-version=35"

Можно также попробовать установить шрифты Microsoft (TrueType) в префикс Wine. Если это не поможет, попробуйте сначала выполнить winetricks corefonts, а затем, как крайнее средство, winetricks allfonts.

После выполнения этих команд "убейте" все запущенные сервера Wine и выполните winecfg. Шрифты должны быть доступны.

Если шрифты выглядат немного смазанными, импортируйте следующий текстовый файл в реестр Wine с помощью regedit:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Wine\X11 Driver]
"ClientSideWithRender"="N"

Для мониторов с высоким разрешением значения dpi можно задать в winecfg.

См. также Настройка шрифтов#Приложения без поддержки fontconfig.

Сглаживаение шрифтов

Хороший способ улучшить рендеринг шрифтов в Wine — включить сглаживание ClearType. Следующий скрипт включит режим "Subpixel smoothing (ClearType) RGB":

cat << EOF > /tmp/fontsmoothing
REGEDIT4

[HKEY_CURRENT_USER\Control Panel\Desktop]
"FontSmoothing"="2"
"FontSmoothingOrientation"=dword:00000001
"FontSmoothingType"=dword:00000002
"FontSmoothingGamma"=dword:00000578
EOF

WINE=${WINE:-wine} WINEPREFIX=${WINEPREFIX:-$HOME/.wine} $WINE regedit /tmp/fontsmoothing 2> /dev/null

Подробнее см. оригинальный ответ.

Иконки рабочего стола

Когда установщик приложения Windows пытается создать ярлык, Wine создает файл .desktop вместо него.

  • Ярлыки рабочего стола сохраняются в каталоге ~/Desktop.
  • Ярлыки стартового меню сохраняются в каталоге ~/.local/share/applications/wine/Programs/.
Примечание: Wine не поддерживает установку приложений Windows для всех пользователей, поэтому в каталоге /usr/share/applications файлы .desktop не сохраняются. См. описание бага 11112.
Совет: Если пункты меню не создались во время установки или были случайно удалены, попробуйте команду wine winemenubuilder.

Пункты меню для утилит Wine

По умолчанию, при установке Wine пункты меню и иконки для относящихся к Wine программ (например, winecfg, winebrowser и т.д.) не создаются. Чтобы это исправить, установите мета-пакет wine-installerAUR или wine-installer-gitAUR (у последнего есть дополнительные зависимости) или следуйте инструкциям ниже.

Во-первых, установите любую программу Windows, чтобы Wine создал меню. Затем создайте файлы со следующим содержанием в каталоге ~/.local/share/applications/wine/:

wine-browsedrive.desktop
[Desktop Entry]
Name=Browse C: Drive
Comment=Browse your virtual C: drive
Exec=wine winebrowser c:
Terminal=false
Type=Application
Icon=folder-wine
Categories=Wine;
wine-uninstaller.desktop
[Desktop Entry]
Name=Uninstall Wine Software
Comment=Uninstall Windows applications for Wine
Exec=wine uninstaller
Terminal=false
Type=Application
Icon=wine-uninstaller
Categories=Wine;
wine-winecfg.desktop
[Desktop Entry]
Name=Configure Wine
Comment=Change application-specific and general Wine options
Exec=winecfg
Terminal=false
Icon=wine-winecfg
Type=Application
Categories=Wine;

После этого создайте следующий файл в каталоге ~/.config/menus/applications-merged/:

wine.menu
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">
<Menu>
  <Name>Applications</Name>
  <Menu>
    <Name>wine-wine</Name>
    <Directory>wine-wine.directory</Directory>
    <Include>
      <Category>Wine</Category>
    </Include>
  </Menu>
</Menu>

Если с этими настройками иконки выглядят уродливо (или не появились вовсе), то их нет среди доступных. Необходимо заменить настройки явным указанием расположения желаемых иконок. Того же можно добиться правым кликом по иконке и изменением настроек. Большой набор иконок для ярлыков можно найти в GNOME-colors.

Удаление пунктов меню

Созданные Wine пункты меню хранятся в каталоге ~/.local/share/applications/wine/Programs/. Если удалить соответствующий программе файл .desktop, то приложение исчезнет из меню.

Кроме того, чтобы удалить нежелательные расширения Wine, выполните следующие команды (источник — сайт Wine):

$ rm ~/.local/share/mime/packages/x-wine*
$ rm ~/.local/share/applications/wine-extension*
$ rm ~/.local/share/icons/hicolor/*/*/application-x-wine-extension*
$ rm ~/.local/share/mime/application/x-wine-extension*

В KDE, возможно, для полной очистки меню также потребуется удалить файлы wine-*.menu из каталога /.config/menus/.

Внешний вид

Оформление в стиле XP можно загрузить отсюда. Руководство по установке можно найти здесь. После установки выберите тему оформления в winecfg.

Пользователи Wine Staging могут вместо этого включить опцию Enable GTK3 Theming в разделе Staging winecfg. Будет выбрана текущая GTK-тема.

Печать

Чтобы использовать принтер (локальный или удалённый) с приложениями Wine в win32 prefixes (например, MS Word), установите пакет lib32-libcups, перезагрузите Wine (wineboot) и перезапустите приложение.

Сеть

Для приложений, работающих через TLS или HTTPS, установите пакет lib32-gnutls.

Wine также могут потребоваться специальные разрешения (capability) на доступ к сети по протоколу ICMP (пинги) (см. WineHQ FAQ):

# setcap cap_net_raw+epi /usr/bin/wine-preloader

Если после этого возникают проблемы (например, при обработке исключений или привилегированных команд), для удаления capability выполните:

# setcap -r /usr/bin/wine-preloader

Использование

Важно: Не устанавливайте и не запускайте приложения Wine с правами root! Подробнее см. Wine FAQ.

Общую информацию об использовании Wine можно найти на странице Wine User's Guide.

Запуск конкретных приложений Windows в Wine описан на странице Wine Application Database (AppDB).

Wayland

В настоящее время Wine не поддерживает Wayland напрямую, но вы можете использовать XWayland.

Некоторые попытки реализовать поддержку Wayland:

  • Экспериментальный драйвер Wayland для Wine, который поддерживает работу OpenGL- и Windows GDI-приложений. См. это и это сообщения почтовой рассылки wine-devel.
  • wine-wayland: альтернативная сборка Wine с поддержкой Wayland посредством Vulkan (работает с DirectX 9, 10 и 11 (через #DXVK) и с Vulkan-совместимыми приложениями).

Советы и рекомендации

Wineconsole

Часто появляется необходимость запустить .exe-файл, чтобы пропатчить файлы игры, например, добавить поддержку широкоформатного экрана в старую игру. Запуск .exe-файла в Wine обычным способом ни к чему не приведёт. В этом случае откройте терминал и выполните:

$ wineconsole cmd

Затем перейдите в каталог с .exe-файлом и запустите его.

Winetricks

Winetricks — скрипт, помогающий установить базовые зависимости, необходимые программам Windows. Устанавливаются DirectX 9.x, MSXML (для Microsoft Office 2007 и Internet Explorer), библиотеки Visual Runtime и многое другое.

Установите пакет winetricks или winetricks-gitAUR, после чего выполните:

$ winetricks

Графический интерфейс можно установить с пакетом zenity.

Производительность

CSMT

CSMT — технология Wine, использующая отдельный поток для вызовов OpenGL, что значительно повышает производительность. Начиная с Wine 3.2 CSMT по умолчанию включён. Для более ранних версий Wine его необходимо включить вручную. Для "ванильного" Wine запустите wine regedit и задайте DWORD-значение 0x01 (включено) для HKEY_CURRENT_USER -> Software > Wine > Direct3D > csmt. Для Wine Staging выполните winecfg и включите CSMT на вкладке Staging.

Имейте в виду, что для некоторых приложений CSMT может привести к обратному эффекту — к снижению производительности. В этом случае отключите его вручную, создав/изменив значение в реестре на 0x00 (отключено).

Подробная информация:

Режим OpenGL в играх

В некоторых играх есть поддержка OpenGL, который может работать лучше, чем стандартный DirectX. Хотя способ включения OpenGL варьируется от приложения к приложению, многие игры используют флаг -opengl:

$ wine /путь/к/3d_игре.exe -opengl

Разумеется, перед запуском приложения в этом режиме необходимо тщательно изучить его документацию и информацию из базы данных Wine AppDB.

DXVK

DXVK — новая многообещающая реализация DirectX версий 9, 10 и 11 поверх Vulkan. Значительно повышает производительность и в некоторых случаях обеспечивает даже лучшую совместимость. Battlefield 1, например, работает только под DXVK. С другой стороны, на данный момент DXVK поддерживает не все игры Wine.

Чтобы использовать DXVK, установите пакет dxvk-binAUR. Команда ниже активирует его для указанного префикса (по умолчанию ~/.wine):

$ WINEPREFIX=префикс setup_dxvk install
Примечание: В Wine версий до 3.5 необходимо настроить поддержку Vulkan вручную, следуя указаниям на GitHub.
Важно: DXVK замещает DLL-файлы для DirectX 10 и 11. В многопользовательских онлайн-играх это может быть принято за использование читов, что закончится блокировкой аккаунта. Используйте на свой страх и риск!

Gallium Nine

Для открытых драйверов на основе Gallium (в основном карты AMD) существует проект трекера состояний Gallium Direct3D, который ставит целью добиться производительноси, сравнимой с нативными показателями DirectX 9. В большинстве случаев выдаёт вдвое большую производительность, чем стандартный Wine, и меньшее количество визуальных помех. Потреблене времени центрального процессора значительно ниже по сравнению с CSMT.

Чтобы его использовать, установите пакет wine-nine. Это одиночный пакет, подходящий для любой версии Wine. Команда wine ninewinecfg позволяет проверить, включён Gallium Nine или нет.

Удаление ненужных файловых ассоциаций

Wine используется как приложение по умолчанию для большого количества форматов файлов. Некоторые из них, например, vbs или chm, являются специфичными для Windows, и такая привязка вполне логична. С другой стороны, довольно неприятно, когда файл gif, jpeg, txt или js открывается в запущенном в Wine браузере Internet Explorer или редакторе Notepad.

Ассоциации Wine хранятся в каталоге ~/.local/share/applications/ в виде файлов wine-extension-расширение.desktop. Удалите те из них, которые не нужны, либо удалите все расширения Wine:

$ rm -f ~/.local/share/applications/wine-extension*.desktop
$ rm -f ~/.local/share/icons/hicolor/*/*/application-x-wine-extension*

После этого очистите кэш:

$ rm -f ~/.local/share/applications/mimeinfo.cache
$ rm -f ~/.local/share/mime/packages/x-wine*
$ rm -f ~/.local/share/mime/application/x-wine-extension*

И обновите его:

$ update-desktop-database ~/.local/share/applications
$ update-mime-database ~/.local/share/mime/

В качестве альтернативы можно удалить все файлы, относящиеся к Wine:

$ find ~/.local/share -name "*wine*" | xargs -I '{}' --no-run-if-empty rm -r '{}'

После этого тоже обновите кэш, как показано выше.

Имейте в виду, что Wine может создать новые ассоциации и даже пересоздать удалённые, если того потребует какое-нибудь приложение.

Запрет на создание файловых ассоциаций

Примечание: Указанные действия необходимо выполнять для каждого WINEPREFIX, которому вы желаете запретить обновление файловых ассоциаций, за исключением варианта с редактированием файла /usr/share/wine/wine.inf (см. ниже).

Данный метод предотвращает создание файловых ассоциаций, но оставляет возможность для создания XDG-файлов .desktop (которые вы видите, например, в меню).

Если вы хотите запретить Wine создавать файловые ассоциации, запустите winecfg и уберите галочку "Manage File Associations" на вкладке Desktop Integration. Подробнее см. Wine FAQ.

Чтобы сделать то же самое, но с помощью реестра, добавьте строку Enable со значением N в

HKEY_CURRENT_USER\Software\Wine\FileOpenAssociations

Сначала необходимо создать ключ FileOpenAssociations!

Если вы хотите, чтобы эти настройки автоматически применялись к новым префиксам, отредактируйте файл /usr/share/wine/wine.inf, добавив следующую строку в раздел [Services]:

HKCU,"Software\Wine\FileOpenAssociations","Enable",2,"N"

Предотвратить перезапись изменённых файлов при обновлении пакета можно создав хук pacman, который будет вносить изменения автоматически:

/etc/pacman.d/hooks/stop-wine-associations.hook
[Trigger]
Operation = Install
Operation = Upgrade
Type = Path
Target = usr/share/wine/wine.inf

[Action]
Description = Stopping Wine from hijacking file associations...
When = PostTransaction
Exec = /bin/sh -c '/usr/bin/grep -q "HKCU,\"Software\\\Wine\\\FileOpenAssociations\",\"Enable\",2,\"N\"" /usr/share/wine/wine.inf || /usr/bin/sed -i "s/\[Services\]/\[Services\]\nHKCU,\"Software\\\Wine\\\FileOpenAssociations\",\"Enable\",2,\"N\"/g" /usr/share/wine/wine.inf'

Подробнее см. pacman#Хуки

Неявный запуск бинарников Windows

Пакет wine содержит файл binfmt, который позволяет запускать программы Windows напрямую. Например, команда ./myprogram.exe будет запускать программу так же, как wine ./myprogram.exe. Соответствующая системная служба запускается автоматически при старте системы. Если вы ещё не перезагружались после установки Wine, то можете вручную запустить службу systemd-binfmt.service, чтобы она заработала.

Примечание: Убедитесь, что у двоичного файла Windows есть права на исполнение, иначе он не запустится. Например, выполните chmod +x windows-binary.

Два монитора с разными разрешениями

Если у вас возникли проблемы с разрешением экрана на втором мониторе, возможно, в системе отсутствует пакет lib32-libxrandr.

Кроме того, установка пакета lib32-libxinerama поможет решить некоторые другие проблемы работы с двумя мониторами в Wine: ненажимаемые иконки и пункты меню, плохая отрисовка интерфейса приложения, зависание курсора мыши и т.п.

Прожиг оптического носителя

Для прожига CD- и DVD-дисков необходимо загрузить модуль ядра sg.

Монтирование образов оптических дисков

Приложения могут проверять наличие оптического диска в дисководе. Иногда это просто проверка присутствия данных, и в этом случае будет достаточно с помощью winecfg настроить определённый путь в файловой системе выступать в качестве привода CD-ROM. Другие приложения могут проверять название носителя и/или серийный номер, и в этом случае потребуется смонтировать соответствующий образ.

Некоторые утилиты для работы с виртуальными дисками, в том числе основанные на fuse, не умеют работать с такими метаданными — например, Acetoneiso. CDEmu, наоборот, работает вполне корректно.

Показ FPS в играх

Wine отслеживает FPS графических приложений, если установлена переменная окружения WINEDEBUG=fps. Количество кадров будет выводиться в stdout. Утилита osd_cat из пакета xosd позволяет отобразить FPS в верхней части экрана поверх окна приложения. См также вспомогательный скрипт.

Отдельная учётная запись для запуска Wine

Поскольку приложения Windows имеют доступ к вашей домашней директории, имеет смысл создать отдельную учётную запись для работы только с Wine.

Первым делом создайте саму учётную запись:

# useradd -m -s /bin/bash wineuser

Затем переключитесь в другую виртуальную консоль и запустите оконный менеджер или окружение рабочего стола (или прото читайте дальше)...

Примечание: Описанный подход работает только в Xorg с доступом к root. Подробнее о запуске команды xhost от обычного пользователя см. Xorg#Использование Xorg без прав суперпользователя.

Чтобы теперь запускать Wine от новой учётной записи, необходимо добавить её в список разрешений X server:

$ xhost +SI:localuser:wineuser

Наконец, можно запускать Wine, передав ему с помощью env необходимые переменные окружения:

$ sudo -u wineuser env HOME=/home/wineuser USER=wineuser USERNAME=wineuser LOGNAME=wineuser wine аргументы

Процесс запуска приложений Windows в Wine можно автоматизировать с помощью скрипта:

/usr/local/bin/runaswine
#!/bin/bash
xhost +SI:localuser:wineuser
sudo -u wineuser env HOME=/home/wineuser USER=wineuser USERNAME=wineuser LOGNAME=wineuser wine "$@"

Теперь приложение Wine запустится следующей командой:

$ runaswine "C:\путь\к\приложению.exe"

Чтобы не вводить пароль каждый раз при запуске Wine, добавьте следующий пункт в файл /etc/sudoers: имя_основного_пользователя ALL=(wineuser) NOPASSWD: ALL. Подробнее см. Sudo#Настройка.

Рекомендуется также запустить winecfg от пользователя Wine, и в окне настроек (раздел "Desktop Integration") убрать привязки ко всем каталогам за пределами домашнего. Так Wine будет иметь доступ только к нему и ни к чему более.

Правда, нужно иметь в виду, что при таком способе работы в приложениях, использующих PulseAudio, может перестать работать звук. В статье PulseAudio/Примеры#Одновременное использование PulseAudio несколькими пользователями описано, как дать пользователю Wine доступ к демону PulseAudio основного аккаунта.

Каталог Temp в tmpfs

По умолчанию Wine записывает временные файлы на физический носитель, но можно использовать для этого файловую систему tmpfs. Удалите текущий каталог для временных файлов и создайте символическую ссылку на новый:

$ rm -r ~/.wine/drive_c/users/$USER/Temp
$ ln -s /tmp/ ~/.wine/drive_c/users/$USER/Temp

Запрет на установку Mono/Gecko

Если Gecko и/или Mono нет ни в префиксе, ни в системе в целом, Wine будет запрашивать разрешение на скачивание их из сети. Если ни Gecko, ни Mono вам не нужны, то этот диалог можно отключить. Установите переменную окружения WINEDLLOVERRIDES в значение mscoree=d;mshtml=d.

Vulkan

В Wine 3.3 была добавлена поддержка Vulkan. Базовый ICD-загрузчик Vulkan в большинстве приложений работает вполне нормально, но в нём отсутствуют некоторые продвинутые возможности вроде Vulkan layers. Чтобы получить к ним доступ, установите официальный Vulkan SDK (см. шаг 2-4 на GitHub-странице автора патча).

Примечание: ICD-загрузчик Wine был добавлен в версии 3.5, поэтому устанавливать официальный Vulkan SDK нужно только для версий 3.3 и 3.4.

Удаление файловых привязок

По соображениям безопасности полезно удалить предустановленные привязки Wine, чтобы приложения Windows не могли быть запущены напрямую из файлового менеджера или браузера (Firefox предлагает открыть EXE-файлы сразу в Wine!).

Чтобы это сделать, добавьте следующие строки в раздел [options] файла /etc/pacman.conf:

NoExtract = usr/lib/binfmt.d/wine.conf
NoExtract = usr/share/applications/wine.desktop

Решение проблем

Общие советы по решению возможных проблем можно найти на страницах Wine User's Guide и Wine FAQ (прежде всего в разделе Решение проблем).

Советы для конкретных приложений можно найти в Wine AppDB.

Проблемы с XWayland

Если вы используете Wine в XWayland, опция "Эмуляция виртуального рабочего стола" на вкладке Graphics в winecfg позволяет решить следующие проблемы:

  • мерцание;
  • неправильное положение окна;
  • неправильное положение курсора мыши и реакция на клики;
  • обнаружение клавиатуры.

Смотрите также

  • Wine Homepage
  • Wine Wiki
  • Wine Application Database (AppDB) — Информация о запуске конкретных приложений Windows (известные проблемы, рейтинги, руководства и т.п.).
  • Wine Forums — Здесь можно задавать вопросы, но только после прочтения FAQ и AppDB.
  • Gentoo:Wine
  • Darling — аналогичный проект для программ MacOS