
Да, опция имела бы смысл, если бы Wine был частью каждого рабочего стола по умолчанию, любая Windows программа запускалась бы в один клик и работала как часы. Тогда обычному пользователю не нужно было бы знать всю кухню, связанную с Wine. Пользователь загружает exe-файл из интернета, кликает по нему, и программа устанавливается. В меню и на рабочем столе появляются соответствующие ярлычки, и прописываются соответствующие ассоциации файлов. И в дальнейшем при двойном клике, например, на psd — открывается Photoshop и всё это выглядит нативно.
На практике же у тех, кто активно использует Wine, в системе куча разных префиксов, не одна сборка Wine «на все случаи жизни», и никто в здравом уме не запускает «uninstall.exe» при удалении чего-либо. Пользователь удаляет префикс и создаёт следующий. Со временем пользователь замечает, что в меню десяток ярлычков на Uplay, в «играх» тоже чёрт ногу сломит и вишенка на торте — отдельный пункт «Wine», дублирующий всё то, что размазано по другим пунктам. Дальше интереснее: попытка запуска оцифровки позапрошлого юбилея бабушки выдаёт что-то на тему неспособности запустить Windows Media Player 10, а уже упомянутые PSD не в курсе, что в системе есть Gimp.

В Valve используется радикальный подход: в Proton отсутствует файл «winemenubuilder.exe». В последних версиях отсутствует и «winecfg», но это не имеет отношения к теме. В Lutris есть опция, отключающая функционал «winemenubuilder.exe» во всех подключённых к нему префиксах. В большей части публичных сборок Wine опция так же отключена. Но большинстве дистрибутивов Wine собран «как есть», то есть со всеми «преимуществами» настроек «по умолчанию».
Что можно предпринять, если у вас уже бардак в меню и беда с ассоциациями файлов?
Для решения проблемы с ассоциацией файлов и очистки списка «открыть с помощью» используйте следующие команды:
rm -f ~/.local/share/mime/packages/x-wine*
rm -f ~/.local/share/applications/wine-extension*
rm -f ~/.local/share/icons/hicolor/*/*/application-x-wine-extension*
rm -f ~/.local/share/mime/application/x-wine-extension*
Для наведения порядка в меню используйте следующее:
rm -f ~/.config/menus/applications-merged/wine*
rm -rf ~/.local/share/applications/wine
rm -f ~/.local/share/desktop-directories/wine*
rm -f ~/.local/share/icons/????_*.{xpm,png}
rm -f ~/.local/share/icons/*-x-wine-*.{xpm,png} }}}
Используйте отдельные префиксы для каждого приложения. Удалите префикс «по умолчанию», созданный случайно, или по незнанию. Префикс по умолчанию обычно расположен в корне домашнего каталога в папке «.wine».
cd
rm -rf .wine
Что предпринять для предотвращения вышеописанных проблем в будущем?
1. Можно отключать ассоциацию файлов вручную, каждый раз после создания префикса. Нудно и можно случайно забыть.
2. «Лучшее лекарство от головы — топор». Это понятие спорное, но подход Valve довольно действенен. Если удалить этот файл из сборки, то проблема решится. Файл находится в том же месте, где и сам бинарник Wine, в папке «bin». Минусом является то, что консоль будет плеваться ошибками по поводу того, что не может найти «winemenubuilder.exe».
3. Можно отключить «winemenubuilder.exe» с помощью Winetricks. Опять же, вручную, для каждого префикса. Пример:
WINEPREFIX="/путь до префикса" winetricks winemenubuilder.exe=disabled
4. Более действенным способом является использование сборок, где всё уже отключено.
5.Можно отключить вручную, в любой сборке, включая системную. Для этого нужно внести изменения в файл «wine.inf». Файл находится по адресу «/share/wine/», относительно корневой папки сборки. Для этого выполните следующие два команды (с правами root, если сборка системная):
sed 's/winemenubuilder.exe -a -r/winemenubuilder.exe -r/g' /path_to_wine/share/wine/wine.inf -i
sed 's| LicenseInformation| LicenseInformation,\\\n FileOpenAssociations|g;$a \\n[FileOpenAssociations]\nHKCU,Software\\Wine\\FileOpenAssociations,"Enable",,"N"' /path_to_wine/share/wine/wine.inf -i
Где "path_to_wine" - путь до сборки Wine.
При использовании последнего способа, все создаваемые сборкой префиксы не будут пытаться что-то добавлять в меню, или перестраивать ассоциации файлов. Галка в настройках интеграции рабочего стола при этом может стоять, но работать не будет.
___
Tatyana K.
Tatyana K.