Launch Services chịu trách nhiệm cho các hiệp hội tập tin mặc định.
Giả sử tôi muốn thay đổi tất cả các tệp văn bản để mở trong Sublime Text 2.
Đầu tiên tôi cần kMDItemCFBundleIdentifier cho Sublime Text 2. Tôi có thể sử dụng mdls để có được thông tin này:
> mdls /Applications/Sublime\ Text\ 2.app
_kTimeMachineIsCreationMarker = 1
_kTimeMachineNewestSnapshot = 4001-01-01 00:00:00 +0000
_kTimeMachineOldestSnapshot = 2012-02-22 03:49:19 +0000
kMDItemCFBundleIdentifier = "com.sublimetext.2"
....snip....
Tôi có thể tìm ra giá trị loại nội dung cho các tệp văn bản bằng cách kiểm tra một trong số chúng bằng mdls :
> mdls test.txt
kMDItemContentCreationDate = 2012-03-25 04:18:50 +0000
kMDItemContentModificationDate = 2012-03-25 04:18:50 +0000
kMDItemContentType = "public.plain-text"
kMDItemContentTypeTree = (
"public.plain-text",
"public.text",
"public.data",
"public.item",
"public.content"
)
kMDItemDateAdded = 2012-03-25 04:18:50 +0000
kMDItemDisplayName = "test.txt"
kMDItemFSContentChangeDate = 2012-03-25 04:18:50 +0000
kMDItemFSCreationDate = 2012-03-25 04:18:50 +0000
kMDItemFSCreatorCode = ""
kMDItemFSFinderFlags = 0
kMDItemFSHasCustomIcon = 0
kMDItemFSInvisible = 0
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery = 0
kMDItemFSLabel = 0
kMDItemFSName = "test.txt"
kMDItemFSNodeCount = 975
kMDItemFSOwnerGroupID = 20
kMDItemFSOwnerUserID = 501
kMDItemFSSize = 975
kMDItemFSTypeCode = ""
kMDItemKind = "Plain Text"
kMDItemLogicalSize = 975
kMDItemPhysicalSize = 4096
Trong trường hợp này, tôi sẽ thay đổi ứng dụng mặc định cho tất cả các public.plain-text
loại.
Để làm điều này tôi gõ:
defaults write com.apple.LaunchServices LSHandlers -array-add '{ LSHandlerContentType = \"public.plain-text\"; LSHandlerRoleAll = \"com.sublimetext.2\"; }'
Nếu tôi muốn các thay đổi có hiệu lực, tôi cần khởi động lại Dịch vụ khởi chạy như sau:
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user
Và để cung cấp tín dụng khi tín dụng đáo hạn, tôi đã tìm hiểu về cách tiếp cận này từ câu hỏi và câu trả lời của stackoverflow.com này: /programming/9172226/how-to-set-default-application-for-specific-file -types-in-mac-os-x
checking which SDK to use... configure: error: darwin12.0.0 is not a supported system
.