YaK:: How can I remove Opera (and other services) from the OS X Services menu? [Changes]   [Calendar]   [Search]   [Index]   [PhotoTags]   
[mega_changes]
[photos]

How can I remove Opera (and other services) from the OS X Services menu?

So you want to get rid of some of the junk in your Mac OS X Services menu, but you think you've already removed the application that offered that services, like Opera. Well, here's how and why it may be so awkward.

The "Services" sub-menu (under the Current-Application-Name menu) in Mac OS X lists all interprocess services provided by all applications installed on the machine (which the OS can find.) So how does a service like "Opera>Send To" appear in the Services menu when you can't find Opera on your Mac? And how can you get rid of it?

A service is registered with OS X by an application with an NSServices entry in the Info.plist file that resides in the application's package. So Opera registers it's "Send To" service by having the line
<key>NSServices</key>
along with other associated xml in the file .../Opera.app/Contents/Info.plist . Opera seems to be a particular problem for folks since it gets installed with Adobe's Bridge and Device Central products, but not like typical applications. No, Adobe installs Opera within the Bridge and Device Central packages. Yes, an application within an application.
/Applications/Adobe Bridge CS3/Bridge CS3.app/Contents/MacOS/Opera.app/Contents/Info.plist
/Applications/Adobe Device Central CS3/Device Central.app/Contents/MacOS/Required/Opera.app/Contents/Info.plist
[In case you didn't know, an application -as it appears in Mac OS X finder windows- is really a special file directory, ie. folder, that contains lots of files. This folder of files appearing as an application is called a "package" in Apple parlance.

To get rid of the Services menu item it you have to find the application, go into its package, and delete the offending services lines. Or you could just Trash/remove the whole application. In the case of the Opera hidden in Bridge you could navigate in the Finder the "Adobe Bridge CS3" directory, then select the "Bridges CS3" applications, right-mouse-click(ctl-click) on the application icon and select "Show Package Contents" from the popup menu; then -in the browser window the prior steps just opened- navigate into the Contents directory and double click on Info.plist to open it with the "Property List Editor" application; Once your looking at Info.plist in the editor select the "Services" entry -near the bottom of the list- and click on "Delete Item" near the top of the window or just hit the "delete" key on your keyboard; Save and you're done. Reboot required to clear defunct entries from Services menu.

Of course you could do all this in Terminal.app on the command line.
[Use something like
>> find / -name Info.plist -print0 > foo
to get a list of all the Info.plist files on your system.
Then use something like
>>xargs -0 grep -l NSServices > bar
to get a list of all Service providing applications with full paths to the Info.plists .
Then use your favorite editor to delete all services lines from the offending Info.plists files. Be careful when editing the xml in these .plist files since you could wedge things pretty well given the expectation of well formed xml by most parts of the system that look at these things.]

(unless otherwise marked) Copyright 2002-2014 YakPeople. All rights reserved.
(last modified 2008-10-25)       [Login]
This page is referenced by the following pages:
Shrine: donald