Vous pouvez éditer ~/Library/Preferences/com.apple.LaunchServices.plist
dans un éditeur de texte après l'avoir converti en XML:
plutil -convert xml1 ~/Library/Preferences/com.apple.LaunchServices.plist
Ajoutez ensuite des entrées comme celle-ci au LSHandlers
tableau:
<dict>
<key>LSHandlerContentType</key>
<string>com.adobe.pdf</string>
<key>LSHandlerRoleAll</key>
<string>net.sourceforge.skim-app.skim</string>
</dict>
<dict>
<key>LSHandlerContentTag</key>
<string>mkv</string>
<key>LSHandlerContentTagClass</key>
<string>public.filename-extension</string>
<key>LSHandlerRoleAll</key>
<string>org.videolan.vlc</string>
</dict>
Vous pouvez utiliser mdls
pour voir les UTI des types de fichiers et quelque chose comme osascript -e 'id of app "AppName"'
pour voir les identificateurs de bundle des applications.
Vous pouvez appliquer les modifications à com.apple.LaunchServices.plist
en redémarrant. Se déconnecter et se reconnecter ne suffit pas.
REMARQUE : duti
n'est plus en développement actif et a été étiqueté par ses responsables comme "non pris en charge". Le projet n'a pas connu de progrès majeur depuis 2012, à l'exception des mises à jour de configuration. Il est passé de Sourceforge à Github. Cette réponse a été mise à jour pour inclure les nouveaux liens.
J'utilise aussi duti cependant. J'ai enregistré un fichier comme celui-ci (avec environ 100 lignes) sous ~/.duti
:
org.gnu.Emacs public.plain-text all # .txt, .text, plain text files without an extension
org.gnu.Emacs public.unix-executable all # executable scripts
com.SequentialX.Sequential .jpg all
org.videolan.vlc .mkv all
J'ai un agent launchd qui s'exécute duti ~/.duti
automatiquement lorsqu'il ~/.duti
est modifié.
Vous pouvez normalement utiliser des extensions de nom de fichier (comme .jpg
) au lieu d'un UTI (comme public.jpg
) pour spécifier les types de fichiers. duti
convertit les extensions en UTI qui s'appliquent également à d'autres extensions (comme .jpeg
). Pour certaines extensions comme .mkv
et .tex
, l'UTI dépend de l'application qui a enregistré l'extension en premier.
La dernière version de duti
comprend uniquement le code source, mais 1.5.0 inclut également un programme d'installation.
brew install duti
pour installerduti
Voici un agent launchd pour duti qui fera l'affaire:
Remplacez évidemment
joshgummersall
par votre propre nom d'utilisateur. J'ai placé ce fichier à~/Library/LaunchAgents/duti.plist
,chmmod
d à 644 et j'ai couru:la source
Réponse courte: L'association d'application d'un fichier est stockée dans la fourchette de ressources du fichier , et Apple fournit deux utilitaires ( Rez et DeRez ) qui permettent la manipulation des fourchettes de ressources., Mais ce n'est pas pour les âmes sensibles .
Pour plus de détails, cette question trouve une réponse très complète chez Super User:
la source