Compatibility with Alfred 2.7.2 about current active app

Hi,

I’m using Keyboard Maestro and Alfred together, and with the latest Alfred version, I met a problem.

The new feature of Alfred is when it’s shown, it won’t make the current application inactive, so there is no way now to tell if the current active app is Alfred or not. I’m doing key mappings and now the key mappings apply to Alfred, too.

Is there a way to detect and tell the difference?

Related thread in Alfred forum: http://www.alfredforum.com/topic/7330-how-to-tell-if-alfred-is-shown-with-the-new-focusing-feature/
The author suggested a specific detection of Alfred, which Karabiner uses.

Thanks!

1 Like

The solution described by Karabiner’s author is probably not something I can do for Keyboard Maestro. I will look to see if there is anything else that can be done.

I just ran into the same problem. Would be great if you could help.

Sidenote: Login with Google is broken (“wrong redirect”).

1 Like

Should be fixed now I believe, it was a casualty of the switch to https for the forum.

Any update on this, Peter? This creates a headache with my MS Word-heavy macros, as they trigger when Alfred is in focus and mess up my Alfred input.

No. Currently Keyboard Maestro has no idea that Alfred has taken over the focus and that the application is not focused. Essentially Alfred is behaving as if it is a window within the current application, and Keyboard Maestro treats it the same way (though I expect from Keyboard Maestro’s point of view the window is also invisible to Keyboard Maestro).

LaunchBar does the same thing.

It used to have application-focus when its window was in focus, but in their infinite wisdom the devs changed that several years ago – and destroyed much functionality (from my point of view).

The old way allowed me to have LaunchBar-specific macros, and it did NOT interfere with my app-specific macros when LaunchBar was in focus.

I’m still chapped about that.

AppleScript and System Events can detect whether Alfred’s window is open or not:

tell application "System Events"
  tell application process "Alfred 2"
    if subrole of windows = {"AXSystemDialog"} then
      beep
    end if
  end tell
end tell

-Chris

1 Like