Ideas for new features in KM

I'll be happy no matter what new features the next version of KM includes. But I'm going to speculate (and maybe lobby for) some features here. I have no inside information on what's coming. And as usual, I ask for too much.

  • probably support for "Universal Control" multi-monitors, or at least activating Sidecar
  • probably support for Tab Groups in Safari (but I don't find them useful yet)
  • hopefully support for Live Text, if there's an Apple API for it
  • hopefully support for direct access to macOS Shortcuts (easy enough to do even without an API)
  • perhaps support for Shareplay (but no idea if there's an API for it)
  • perhaps support for Quick Note
  • maybe support for Find My and Air Tags (eg, an action to return their text location)
  • maybe an action that will open Apple Maps to a location we specify
  • maybe support for the new AirPlay features
  • slim chance of support for turning off and on Private Relay and Hide My Email from KM
  • slim chance of a new action that lets us access Text to Siri (send requests and get results?)
  • perhaps support for game controllers as input devices, since macOS has supported them for a couple of years now

There are a few things (not many) that Shortcuts in Monterey can do really well and it would be nice if KM could provide competition to these Shortcuts actions:

  • an equivalent to Shortcuts' HomeKit action (very useful)
  • an equivalent to Shortcuts' Extract Text action (which I find works extremely well)
  • an equivalent to Shortcuts' Dictate Text action (very useful and impressive)
  • an equivalent to Extract Text from PDF
  • an equivalent to Set Focus
  • an equivalent to Shortcuts' ability to pipe output from one action to another. But perhaps an easier way to do this is to create a new token called %ActionOutput% that contains the data created from the previous action. That might be much easier to implement and would give us a rough equivalent. We already have %ActionResult% which is essentially what I'm asking for, but for output instead of error codes.

I'm always looking forward to new data structures and control structures. like maybe:

  • a new "Group action" called "Simultaneous" that executes each of its sub-actions in asynchronous order (that would save me a lot of actions handling parallel code)
  • a new coloured cogwheel that let's me changed the action's colour with a single click on the correct colour (the menu system is too slow for this simple function)
  • a new feature to the IF statement to supplement ANY/ADD that says "Exactly one of the following are true"
  • direct support for putting icons in the upper Apple Menu Bar (at least for a running macro)
  • actions to replicate the functionality of some shell commands like awk, sed, tr
  • support for full screen graphical output (I have no idea what I'm asking for here, but output is one of the few weak areas of KM)

I love KM and I'll be happy with anything.

Really nice ideas!

  • a new "Group action" called "Simultaneous" that executes each of its sub-actions in asynchronous order (that would save me a lot of actions handling parallel code)

I could see the existing "Group" function with an additional option that allows the group to be executed asynchronously (like the Execute AppleScript has). However I think having a async group (whatever the UI) may be confusing:

  1. Do you mean "execute the group asynchronously", in other words execute each sub-action async, or execute the group as a whole async from the rest of the script (but individual actions in the group are executed sync)? Personally I would think a group marked "async" would be the latter since grouping implies, to me at least, that the actions are related.
  2. Assuming you mean "every action should be executed async" instead how do you handle items in the group that can't be executed async. Not every action in KM has the ability. Menu selections, mouse/window movements, etc... do you block them from being in the group?

  • a new coloured cogwheel that let's me changed the action's colour with a single click on the correct colour (the menu system is too slow for this simple function)

I created a Macro folder only active for KM and created a macro to set each color I use, and then assigned each the same keystroke so it triggers the conflict palette. An entire UI element to go from 3 clicks to 2 clicks seems a bit overkill, but I don't set colors that frequently (usually just comments and I actually have one macro to insert a comment and immediately color it).

You didn't understand my idea then. It would be a single click. The cogwheel would have about 8 colours and you just click in the quadrant that contains the colour you want. Voila, one click. I did say it was a single click, not two.

how big is this cogwheel? I assumed a duplicate of the existing cogwheel, which in no way can have 8 click targets in it.

As for your Q#1, I meant every internal item, not the structure as a single process. If it was just the one action becoming asynch, a flag on the cogwheel might be more appropriate, especially since it could be placed on EVERY action that way. I like that idea too.

I don't know how to answer Q#2. If a person doesn't know how to handle parallel code, they shouldn't be using it. This already applies to the existing asynch flag on the action which has it.

I'm not expecting any or all my ideas to win over The Architect. But I can dream.

If you don't think the existing cogwheel is big enough, then try to imagine a larger one. Maybe more like a rectangle.

Your idea of using hotkeys isn't bad, but having to memorize about 8 more hotkeys isn't really viable for an old guy like me.

I actually have a macro that does this...basically it copies an address to a variable, opens maps, selects the search box and pastes the address variable into it and searches for it. It's not the most eloquent macros but it works quite well for me.

I have two game controllers (a Wii controller and a generic playstation style controller) that I use with Keyboard Maestro. Use the "Device Key Trigger" with them.

nice, this could work as a Drag action over the cogwheel, drag to open, release to select

Good point. But controllers have feedback inputs, and your method wouldn't support that.

I was hoping you would just click on the colour and the action's colour would instantly change. There's no need for dragging anything. Perhaps you don't understand my idea. Just have small colour icons in the corner of the action and you click once on the colour to change the colour of the action. It can't be any simpler than that.

Oh I see, always visible, so they are always at hand.

Thanks for understanding. Instant colour. This would speed up my workflow, as I use colour to indicate how confident I am in the accuracy of my action (green=great, yellow=fair, red=bugged, etc.)

1 Like