Vous pouvez éditer ~/Library/Preferences/com.apple.LaunchServices.plistdans 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 LSHandlerstableau:
<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 mdlspour 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.plisten redémarrant. Se déconnecter et se reconnecter ne suffit pas.
REMARQUE : dutin'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 ~/.dutiautomatiquement lorsqu'il ~/.dutiest 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. duticonvertit les extensions en UTI qui s'appliquent également à d'autres extensions (comme .jpeg). Pour certaines extensions comme .mkvet .tex, l'UTI dépend de l'application qui a enregistré l'extension en premier.
La dernière version de duticomprend uniquement le code source, mais 1.5.0 inclut également un programme d'installation.
brew install dutipour installerduti