Puoi modificare ~/Library/Preferences/com.apple.LaunchServices.plist in un editor di testo dopo averlo convertito in XML:
plutil -convert xml1 ~/Library/Preferences/com.apple.LaunchServices.plist
Quindi aggiungi voci come questa alla matrice 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>
Puoi usare mdls per vedere gli UTI dei tipi di file e qualcosa come osascript -e 'id of app "AppName"' per vedere gli identificatori di bundle delle applicazioni.
Puoi applicare le modifiche a com.apple.LaunchServices.plist riavviando. Disconnettersi e rientrare non è sufficiente.
Uso anche duti . Ho salvato un file come questo (con circa 100 righe) come ~/.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
Ho un agente launchd che esegue duti ~/.duti automaticamente quando ~/.duti è cambiato.
Normalmente puoi utilizzare le estensioni dei nomi di file (come .jpg ) invece di un UTI (come public.jpg ) per specificare i tipi di file. duti converte le estensioni in UTI che si applicano anche ad altre estensioni (come .jpeg ). Per alcune estensioni come .mkv e .tex , l'UTI dipende da quale applicazione ha registrato l'estensione per prima.
L'ultima versione di duti (1.5.1) include solo il codice sorgente, ma 1.5.0 include anche un programma di installazione.