Comment empêcher Wine d'ajouter des associations de fichiers?

35

Wine ajoute automatiquement certains types de MIME et associations de fichiers (par exemple, notepad.exe pour les fichiers .ini). Il existe déjà une réponse qui explique comment supprimer ces associations.

Mais comment empêcher Wine de les ajouter encore et encore?

mniess
la source

Réponses:

47

Désactiver complètement winemenubuilder.exe empêchera Wine de détourner vos associations de fichiers, mais également de créer des entrées de menu pour les logiciels nouvellement installés, ce qui peut constituer un comportement indésirable. La meilleure solution est la suivante:

  1. Supprimer les détournements de vin existants ( de la FAQ sur le vin ):

    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. Edit /usr/share/wine/wine.inf(en tant que root), recherchez la [Services]section:

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

    et éditez-le pour qu'il soit écrit:

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

    (à savoir, pour commencer winemenubuilder.exesans le -acommutateur). Cela empêchera la mise à jour des associations de fichiers sur les nouveaux comptes d'utilisateurs (ou avec de nouveaux WINEPREFIXes).

  3. Modifiez votre $WINEPREFIX/system.regfichier (s'il existe) de la même manière. Où il est dit

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

    retirer l' -ainterrupteur. (Par défaut,. WINEPREFIX=$HOME/.wine)

Cela empêchera Wine de voler vos applications préférées, mais winemenubuilder sera toujours exécuté et créera des entrées de bureau pratiques pour votre logiciel Windoze.

K3 --- rnc
la source
1
Pour moi le chemin était plutôt /opt/wine-staging/share/wine/wine.inf. Si le fichier est dans un emplacement non standard, exécutez-le locate wine.infpour le trouver.
Bonjour Angel
13

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

Les utilisateurs qui ne souhaitent pas que le programme d'installation d'une application Windows modifie les associations de types de fichiers, ajoute des éléments de menu ou créent des liens de bureau, peuvent être désactivés winemenubuilder.exe. Il y a plusieurs moyens de le faire:

  • Dans winecfg : avant d'exécuter le programme d'installation, lancez winecfg. Allez dans l'onglet Bibliothèques et tapez winemenubuilder.exedans la case "Nouveaux remplacements" (ce n'est pas dans la liste déroulante). Cliquez sur Ajouter, puis sélectionnez-le dans la zone "Remplacements existants". Cliquez sur "Modifier" et sélectionnez "Désactiver" dans la liste, puis cliquez sur "Appliquer".

  • Fichier de registre: Si vous devez appliquer le paramètre plusieurs fois (par exemple à chaque fois que vous recréez le préfixe Wine), cette approche peut s'avérer plus pratique. Créez un fichier texte nommé avec l'extension .reg (par exemple, disable-winemenubuilder.reg) contenant les éléments suivants:

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

    Pour appliquer le paramètre, exécutez regedit disable-winemenubuilder.reg

  • Variable d’environnement: définissez la variable d’environnement WINEDLLOVERRIDES lors de l’exécution du programme d’installation, par exemple,

    WINEDLLOVERRIDES=winemenubuilder.exe=d wine setup.exe
    

Désactiver winemenubuilder.exeentraînera les programmes Wine d'imprimer des erreurs qu'ils ne peuvent pas trouver (même si les erreurs ne semblent pas interférer avec le fonctionnement du programme).


Une approche alternative qui évite les erreurs consiste à le remplacer par le programme ne rien faire. Compilez ce qui suit avec gcc de MinGW sous wine et placez le fichier exécutable à C:\Windows\System32\winemenubuilder.exe:

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

Suivez ensuite la même procédure que ci-dessus, mais définissez-la winemenubuilder.exesur "natif" au lieu de "désactiver".

cscarney
la source
D'accord. Donc, pour moi, cela signifie que je crée le préfixe, installe mon application, supprime toutes les associations de vin et menus par défaut à la main (je veux les associations d’applications), puis modifie la clé reg pour empêcher les associations d’être ré-ajoutées chaque fois que Wine est mis à jour, droite?
mniess
4

Depuis c'est le premier coup sur Google. La FAQ sur le vin répertorie maintenant une méthode alternative pour les nouvelles versions de wine.

"À partir de wine-3.14, winecfg dispose d'une case à cocher" Gérer les associations de fichiers "dans l'onglet Intégration au bureau. Le fait de l'activer permet à winemenbuilder de créer des associations de fichiers et de le décocher désactive ce comportement."

k0ol
la source