[TxMt] The file association war
Matthew Anderson
manders2k.lists at gmail.com
Thu Sep 21 14:54:02 UTC 2006
This discussion made me curious about exactly how this works in OS
X. If anyone is curious:
This page[1] at the Apple Developer site describes the sequence of
events for determining which application to launch when a document is
opened (in a high-level, no-detail sort of way).
I believe that all the extensions applications claim to accept (and
thus applications associated with an extension) are generated
programatically, and cached here[2]:
/Library/Caches/com.apple.LaunchServices-014nnn.csstore
where nnn is your uid number from the NetInfo database.
This program:
/System/Library/Frameworks/ApplicationServices.framework/
Frameworks/LaunchServices.framework/Support/lsregister
Is capable of rebuilding that cached database and displaying it
("lsregister -dump | less") for you to look at, if you're interested.
I think all of your customizations of preferred applications are
stored here:
~/Library/Preferences/com.apple.LaunchServices.plist
I haven't confirmed this for certain, but I imagine that the 'file
association war' mostly occurs in this plist. I don't know exactly
how this is supposed to be formatted, and perhaps shouldn't be edited
by hand, but I'd think it should be pretty easy to go and delete all
xml elements which reference applications you *don't* want to be
opening files, or perhaps make some minor edits replacing one app
reference (the undesired) with another (the desired). Writing some
AppleScript (if one knows how to do that, and I don't) might be a
safer bet. Although, can't be too dangerous to make a backup copy of
the plist and then edit to your hearts content, see what happens.
[1]: http://developer.apple.com/documentation/Carbon/Conceptual/
LaunchServicesConcepts/index.html#//apple_ref/doc/uid/TP30000999
[2]: http://www.thexlab.com/faqs/resetlaunchservices.html
On Sep 19, 2006, at 10:09 PM, Trevor Harmon wrote:
> On Sep 19, 2006, at 7:21 PM, Charilaos Skiadas wrote:
>
>> So you really should only have to do this only once for every file
>> type.
>
> "Every file type" is the problem. RCDefaultApp reports that there
> are about *50* different extensions associated with BBEdit and
> XCode. I don't want to go through and manually change every one of
> those mappings. And what happens if I install yet another editor
> or, say, a new version of BBEdit? I'll have to go back and change
> all those associations *again*. Surely there's an easier way? I
> guess I could always resort to writing some AppleScript, assuming
> that would work...
>
> I suppose I'm also asking the broader question of why apps like
> TextMate/BBEdit/etc. have to associate themselves with anything to
> begin with. For example, when I install two C++ editors, they fight
> for the .cc association, and I guess whichever one is installed
> last wins. Seems like a rather weak way of managing file associations.
>
> Trevor
>
>
> ______________________________________________________________________
> For new threads USE THIS: textmate at lists.macromates.com
> (threading gets destroyed and the universe will collapse if you don't)
> http://lists.macromates.com/mailman/listinfo/textmate
--
Matt Anderson
More information about the textmate
mailing list