Możesz edytować ~/Library/Preferences/com.apple.LaunchServices.plist
w edytorze tekstu po przekonwertowaniu go na XML:
plutil -convert xml1 ~/Library/Preferences/com.apple.LaunchServices.plist
Następnie dodaj do LSHandlers
tablicy następujące wpisy :
<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>
Możesz użyć, mdls
aby zobaczyć identyfikatory UTI typów plików i coś podobnego, osascript -e 'id of app "AppName"'
aby zobaczyć identyfikatory pakietów aplikacji.
Możesz zastosować zmiany com.apple.LaunchServices.plist
, uruchamiając ponownie. Wylogowanie i ponowne zalogowanie to za mało.
UWAGA : duti
nie jest już w fazie rozwoju i został oznaczony przez swoich opiekunów jako „nieobsługiwany”. W projekcie nie odnotowano znaczących postępów od 2012 r. Oprócz aktualizacji konfiguracji. Przenosi się z Sourceforge do Github. Ta odpowiedź została zaktualizowana o nowe linki.
Używam również duti . Zapisałem taki plik (z około 100 liniami) jako ~/.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
Mam uruchomionego agenta, który działa duti ~/.duti
automatycznie po ~/.duti
zmianie.
Zwykle możesz używać rozszerzeń plików (jak .jpg
) zamiast identyfikatorów UTI (jak public.jpg
), aby określić typy plików. duti
konwertuje rozszerzenia na UTI, które dotyczą również innych rozszerzeń (takich jak .jpeg
). W przypadku niektórych rozszerzeń, takich jak .mkv
i .tex
, interfejs użytkownika zależy od tego, która aplikacja najpierw zarejestrowała rozszerzenie.
Najnowsza wersja z duti
tylko zawiera kod źródłowy, ale 1.5.0 zawiera również instalatora.
brew install duti
do instalacjiduti
Oto uruchomiony agent dla duti, który załatwi sprawę:
Oczywiście zastąp
joshgummersall
swoją własną nazwą użytkownika. Umieściłem ten plik~/Library/LaunchAgents/duti.plist
, odchmmod
d do 644 i uruchomiłem:źródło
Krótka odpowiedź: powiązanie aplikacji z plikiem jest przechowywane w rozwidleniu zasobów pliku , a Apple zapewnia dwa narzędzia ( Rez i DeRez ), które pozwalają na manipulowanie rozwidleniami zasobów.
Aby uzyskać więcej informacji, na to pytanie bardzo dokładnie odpowiada Super Użytkownik:
źródło