16.08.2011 | 21:53
Jel postoji mogućnost da sam definiram koje aplikacije želim da budu ponuđene za otvaranje filea?
Postoji, ali je "prljava".
Svodi se na to da editiraš Info.plist SVAKE pojedine aplikacije koju NE želiš vidjeti na Open With popisu, potražiš u njemu CFBundleTypeExtensions key i obrišeš pojedine ekstenzije.
Evo i konkretnog primjera. Kad kliknem desnim dugmetom na PDF dokument, nudi mi razne aplikacije (od Acrobata do Safarija) koje čitaju PDF. Među njima je i QuickTime Player 7 u kojem, koliko se sjećam, nisam nikada otvorio PDF pa zapravo samo smeta na popisu (kao i mnoge druge).
Otvaram folder u kojem je QuickTime Player 7, desno dugme, Show Package Contents. Kliknem na Contents. Vidim Info.plist. Odvučem ga u text editor (poslužit će i sistemski TextEdit) i u njemu potražim "CFBundleTypeExtensions". Ima ih puno, ali mene zanima onaj koji definira PDF. Glasi ovako...
<key>CFBundleTypeExtensions</key>
<array>
<string>pdf</string>
</array>
Obrišem "<string>pdf</string>" tako da ostane samo ovo...
<key>CFBundleTypeExtensions</key>
<array>
</array>
...i snimim.
Ako sad kliknem desno dugme na PDF dokument, Open With će i dalje prikazivati QuickTime Player 7.
Prikazuje ga zato jer se aplikacije kod prvog startanja registriraju u Launch Services bazu.
Za one koji žele znati više: Launch Services je API kojeg Finder koristi za otvaranje aplikacija, dokumenata i URLova, te za definiranje preferiranih aplikacija za otvaranje pojedinih tipova dokumenata i za registriranje informacija o tome koja aplikacija otvara koje tipove dokumenata. Ova činjenica ne ide u prilog onima koji tvrde da Mac nema registry.
Najelegantniji način za rebuildati taj registry je pokrenuti sljedeću skriptu (iz AppleScript Editora):
display dialog "The Finder must quit and will relaunch after the Launch Services rebuild is complete. The rebuild may take several minutes, during which time you should refrain from using any other apps." buttons {"Cancel", "Rebuild LS Database"} default button 2 with icon caution
ignoring application responses
tell application "Finder"
delay 2
quit
end tell
end ignoring
delay 5
tell application "System Events" to set running_applications_ to get name of every application process
if running_applications_ contains "Finder" then do shell script "killall Finder"
do shell script "/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user"
tell application "Finder"
delay 2
activate
end tell
tell me to activate
display dialog "The Launch Services rebuild is now complete." buttons {"OK"} default button 1 with icon note
Kad skripta odradi svoje, desni klik na PDF više neće prikazivati QuickTime Player 7.
Dobra vijest je da nakon te operacije i dalje možemo PDFove vući na ikonu QuickTime Player 7 - i on će ih uredno otvarati.
Ova skripta gore je dobrodošla i nevezano za petljanje po Info.plistama aplikacija jer očisti iz registrya sve aplikacije koje smo u međuvremenu odvukli u smeće.
A loša vijest je da proces editiranja Open With izbornika na opisani način može potrajati.
Moguće da postoji neki utility koji pokrati postupak, ali nisam ga još sreo - istina, nisam ga ni tražio jer mi ne smeta kupus u Open With izborniku.