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.