Puede editar ~/Library/Preferences/com.apple.LaunchServices.plist
en un editor de texto después de convertirlo a XML:
plutil -convert xml1 ~/Library/Preferences/com.apple.LaunchServices.plist
Luego agregue entradas como esta a la 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>
Puede usar mdls
para ver las UTI de los tipos de archivo y algo así como osascript -e 'id of app "AppName"'
para ver los identificadores de paquetes de aplicaciones.
Puede aplicar cambios com.apple.LaunchServices.plist
reiniciando. Cerrar sesión y volver a iniciarla no es suficiente.
NOTA : duti
ya no se encuentra en desarrollo activo y sus mantenedores lo han etiquetado como "no compatible". El proyecto no ha visto ningún progreso importante desde 2012, aparte de las actualizaciones de configuración. Se mudó de Sourceforge a Github. Esta respuesta se ha actualizado para incluir los nuevos enlaces.
Aunque también uso holandés . He guardado un archivo como este (con aproximadamente 100 líneas) 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
Tengo un agente de launchd que se ejecuta duti ~/.duti
automáticamente cuando ~/.duti
se cambia.
Normalmente puede usar extensiones de nombre de archivo (como .jpg
) en lugar de una UTI (como public.jpg
) para especificar los tipos de archivo. duti
convierte las extensiones en UTI que también se aplican a otras extensiones (como .jpeg
). Para algunas extensiones como .mkv
y .tex
, la UTI depende de qué aplicación haya registrado primero la extensión.
La última versión de duti
solo incluye código fuente, pero 1.5.0 también incluye un instalador.
brew install duti
para instalarduti