Como impedir que o Wine adicione associações de arquivos?

35

O Wine adiciona automaticamente certos tipos de mimetismo e associações de arquivos (por exemplo, notepad.exe para arquivos .ini). Já existe uma resposta que explica como remover essas associações.

Mas como impedir que o Wine os adicione novamente?

mniess
fonte

Respostas:

47

Desabilitar o winemenubuilder.exe por completo impedirá o vinho de seqüestrar suas associações de arquivos, mas também impedirá a criação de entradas de menu para o software recém-instalado, o que pode ser um comportamento indesejado. A melhor solução é esta:

  1. Remova os seqüestros de vinho existentes ( das perguntas frequentes sobre vinho ):

    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. Edite /usr/share/wine/wine.inf(como root), localize a [Services]seção:

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

    e edite-o para que ele diga:

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

    (ou seja, para começar winemenubuilder.exesem a -achave). Isso impedirá a atualização de associações de arquivos em novas contas de usuário (ou com novas WINEPREFIXes).

  3. Edite seu $WINEPREFIX/system.regarquivo (se existir) da mesma maneira. Onde diz

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

    remova o -ainterruptor. (Por padrão WINEPREFIX=$HOME/.wine,.)

Isso impedirá que o vinho roube seus mimeapps preferidos, mas o winemenubuilder ainda será executado e criará entradas de área de trabalho convenientes para o seu software Windoze.

K3 --- rnc
fonte
1
Para mim, o caminho era melhor /opt/wine-staging/share/wine/wine.inf. Se o arquivo estiver em um local fora do padrão, execute-o locate wine.infpara encontrá-lo.
Hi-Angel
13

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

Os usuários que não desejam que o instalador de um aplicativo do Windows altere as associações de tipos de arquivos, adicionem itens de menu ou criem links da área de trabalho, podem ser desativados winemenubuilder.exe. Existem várias maneiras de fazer isso:

  • No winecfg : antes de executar o instalador, execute winecfg. Vá para a guia Bibliotecas e digite winemenubuilder.exena caixa "Novas substituições" (não está na lista suspensa). Clique em adicionar e selecione-o na caixa "Substituições existentes". Clique em "Editar" e selecione "Desativar" na lista e clique em "Aplicar".

  • Arquivo de registro: se você precisar aplicar a configuração várias vezes (por exemplo, sempre que recriar o prefixo do Wine), essa abordagem poderá ser mais conveniente. Crie um arquivo de texto nomeado com a extensão .reg (por exemplo, disable-winemenubuilder.reg) contendo o seguinte:

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

    Para aplicar a configuração, execute regedit disable-winemenubuilder.reg

  • Variável de ambiente: defina a variável de ambiente WINEDLLOVERRIDES ao executar o instalador, por exemplo,

    WINEDLLOVERRIDES=winemenubuilder.exe=d wine setup.exe
    

Desativar winemenubuilder.exefará com que os programas do Wine imprimam erros que não podem ser encontrados (embora os erros não pareçam interferir na operação do programa).


Uma abordagem alternativa que evita os erros é substituí-lo pelo programa do-nothing. Compile o seguinte com o gcc do MinGW em wine e coloque o executável em C:\Windows\System32\winemenubuilder.exe:

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

Siga o mesmo procedimento acima, mas defina winemenubuilder.execomo "nativo" em vez de "desativar".

cscarney
fonte
OK. Então, para mim, isso significa que eu crio o prefixo, instalo meu aplicativo, removo manualmente todas as associações e menus padrão do vinho (quero as associações de aplicativos) e altero a chave reg para impedir que as associações sejam adicionadas novamente sempre que o Wine for atualizado, direita?
Mniess
4

Uma vez que este é o primeiro hit no Google. O FAQ do Wine agora lista um método alternativo para versões mais recentes do wine.

"A partir do wine-3.14, o winecfg tem uma caixa de seleção" Gerenciar associações de arquivos "na guia Integração da área de trabalho. Marcar essa opção permite que o winemenbuilder crie associações de arquivos e desmarcar a opção desativa esse comportamento."

k0ol
fonte