Distinguishing Chrome Apps from Chrome

So I have a macro that activates a Chrome App, which are hybrid web/native apps in the style of Fluid.app. The macro correctly activates the Chrome App, but then if I run my macro that is supposed to activate Chrome itself, the Chrome App stays activated, presumably because KM can’t distinguish the Chrome App from Chrome the browser.

Any way to make this work? If not, is it possible to get a product update to handle this?

(KM version 6.4.5)

I checked in to this, and basically all the applets do is launch Chrome with some parameters.

Because it is the same application being launched, it is not really very distinguishable. If you look in the Keyboard Maestro switcher, they likely both show up as Google Chrome. If you look in the system switcher, they have hacks to show up the applet name/icon. However if you look in the Activity Monitor, you can see two copies of Google Chrome running.

Because it is really the same app, it has the same bundle ID, which makes it very difficult. On the Mac, you basically should never have the same bundle ID for two different apps.

Really, to do something like this you need to duplicate Google Chrome.app and give it a new bundle ID:

  • Duplicate Google Chrome.app and name it whatever you want
  • Rename the Contents/MacOS/Google Chrome to match
  • Change the Info.plist file to change the bundle ID to something unique, and I would also change the other reference to com.google.Chrome which looks like some sort of Google updater information.
  • Adjust the script above or the resulting application to refer to this new app.

As long as you've got two apps with the same bundle ID running, you're going to have trouble. For example, if you launch one of these SSBs, you cannot then launch Google Chrome (the Finder thinks its already running).

One thing you can do is open the app directly using the path. In Keyboard Maestro, you could try:

Execute Shell Script: open "/Users/peter/Applications/Whatever.app"

or

Execute Shell Script: open "/Applications/Google Chrome.app"

Maybe that would work for reliably.

I have also heard that there is a newer method for creating the SSBs that may work better:

2 Likes

Thanks for looking into this! That new SSB script seems to work. I’ve been waiting to find an updated/working version of that for YEARS. Some OSX permission dialogs that pop up 27 times in a row but I think by disabling all the google phone home stuff those are gone for good now (I hope). This approach works fine with KM. Yay.

Peter,

Does that mean that Keyboard Maestro only (or primarily) uses app bundle IDs to identify an app? Such as when assigning app(s) to the Application macro condition, or when constraining a group of macros to only activate when certain app(s) are active? Or are there additional mechanisms in addition to bundle ID?

Keyboard Maestro primarily uses the path, and will "refind" the application based on the bundleid if the application is not at the specified path.