Você pode editar ~/Library/Preferences/com.apple.LaunchServices.plistem um editor de texto após convertê-lo em XML:
plutil -convert xml1 ~/Library/Preferences/com.apple.LaunchServices.plist
Em seguida, adicione entradas como esta à LSHandlersmatriz:
<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>
Você pode usar mdlspara ver as UTIs dos tipos de arquivo e algo parecido osascript -e 'id of app "AppName"'com os identificadores de pacote configurável dos aplicativos.
Você pode aplicar alterações com.apple.LaunchServices.plistreiniciando. Sair e entrar novamente não é suficiente.
NOTA : dutinão está mais em desenvolvimento ativo e foi rotulado por seus mantenedores como "não suportado". O projeto não registrou nenhum grande progresso desde 2012, além das atualizações de configuração. Foi movido do Sourceforge para o Github. Esta resposta foi atualizada para incluir os novos links.
Eu também uso duti . Salvei um arquivo como este (com cerca de 100 linhas) como ~/.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
Eu tenho um agente launchd que é executado duti ~/.dutiautomaticamente quando ~/.dutié alterado.
Normalmente, você pode usar extensões de nome de arquivo (como .jpg) em vez de UTIs (como public.jpg) para especificar os tipos de arquivo. duticonverte as extensões em UTIs que também se aplicam a outras extensões (como .jpeg). Para algumas extensões como .mkve .tex, a UTI depende de qual aplicativo registrou a extensão primeiro.
A versão mais recente do dutiinclui apenas código fonte, mas a 1.5.0 também inclui um instalador.
brew install dutipara instalarduti