Wine (Русский)

Ссылки по теме
CrossOver
Wine package guidelines
Состояние перевода:
На этой странице представлен перевод статьи
Wine
. Дата последней синхронизации: 11 июля 2021. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Wine
—
слой совместимости
, позволяющий запускать приложения Microsoft Windows в Unix-подобных операционных системах. Программы, запущенные в Wine, работают так же, как и "родные" — без потерь производительности и увеличения потребления памяти, характерных для эмуляторов.
Важно
Wine не изолирован от вашей системы.
Если в рамках вашей учётной записи у вас есть доступ к определённому файлу или ресурсу, то программы, запущенные в Wine, тоже его получат. Некоторые меры предосторожности на этот случай описаны в разделе
#Отдельная учётная запись для запуска Wine
и статье
Безопасность#Запуск приложений в песочнице
.
Wine может запускать в том числе и вредоносные программы (см.
Wine FAQ
).
Установка
Чтобы установить Wine, подключите репозиторий
multilib
и
установите
пакет
wine
(development-версия),
wine-stable
AUR
(stable) или
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
||
crossover
AUR
icoextract
— Генерирует эскизы для исполняемых файлов Windows (.exe и .dll).
https://github.com/jlu5/icoextract
||
icoextract
Lutris
— Игровой лончер для всех типов игр, в том числе игр Wine (с управлением префиксами), игр Linux и эмуляторов.
https://lutris.net
||
lutris
PlayOnLinux
— Графический префикс менеджер для Wine. Включает скрипты для помощи в установке и настройке программ.
https://www.playonlinux.com
||
playonlinux
AUR
Proton
— Иструмент совместимости для
Steam
на основе Wine и дополнительных компонентов. На странице
ProtonDB
можно найти список совместимости.
https://github.com/ValveSoftware/Proton
||
proton
AUR
[
ссылка недействительна
: package not found]
PyWinery
— Простой графический префикс менеджер для Wine.
https://github.com/ergoithz/pywinery
||
pywinery
AUR
Q4Wine
— Графический префикс менеджер для Wine. Может экспортировать темы
Qt
в конфигурацию Wine для лучшей интеграции.
https://sourceforge.net/projects/q4wine/
||
q4wine-git
AUR
Bottles
— Графический менеджер префиксов и запуска программ для Wine на основе GTK.
https://usebottles.com/
||
bottles
AUR
Настройка
Настройка 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
выбрано только одно звуковое устройство.
Установите необходимые вашему аудиодрайверу пакеты:
Для
ALSA
установите
lib32-alsa-lib
и
lib32-alsa-plugins
.
Для
PulseAudio
установите
lib32-libpulse
.
Для
OSS
установите
lib32-alsa-oss
.
Дополнительные пакеты:
Играм, в которых используется продвинутая звуковая система (например, 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-разъём.
Прочие зависимости
Некоторым приложениям могут потребоваться дополнительные пакеты для различных целей:
Проигрывание музыки:
lib32-mpg123
.
"Родные" библиотеки обработки изображений:
lib32-giflib
и
lib32-libpng
.
Поддержка шифрования:
lib32-gnutls
.
32-битные видеокодеки:
lib32-gst-plugins-base
AUR
,
lib32-gst-plugins-good
AUR
,
lib32-gst-plugins-bad
AUR
и
lib32-gst-plugins-ugly
AUR
.
NTLM-аутентификация:
samba
.
Шрифты
Если в приложении 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-installer
AUR
или
wine-installer-git
AUR
(у последнего есть дополнительные зависимости) или следуйте инструкциям ниже.
Во-первых, установите любую программу 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-приложений. См.
это
[
устаревшая ссылка
2024-12-15 ⓘ]
и
это
[
устаревшая ссылка
2024-12-15 ⓘ]
сообщения почтовой рассылки 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-git
AUR
, после чего выполните:
$ 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 (отключено).
Подробная информация:
Обсуждение на Phoronix Forum
с разработчиком CSMT Stefan Dösinger.
Режим 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-bin
AUR
. Команда ниже активирует его для указанного префикса (по умолчанию
~/.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
AUR
. Это одиночный пакет, подходящий для любой версии 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