Crossroads » WINE » Как отключить ассоциацию файлов в Wine

Как отключить ассоциацию файлов в Wine

  • Dislike
  • +1
  • Like
Опция построения меню и изменения ассоциации файлов в Wine задумывалась из благих побуждений. По крайней мере на это хочется надеяться. Видимо, кто-то сильно верил, что в будущем с помощью Wine можно будет запустить абсолютно всё и заранее приготовил «интеграцию».

Да, опция имела бы смысл, если бы Wine был частью каждого рабочего стола по умолчанию, любая Windows программа запускалась бы в один клик и работала как часы. Тогда обычному пользователю не нужно было бы знать всю кухню, связанную с Wine. Пользователь загружает exe-файл из интернета, кликает по нему, и программа устанавливается. В меню и на рабочем столе появляются соответствующие ярлычки, и прописываются соответствующие ассоциации файлов. И в дальнейшем при двойном клике, например, на psd — открывается Photoshop и всё это выглядит нативно.

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

Те, кто принимает решения в проекте Wine о чём-то таком догадываются. Поэтому начиная с версии 3.14 в настройках «интеграции рабочего стола» есть чекбокс, в пункте «MIME Types», позволяющий отключить попытки Wine перестроить ассоциации файлов. На сегодня по умолчанию опция включена. То есть после создания каждого префикса нужно идти в эти настройки и снимать галку.

В 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.

При использовании последнего способа, все создаваемые сборкой префиксы не будут пытаться что-то добавлять в меню, или перестраивать ассоциации файлов. Галка в настройках интеграции рабочего стола при этом может стоять, но работать не будет.
Like Dislike

___
Tatyana K.



Tags: Wine, Linux


 
  • Creative Commons Licence
  • Norton Safeweb
  • Website Uptime Monitoring By ServiceUptime.com