Mise à jour 2021 Jan
Si vous utilisez MacOS Big Sur (11.1) et que vous n'arrivez pas à obtenir des aperçus QuickLook de certains fichiers même si vous avez installé QLStephen et d'autres plugins, voici ce qui a fonctionné pour moi.
Contexte
Sous MacOS, chaque fichier se voit attribuer un UTI . Les UTIs sont utilisées pour identifier les types de fichiers (ce sont les types que vous voyez dans l'application Kind
dans le Finder ou dans la colonne Kind
l'entrée dans la General
de la section Get Info
fenêtre). Par exemple, une .txt
(un fichier "texte brut") a l'UTI suivante : public.plain-text
.
Pour vérifier quelle est l'UTI d'un fichier particulier, vous pouvez exécuter :
mdls -name kMDItemContentType ~/my-file.ext
où ~/my-file.ext
est le chemin d'accès au fichier.
QuickLook vérifie l'UTI d'un fichier pour choisir un générateur QuickLook à utiliser pour l'affichage. Les générateurs QL qui sont livrés avec MacOS peuvent être trouvés dans /System/Library/QuickLook/
.
Les générateurs QL ont le .qlgenerator
et vous pouvez voir leur contenu en cliquant avec le bouton droit de la souris dessus et en sélectionnant Show Package Contents
. Dans le dossier Contents
il y a un fichier nommé Info.plist
. Ce fichier liste les UTIs avec lesquelles le générateur sera utilisé.
Donc, le Info.plist
de la Text.qlgenerator
énumérera, entre autres, les public.plain-text
UTI. Tout fichier qui possède cette UTI sera prévisualisé en utilisant Text.qlgenerator
.
Les générateurs trouvés dans /System/Library/QuickLook/
sont verrouillées, ce qui signifie que vous ne pouvez pas (en principe) les modifier.
C'est là qu'interviennent les plugins QuickLook que l'on trouve sur Internet, comme QLStephen. Ces plugins sont installés dans ~/Library/QuickLook
(notez que ce chemin commence par ~/
ce qui signifie que c'est votre utilisateur Library
et non /System/Library/
) et d'étendre les capacités de QuickLook. En d'autres termes, ils fournissent au système de nouveaux générateurs qui fonctionnent avec des UTI non couvertes par les générateurs du système, ou les étendent.
Problème
Lorsque vous réassignez l'application avec laquelle un type de fichier est ouvert (par exemple, Info > Ouvrir avec > [app] > Changer tout`), l'application peut attribuer à ce type de fichier une UTI qui n'est pas celle par défaut, ce qui signifie que QuickLook ne reconnaîtra pas l'UTI et n'attribuera pas de générateur (et vous verrez juste une icône de fichier plutôt que le contenu du fichier).
Par exemple, le plugin QLColorCode doit prévisualiser le contenu de LaTeX .tex
mais dans mon cas, ce n'était pas le cas. Cela est dû au fait que j'ai sélectionné Sublime Text comme application qui ouvre .tex
et que ST a attribué une UTI différente de celle utilisée dans QLColorCode pour les fichiers de type .tex
des fichiers.
Solution
La solution au problème consiste simplement à faire savoir au plugin QL qu'il doit également fonctionner avec ces UTI "non par défaut".
Pour ce faire, il suffit de modifier le fichier Info.plist
du plugin dans ~/Library/QuickLook
( n'essayez pas d'éditer les générateurs du système dans /System/Library/QuickLook
).
Plus précisément, vous devez d'abord localiser les lignes suivantes dans le fichier Info.plist
(pour ouvrir et modifier ce fichier, vous devez cliquer avec le bouton droit de la souris sur celui-ci et sélectionner TextEdit
) :
...
<key>LSItemContentTypes</key>
<array>
<string>public.source-code</string>
...
</array>
...
Ensuite, vous devez ajouter les UTI "non standard" dans le tableau, comme suit :
...
<key>LSItemContentTypes</key>
<array>
<string>public.source-code</string>
...
<string>dyn.ah62d4rv4ge80g5dx</string>
<string>dyn.ah62d4rv4ge81e5pe</string>
</array>
...
Comme mentionné ci-dessus, pour obtenir l'UTI d'un fichier particulier, faites :
mdls -name kMDItemContentType ~/my-file.ext
Dans le résultat, vous verrez quelque chose comme ceci :
kMDItemContentType = "dyn.ah62d4rv4ge80g5dx"
La chaîne entre guillemets est l'UTI de ~./my-file
.
Après avoir ajouté les UTIs, il suffit de sauvegarder le fichier Info.plist
et le fermer.
Maintenant, QuickLook devrait fonctionner avec le générateur choisi pour les fichiers dont les UTIs ont été ajoutés en Info.plist
.
Pour être sûr, vous pouvez exécuter ce qui suit pour réinitialiser QL et son cache :
qlmanage -r
qlmanage -r cache
Fin