How to keep the Application Switcher window on the main monitor?

I have multiple monitors connected to my iMac. When I invoke KM's Application Switcher, the window that it pops up sometimes appears on one of the other monitors instead of the main iMac screen. What controls the choice of monitors/screens, and is there any way to tell it to always use the same one?

Basically, I'd like KM to always display the application switcher window on my main/iMac screen. Currently it sometimes doesn't do that, and I haven't figured out why or how to make it behave consistently.

Edit 2022-04-21: the screen that KM picks usually seems to be the one that has input focus at the time. For example, if the frontmost application is Safari and the last window I typed in is on screen 2, and I invoke the Application Switcher, the list of applications is shown on screen 2.

Try preceding the Application Switcher action in your macro with a call to the Set Next Engine Window Position action: action:Set Next Engine Window Position [Keyboard Maestro Wiki]

3 Likes

So I tried this, but it doesn't seem to make a difference. I looked at all the options it offers, but none involve selecting a screen. The best I could do is choose "Center":

The result is like before: the KM window (containing the list of applications) appears on another screen, not on the main screen.

Try this:

Center at
SCREENVISIBLE(Main, Right)*50%
SCREENVISIBLE(Main,Bottom)*50%

2 Likes

@Zabobon beat me to it :wink:

You can type into the fields so you are not limited to numeric values only. Like this:

Test Set Next Engine Window.kmmacros (3.4 KB)

Expand to see image of macro

This feature isn't very well explained, it seems to me.

1 Like

I tried it, but there has been no difference in the behavior. (I quit the KM engine and restarted KM to make sure.) This is what I have:

KM still puts the switcher on the screen where something had focus at the time I invoked the switcher.

I'm sure I'm doing something wrong, but I just can't seem to figure out what …

It should be

SCREEN(Main,...

and not

SCREENVISIBLE(Main,...

Also I'm not sure your use of Bottom is correct/appropriate. RTM.

1 Like

Yes, I think the SCREENVISIBLE bit is okay (seems to be heritage version of SCREEN). But the second part should be Right in top field and Bottom in lower field.

Not:

image

Or use @tiffle's more concise:

image

1 Like

I tried the revised version above, but no luck. The window appears on other screens and not the main screen.

@Zabobon and @tiffle do you actually use the application switcher with this construct, and it works for you? Or are you only suggesting these settings based on other principles? (I appreciate your answers in any case.)

Ah yes. The second one.
I must admit I never use the Keyboard Maestro Application Switcher and just assumed it would be treated as another Engine Window. But I can see you are right, it ignores any positioning command. In testing that, I did notice there is an option to position it under the mouse...

OK, at least I feel less dumb now :-).

Regarding positioning under the mouse: I saw that option, but unfortunately it's not useful in this context—the mouse might have been left somewhere over some window on some random screen and I will have long since switched to another app, so the mouse position often bears no relationship to the activity of the moment.

Ah... but it could be if you set your Application Switcher Macro to:

  1. Copy Current mouse position
  2. Move Mouse to Centre of your main screen
  3. Call up Application Switcher (under the mouse)
  4. Put mouse back where it was before the macro was run

It will all activate so fast you won't see the mouse pointer move but the Switcher will pop up in the centre of your Main Screen.

EXAMPLE Position Application Switcher Centre Main Screen.kmmacros (3.6 KB)

2 Likes

That’s the elephant in the room: I never use the KM app switcher and assumed, like @Zabobon, that it behaved like other KM Engine windows. Now I know better and it seems there could be a work-around thanks to Zabobon. Sorry that my initial advice was off-target - I guess we’re all still learning!

1 Like

Thank you – that works!

A minor issue is that it causes another application (my Point Light S) to trigger because the pointer is being moved, but I may be able to find a combination of settings that avoids it. In any case, your macros does in fact make the application switcher window consistently show on the main screen.

1 Like