Legacy and Obsolete Technology: Contextual Menu Plugins

 

 

Starting with Mac OS X 10.6 contextual menu plug-ins are not supported in 64 bit applications


Apple removed native support for contextual menu plug-ins in Mac OS 10.6 in 64 bit mode and replaced it with services items.
Even if the  contextual menu plug-in is 64 bit, the applications will not load it.
Almost all, if not all Apple applications shipping with Snow Leopard run 64 bit by default,
including Finder, so your contextual menu plugins will not work.



The solution:


Abracode Shortcuts is currently the only way to load and execute
today's contextual menu plug-ins in current macOS versions (in 64 bit apps).

Shortcuts lets you assign hot key combination for showing the contextual menu.
You can assign it under new "Menu" tab in Shortcuts:


The menu is handled and shown by ShortcutObserver, not the host application as in case or regular contextual menu invocation. Because of that there might be some differences in how it looks or works. It does not display items added by the host application, just items added by contextual menu
plug-ins. In Finder, the menu is not displayed under "More" submenu!
The menu shows up right under your mouse regardless of where the actual selection in front application is.

In version 2.0.2 there are 2 flavors of Shortcuts application: 32 bit and 64 bit. The separate 64 bit Intel-only version loads only 64-bit contextual menu plug-ins. Some Abracode CM plug-ins are 64-bit most notably OnMyCommandCM. You could use Shortcuts32.app for all other older plug-ins.

 In version 2.0.2 Shortcuts32 shows a services item called "More Items (32 bit)..." and Shortcuts (64 bit) shows "More Items (64 bit)..."



 In Shortcuts 2.1 the menu item for services has been renamed to "Shortcuts Items..."







































When you choose "Shortcuts Items...", the contextual menu is shown right under your mouse, as if triggered by a hot key. One difference is that in case of services, the context information is obtained from host application through services mechanism (in pasteboard) as opposed to Shortcuts itself trying to get the context data through its scripts and AppleEvents. Services method should work in cases when Shortcuts fail to obtain context information from front app.



More technical discussion:

In Mac OS 10.6 and higher Apple replaced contextual menu plug-ins with enhanced services, which will show up as contextual menu items. The problem is that the services are static (each item is described in application or service plist) so developers cannot create a service that will dynamically add its own menu items. Also, CM plug-ins analyze the context information to display appropriate menu items or not display at all. With services, it is Mac OS X that makes the decision whether to show the  service item or not based on the data types that the given service advertises it can handle.

You can expect some simpler contextual menu plug-ins to migrate to services mechanism for Snow Leopard in the near future. The more complex plug-ins are unfortunately out of luck. It is a big loss for people who learned to rely on existing CMs in their workflow. It will take time for alternative solutions to be developed.

Majority of legacy contextual menu plug-ins have never been ported to 64 bit but you can use Shortcuts32 to continue to use them up to macOS 10.14
In macOS 10.15 Catalina 32-bit support is removed altogether but you can use Shortcuts 2.1 with OnMyCommandCM 4.0





E-mail Us