Input prompts not appearing?

Just curious if anyone else is seeing this:

Since upgrading from Sonama 14.3 to 14.4, the "Prompt for User Input" step isn't showing a prompt, although the front window does become unfocused. I'm guessing this is because it's being displayed off-screen, maybe similar to this old issue.

I have multiple monitors, and I can usually fix it by unplugging all but one, and then triggering the macro. Then once the others are plugged in, it will work, but only for a while.

I'm using KM 10.2, and can usually re-create this by simply creating a new macro, adding this action, and running it.

Does it work if you add a Center Next Engine Position action before the prompt action?

-rob.

That doesn't seem to help.

BTW, I just noticed that it started being hidden when I was in full-screen mode and tried to trigger the macro that shows a prompt. Then once I exited full-screen, it continued being hidden.

Try restarting the KM Engine; maybe it got confused by the full screen stuff. File > Quit Engine in the Editor then File > Launch Engine.

-rob.

That doesn't seem to do it either. Only thing I've found that works is running the macro once with just a single monitor connected.

What I would do to try to troubleshoot this is drag the positions of the windows around in the System Settings / Displays pane. Changing their positions from vertical to horizontal, for example, might shake things up. Also to shake things up, change which monitor is the "Main."

Check the Engine.log file to see if there is more information there.

Changing the positions didn't seem to help, but changing the main monitor (with the menu bar) seemed to have the same effect as unplugging a monitor; it reset the position. Nothing special in the Engine.log.

When you said "Changing the positions didn't help", I'm not sure if you were trying to fix an existing problem of the box being offscreen, or if you made a change to the monitors when the problem was "working." My theory still is that changing the monitors' positions may result in a permanent fix, if and only if the problem isn't active.

Now I'm not saying that you should have to change your monitor arrangement, I'm only making this suggestion to help diagnose the problem. Fixing any problem becomes much easier once you have a technique to make the problem go away.

I googled the issue, and some people say they can move windows back onto the screen by going to system preferences and lowering/raising the screen resolutions (maybe setting a different text scaling would also work.) That seems a likely fix, but it's only a fix for a given instance of the problem, and won't prevent the problem in the future.

IDEA: Do you use macOS Spaces? That might be a factor. It might be on a different "space."

Perhaps people who are skilled with AppleScript will have a way of dealing with pop-up windows. Eg, perhaps they could write a macro that would move all pop-ups to the middle of the main screen.

Yeah, I misunderstood — I was trying it when the problem was happening.

Changing the arrangement while it was working didn't fix it, but it did reveal something:

  • in my original case, when the main monitor is to the top-left of the secondary monitor, and I reproduce the problem on the main monitor, the prompt isn't visible.
  • but when the secondary monitor is to the top-left of the main monitor, and I reproduce the problem on the main monitor, the prompt appears on the secondary monitor.

So it seems like it appears too far to the top-left, when it's triggered in full-screen.

I don't have spaces on.

That is exactly the kind of clue I was looking for when I made my suggestion. I was hopeful that my test might give you a result like that.

I'm not sure what the cause is, but I have a theory. You talk about "top left". Why aren't your monitors either directly side by side or on top of each other? I suspected (but still, it's just a guess) that the "midpoint" of the layout when your two monitors are combined is off screen. If you stop using a diagonal layout, that might fix the problem permanently. Why are you using a diagonal layout?

The chance that I'm right is only 20% here, which is small, but there's still a chance I'm right.

Try explicitly centering it on your main monitor before popping the prompt:

@Nige_S Didn't work — I think it gets semi-permanently confused about the size of the main screen.

@Airy I do it because I don't like accidentally moving the mouse to the wrong monitor; this way the corner is the only place they connect. I tried placing them side-by-side when things were working, and triggering the bug, but it still happened.

I'm also able to fix/reset it with the AppleScript in the other thread — this seems like the best workaround:

tell application "System Events"
   tell application process "Keyboard Maestro Engine"
      tell (first window whose subrole is "AXSystemFloatingWindow" and title is "Keyboard Maestro User Input")
         set its position to {20, 40}
      end tell
   end tell
end tell

It's probably slightly more efficient to do this with a KM action -- no need to spawn an AS instance:

I think "Next Engine Window" position declarations are transient -- they aren't stored in a plist that I can see -- but the prompt's last position should be remembered and honoured. So you could always do something like have a macro, triggered by "Display Change", that spawns, moves, and closes the prompt -- and, hopefully, you'll not have to worry about it again!

In your above sentence, if you meant you were able to trigger the bug while the monitors were side by side, then my theory is incorrect. But I'm not sure I understand your words above. If you had said "and," instead of "but," then I think I could understand your sentence.

In a diagonal layout, it may be the case that a "diagonal layout" doesn't have a "center" because the center would be at or near the two corners where the monitors "connect." That was my theory, and if your comment above says that you could replicate the problem when they weren't connected diagonally, then my theory is wrong. (Or, rather, my theory doesn't apply to your situation.)