Как запретить Wine добавлять ассоциации файлов?

35

Wine автоматически добавляет определенные mimetypes и ассоциации файлов (например, notepad.exe для файлов .ini). Уже есть ответ, который объясняет, как удалить эти ассоциации.

Но как можно помешать Wine добавлять их снова и снова?

mniess
источник

Ответы:

47

Отключение winemenubuilder.exe в целом предотвратит захват вином ваших файловых ассоциаций, но также не позволит создавать пункты меню для недавно установленного программного обеспечения, что может быть нежелательным поведением. Лучшее решение заключается в следующем:

  1. Удалить существующие винные угоны ( из FAQ по вину ):

    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* 
    
  2. Отредактируйте /usr/share/wine/wine.inf(как root), найдите [Services]раздел:

    [Services]
    HKLM,%CurrentVersion%\RunServices,"winemenubuilder",2,"%11%\winemenubuilder.exe -a -r"
    ...
    

    и отредактируйте его так, чтобы оно гласило:

    [Services]
    HKLM,%CurrentVersion%\RunServices,"winemenubuilder",2,"%11%\winemenubuilder.exe -r"
    ...
    

    (а именно для запуска winemenubuilder.exeбез -aвыключателя). Это предотвратит обновление ассоциаций файлов в новых учетных записях пользователей (или в новых учетных записях WINEPREFIX).

  3. Отредактируйте ваш $WINEPREFIX/system.regфайл (если он существует) аналогичным образом. Где это говорит

    [Software\\Microsoft\\Windows\\CurrentVersion\\RunServices]
    "winemenubuilder"="C:\\windows\\system32\\winemenubuilder.exe -a -r"
    

    удалите -aвыключатель. (По умолчанию WINEPREFIX=$HOME/.wine.)

Это предотвратит кражу вином ваших любимых mimeapps, но winemenubuilder все равно будет работать и создавать удобные записи для вашего программного обеспечения Windoze.

K3 --- СРН
источник
1
Для меня путь был скорее /opt/wine-staging/share/wine/wine.inf. Если файл находится в нестандартном месте, запустите, locate wine.infчтобы найти его.
Привет, Ангел,
13

С http://wiki.winehq.org/FAQ :

Пользователи, которые не хотят, чтобы установщик приложения Windows изменял ассоциации типов файлов, добавлял пункты меню или создавал ссылки на рабочем столе, может отключить эту функцию winemenubuilder.exe. Есть несколько способов сделать это:

  • В winecfg : перед запуском установщика запустите winecfg. Перейдите на вкладку «Библиотеки» и введите winemenubuilder.exeв поле «Новые изменения» (его нет в раскрывающемся списке). Нажмите «Добавить», затем выберите его в поле «Существующие переопределения». Нажмите «Изменить» и выберите «Отключить» из списка, затем нажмите «Применить».

  • Файл реестра: если вам нужно применять настройки много раз (например, каждый раз, когда вы воссоздаете префикс Wine), этот подход может быть более удобным. Создайте текстовый файл с именем .reg (например, disable-winemenubuilder.reg), содержащий следующее:

    [HKEY_CURRENT_USER\Software\Wine\DllOverrides] 
    "winemenubuilder.exe"=""
    

    Чтобы применить настройку, запустите regedit disable-winemenubuilder.reg

  • Переменная среды: установите переменную среды WINEDLLOVERRIDES при запуске установщика, например,

    WINEDLLOVERRIDES=winemenubuilder.exe=d wine setup.exe
    

Отключение winemenubuilder.exeзаставит винные программы печатать ошибки, которые они не могут найти (хотя эти ошибки, похоже, не мешают работе программы).


Альтернативный подход, который позволяет избежать ошибок, состоит в том, чтобы заменить его программой «ничего не делать». Скомпилируйте следующее с gcc MinGW под wine и поместите исполняемый файл в C:\Windows\System32\winemenubuilder.exe:

  int main() { /* Do nothing */ return 0; }

Затем выполните ту же процедуру, что и выше, но установите winemenubuilder.exe«родной» вместо «отключить».

cscarney
источник
Хорошо. Поэтому для меня это означает, что я создаю префикс, устанавливаю свое приложение, вручную удаляю все ассоциации и меню Wine по умолчанию (я хочу ассоциации приложений), а затем меняю ключ reg, чтобы предотвратить повторное добавление ассоциаций при каждом обновлении Wine, правильно?
mniess
4

Так как это первый хит в гугле. В Wine FAQ теперь перечислены альтернативные методы для более новых версий вина.

«Начиная с wine-3.14, у winecfg есть флажок« Управление сопоставлениями файлов »на вкладке« Интеграция с рабочим столом ». Проверка этого позволяет winemenbuilder создавать сопоставления файлов, а снятие флажка отключает такое поведение».

k0ol
источник