Czy istnieje sposób zdefiniowania domyślnej aplikacji dla rozszerzenia pliku za pomocą skryptu Apple, polecenia wiersza polecenia (jak defaults write [...]
).
Wiem, że możesz to zmienić ręcznie za pomocą panelu informacyjnego lub za pomocą RCDefaultApp, ale ponieważ muszę skonfigurować wiele komputerów i kont użytkowników, chciałbym znaleźć sposób na zautomatyzowanie tego procesu.
źródło
checking which SDK to use... configure: error: darwin12.0.0 is not a supported system
..avi
plików w Quicktime Player (za pomocą Findera → Uzyskaj informacje → Otwórz za pomocą… → _Zmień wszystko ), następnie uruchomiłemduti -s org.videolan.vlc public.avi all
VLC, a następnie ponownie uruchomiłem LaunchServices - ale wydawało się, że nie ma to żadnego efektu. (Zobacz listę deklarowanych przez system UTI .)~/Library/Preferences/com.apple.LaunchServices.plist
, duti automatycznie konwertuje większość rozszerzeń nazw plików na UTI, więc zwykle możesz określić typy takie jak.avi
zamiastpublic.avi
. Interfejsy użytkownika niektórych rozszerzeń plików zależą od zainstalowanych aplikacji.Usługi uruchamiania są odpowiedzialne za domyślne skojarzenia plików.
Powiedzmy, że chciałem zmienić wszystkie pliki tekstowe, aby otwierały się w Sublime Text 2.
Najpierw potrzebuję kMDItemCFBundleIdentifier dla Sublime Text 2. Mogę użyć mdls, aby uzyskać te informacje:
Mogę znaleźć wartość typu zawartości plików tekstowych, sprawdzając jeden z nich za pomocą mdls :
W takim przypadku zmienię domyślną aplikację dla wszystkich
public.plain-text
typów.Aby to zrobić, piszę:
Jeśli chcę, aby zmiany zaczęły obowiązywać, muszę ponownie uruchomić usługi uruchamiania w następujący sposób:
Aby wyrazić uznanie tam, gdzie należy się kredyt, dowiedziałem się o tym podejściu z tego pytania i odpowiedzi stackoverflow.com: /programming/9172226/how-to-set-default-application-for-specific-file -types-in-mac-os-x
źródło
Ten post na SuperUser zawiera również przydatne informacje. Aby dowiedzieć się więcej o LaunchServices, oto link do dokumentacji dla programistów Apple na jej temat. Przejdź do sekcji zatytułowanej LSSetDefaultRoleHandlerForContentType (strona 48).
źródło