PDA

View Full Version : "Open With" has duplicates


chia
03-19-2006, 11:49 PM
Hi Dave,
SD is easy to use, cloning and smartbackup are fast but can you tell me what's happening here:

Each time when I connect to the external backup disk, duplicate applications appear when I try to open a file with Finder's "Open With" option. The duplicate applications still appear when the external backup disk isn't connected. The external disk has 3 partitions; 1 for my iMac with 10.4.5 and the other for iBook with 10.3.9. As suggested, I named the cloned partitions after the originals. I managed to get rid of the duplicates by resetting the applications and documents links using Onyx. It's a little bit bothersome having to do this each time after connecting to the external disk. Is there something I can do so that the duplicates don't appear?

Thanks

Oh... never mind. Just saw similar threads about this. Just too bad I have to live with this.

dnanian
03-20-2006, 12:33 AM
Sorry. LaunchServices does it, and there's little we can do to stop it... it's all due to the "automatic application discovery" OSX does, and since your backup is just like any other volume... well, you know the rest.

waynedl
03-23-2006, 11:56 PM
This issue of duplicate apps appearing in Open With... menus is really quite bothersome to me, too. Does anyone know how long it takes for the system to realize that applications are sitting there on your cloned volume? I currently have 1 partition of a firewire drive housing a clone of my Users folder, and I hate having to always unmount it manually so I can keep the use media files on the other (much larger) partition. I have a ~/Applications folder where I put most of my non-apple & non-SD!-caliber apps. Eventually, they show up in the Open With... list, and then I have to rebuild launch services db and reboot. Which is bothersome.

I suspect there may be some way to use a shell script after the clone is complete (by way of SD!) to render these app files off limits to the powers that be (launch services et al). How about using a shell script to gzip "/Volumes/FireUsers/Users/~/Applications/*"? Or chmod to turn off access? I know just enough about shells and terminal to get into stupifyingly serious trouble, but that probably won't stop me from trying. I AM getting better...I haven't rm'd my sbin folder in at least a year...

-wayne

dnanian
03-24-2006, 12:54 AM
If you use something to render those applications "off limits", you'll likely also make the volume either unbootable or unusable in an emergency/for a restore... unfortunately, I don't know of any way to prevent Launch Services from scanning your mounted volumes -- other than unmounting the volume.

gryphonent
03-26-2006, 08:55 AM
This has been bothering me too for a while now and I agree with Dave that there might be little that SD can do to improve the situation. If LaunchServices would only take the most recent version of an application and prefer the internal hard drive if duplicates exist... well, that would be fab. But unfortunately Apple wasn't that smart. I've been hoping for a fix with every update to no avail. Still, there might be a shell command or something out there??? After looking for months I just found one to fix another problem that was truly annoying to me: a new screensaver with every iPhoto album. So, I'm not giving up hope yet.

chia
03-26-2006, 12:33 PM
Eventually, they show up in the Open With... list, and then I have to rebuild launch services db and reboot. Which is bothersome.
-wayne

Wayne, when I used Onyx to reset Launch Services only, I didn't have to reboot.

dnanian
03-26-2006, 01:28 PM
You could also use an "After copy" shell script to reset the launch services database. The command you use is:

/System/Library/Frameworks/ApplicationServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

You can write a little shell script to do that, which'd look like:

#!/bin/sh
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

Save that somewhere, set its execute bit with chmod +x the-script-name, and then set it to run in Advanced options.