Puedes 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 matriz LSHandlers
:
<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>
Puedes usar mdls
para ver las UTI de los tipos de archivos y algo como osascript -e 'id of app "AppName"'
para ver los identificadores de paquetes de las aplicaciones.
Puedes aplicar cambios a com.apple.LaunchServices.plist
reiniciando. Cerrar sesión y volver a entrar no es suficiente.
También uso duti . 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 launchd que ejecuta duti ~/.duti
automáticamente cuando se cambia ~/.duti
.
Normalmente, puede usar extensiones de nombre de archivo (como .jpg
) en lugar de UTI (como public.jpg
) para especificar los tipos de archivos. 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 registró primero la extensión.
La última versión de duti
(1.5.1) solo incluye código fuente, pero 1.5.0 también incluye un instalador.