Feature Request: Make Macros Available To Be Indexed and Activated by LaunchBar

First I have to say that I have been using KM for a very long time and it is by far the most useful, timesaving program I have ever used. Great work to the team for being so helpful and informative and networking with the forum. I customize everything and I have a 12 button Logitech G604 mouse with each button having 8 options [using the modifier keys with the buttons] and use every button! The only bad thing I can say is that when I go onto another computer I feel [and look] like I don't know what to do!!

So to the suggestion: I use LaunchBar [LB] all the time. There are some times where I want to use a macro that I don't have programmed in my mouse and would like to use LB to access those directly. I have read the forum extensively and there are several work arounds that people have created and used with some success. But those solutions are work around due to the issue that LaunchBar cannot index the macros in KM. I have learned that all the macros are in one plist file called [~/Library/Application Support/Keyboard Maestro/Keyboard Maestro Macros.plist] but LB cannot read/disect and index this list.

Can you add the feature of working with LB and indexing the hotkey and/or name of each macro?

I have a program called "KeyCue" which I use which has the ability to "read" the macros and execute them by selecting or hotkey so I believe this is possible. Also as an fyi, If I initiate LB and type the hotkey KM is still reading the keystrokes so the macro is executed but this is dangerous because LB will show the result of the keystrokes and If you hit enter it will excute whatever happened to come up using those key strokes which is not ideal at all.

Thanks again,

Devon

I'm just an average guy around here, and I have never used Launchbar, but if you want if you want Launchbar to work with KM macros, then you either have to found a mechanism in KM that Launchbar can trigger, or ask Launchbar to solve this problem (as you suggest, by looking into the KM save files.) I think that the problem is solvable using the former method. I can think of four ways to solve the problem. Let me mention one way. If Launchbar can run a shell program, then just get it to run a command that triggers a KM macro. Every KM macro can be launched using a shell command. They look like this:

osascript -e 'tell application "Keyboard Maestro Engine" to do script "E18509B7...35773011F82"'

You can find the name of the shell command in the trigger section of any existing macro by choosing the option "Or by shell script."

The other three ways are simply using different kinds of triggers, but this seems to me to be like the most likely one to work for you.

@peternlewis?

@devon have you already tried the LB KM Action?

2021_11_21_Support_1

To display only the KM macros in Launchbar, you can use this macro:

Launchbar : KM macros <7BF7 211121T025652>.kmmacros (2,1 KB)

Thanks @appleianer.

I'd completely forgotten about that action...

-Chris

1 Like

@Ccstone since I work a lot with pallets, I don't actually use this LB action.

I have about 50 KM macros that I have set up separately, with individual icons, in LB.

I don't use it either, because Keyboard Maestro's own Trigger Macro by Name function works well for me.

-Chris

Keyboard Maestro macros are available via AppleScript in a variety of formats, so if LaunchBar wants to index them or execute them, they are available already.

KeyCue does this for example, referencing the currently active macros and how keys.

I don’t know what you mean.

I think @devon means that Keyboard Maestro text-expansion macros work in LaunchBar.

@devon,

This is unavoidable, because LaunchBar no longer has any application context when it's UI is frontmost. I was very unhappy when the Objective Development folks changed that, although it was in response to changes in the macOS and not just a whim on their part.

You can test to see if the LaunchBar window is open with AppleScript UI-Scripting.

tell application "System Events"
   tell application process "LaunchBar"
      if exists of window 1 then
         return "TRUE"
      else
         return "FALSE"
      end if
   end tell
end tell

This will slow down your macro(s) though.

-Chris

Thank you all for the great replies.

Peter- If I understand you correctly using apple script I can create a script that reads KM macros yet be accessed via launchbar just like normal apple scripts. I do understand this and this is what I have read throughout the forum and this approach has basically two "methods" using apple script:

1- the hotkey/script reads the macros in KM and lists them in a window/pallet to choose from, or
2- for each macro you would like to access you need to write an applescript to run that specific macro.

But neither of these options allow LB to index just like any other program- no intervention by the user and the user just types the macro name.

From what I have learned with applescripts and KM and LB Indexing I would imagine that for KM to do this the plist file would have to be "exploded" into one file for each macro. Then LB can index as normal. I am not saying that is the solution or best way, but I thought it might help clarify what I am asking.

Thank you ccstone for the clarification. That is what I was trying to express.

Devon

Did you read @appleianer's post?

Look on this page: Actions – LaunchBar 6

This action gives you direct access to Keyboard Maestro macros from LaunchBar.

-Chris

1 Like