Você pode editar ~/Library/Preferences/com.apple.LaunchServices.plist
em 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 à LSHandlers
matriz:
<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 mdls
para 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.plist
reiniciando. Sair e entrar novamente não é suficiente.
NOTA : duti
nã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 ~/.duti
automaticamente 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. duti
converte as extensões em UTIs que também se aplicam a outras extensões (como .jpeg
). Para algumas extensões como .mkv
e .tex
, a UTI depende de qual aplicativo registrou a extensão primeiro.
A versão mais recente do duti
inclui apenas código fonte, mas a 1.5.0 também inclui um instalador.
brew install duti
para instalarduti