Stream Deck : necessary to go through KBM to select a menu item?

thanks to @noisneil and @cdthomer, I have been using the Stream Deck to lessen the load of keyboard shortcuts to remember.
To click on a menu item In any given app, it is necessary to 1st write a KBM macro and trigger that macro via the Stream Deck KM plugin (which is what I currently do), or is there a simpler quicker way.
thank you very much

That sounds like a Stream Deck question if you are asking if there is a way to do it in Stream Deck without using Keyboard Maestro. There might be, but I don't know. The Stream Deck support folks could probably answer that…?

1 Like

yes, @peternlewis, you are right and I apologize.
Stream Deck support is horrible. By far the most competent people are @noisneil and @cdthomer in this forum. I should perhaps have posted in the outback forum.

No need to apologize - if you've tried their support already and got no result, by all means say so and post your question. Or as you note, the Outback category is good for any question or discussion within reason.

1 Like

You could probably set an array via the KM Link parameter field, and access its items in a single select menu item action.

However, I think it's likely more long-winded than setting up dedicated macro, where you can use the menu item selection dropdown, rather than type the comma-delimited hierarchy in manually.

Off-topic: On the subject of arrays... @peternlewis , would it be worth adding an option to the For Each action to process Items in an array, with a field you could type the delimiter into? It would save having to replace commas with linebreaks all the time.

3 Likes

Hey Ronald, thanks for tagging me on this. An alternative to using KM in some cases might be Stream Deck’s Hotkey action for menu items that have an assigned shortcut. However, that might not be super useful because in those same cases you might be better off just using the assigned shortcut. :sweat_smile:

Another option would be to write an AppleScript to select the menu item... but this has the drawback of you still having to do some “coding”, albeit in AppleScript instead of Keyboard Maestro.

All that being said... this conversation got me wondering if there was a way to use KMLink to pass a parameter to Keyboard Maestro, filter that parameter by line, and then use each line in a select a menu item action. The macro below is what I came up with. It works well in my very limited testing, and obviously your mileage may vary. But perhaps you and @noisneil can check it out and give me some feedback and we can brainstorm on it.

To use it, assign KMLink to a SD button, and type the menu item’s name, with each submenu separated by a > symbol. For instance: Actions > Show Actions for that menu item in Keyboard Maestro. See the SD profile screenshot for another example.

Stream Deck Profile Screenshot (click to expand/collapse)

Select menu item from parameter passed from Stream Deck using KMLink.kmmacros (7.3 KB)

Macro screenshot (click to expand/collapse)

1 Like

Great minds think alike!

Here's my take on it, now that I'm in front of my mac:

Stream Deck - Menu Item Selection.kmmacros (42 KB)

Macro screenshot

As you can see, line count doesn't matter as long as you set the action not to notify on failure, so you can add as many submenus to the Select Menu action as you think you'd ever need.

Here's how I tested:

CleanShot 2023-07-11 at 14.17.42@2x

CleanShot 2023-07-11 at 14.17.53@2x

4 Likes

thanks very much @cdthomer ! The hotkey is a good idea. A kind of last resort. I downloaded your macro and have to sit down and decrypt it. thanks very much !

1 Like

thanks very much. Where is the macro does it say to select menu item in the app currently at the front ?

3 Likes

OK Great !! thanks very much @noisneil @cdthomer and @peternlewis for being open minded about using the forum

1 Like

I love it! Your method is much simpler. I didn’t think of doing it this way because I really don’t use arrays that much. Thanks for sharing!

3 Likes

4 Likes

Oh wow! I'm glad I asked! Thanks Peter!

1 Like