Keyboard Maestro UI Annoyances: Selecting Search Bar on Drag/Drop Action, Guessing Variable Names

Not sure these annoy any one but me, but I thought I'd throw them out there for @peternlewis to consider.

2 issues in the video:

  1. First I drag a For Each action to a macro. When I do this the search bar in the action selector becomes selected (labeled 1 in the video) instead of the (labeled 2) text field in the For Each. So I begin typing a variable name and it goes into the search field. I do this A LOT.

    Even if the text field in the For Each can't become the selected entry for text, can the search bar not be selected for text and nothing happen when I start typing? Much more annoying to have to delete or click the x after messing that up.

  2. After adding my variable name for the loop iterator, I change the For Each to work on a lines collection and set it to use the lines in a variable (labeled 3). It guesses the variable name as the loop iterator variable, but this is never what I want to do. A better (but not 100%) guess is to use the last variable action before the loop was created.

    This doesn't bug me nearly as much as the first one. Typing over with the correct variable isn't a big deal. But since I was doing the video for the first I figured I'd tag this one in as well.

No it doesn't. When you drag and drop something, the text focus does not change. The search field is focussed after the drag, because the search field was focussed before the drag.

Create two email message windows in Mail, and drag some text from the front one and drop it in the back one. The front one stays focussed.

Try to drag from the back one to the front one. You cannot because you first have to focus on it, and then you can drag from it.

If you double click the action, it would be added and focussed.

The search field becomes focussed when you click on the action selector.

Keyboard Maestro guesses the last variable you used when creating an action that has a variable. In this case, its the wrong guess because yes, the source variable is the least likely variable name for the collection variable.

But no guess is going to be right all the time. Guessing the last used variable seems to be about the best solution, even if it is wrong in this case. For example, in this case if you performed the tasks in the other order (create the first action, name the variable, add the For Each action, add the Lines in collection, configure it to Variable (variable name is correct), change the For Each variable), it would guess correctly. And the next guessed variable would likely to be correct to, since it would now be the For Each variable.

Sure, I guess I could special case a collection variable, and exclude it from being the contained collection variable, maybe keep a stack of two possible variables to guess from and try to guess better. But its not AI, its guess is frankly not this clever. It's just an attempt to not be wrong every time, which “VarName” would be.