Seeking Advice: Tailoring Keyboard Maestro for Citrix Viewer and Citrix Husk Window Management

Hello everyone,

I'm currently working with Citrix Workspace on my Mac and facing a unique challenge with managing window switching using Keyboard Maestro's Alt-Tab Window Changer. My specific issues are as follows:

  • All applications accessed via Citrix Workspace are labeled as “Citrix Viewer” and/or "Citrix Husk" windows creating confusion.
  • Some applications also open extra “Citrix Husk” windows.
  • The number of Citrix Viewer and Citrix Husk windows doesn't accurately reflect the actual number of open application windows, making Alt-Tab navigation inefficient.
  • This problem persists with both Mac’s native Alt-Tab and the third-party AltTab application.

I'm looking to find out if Keyboard Maestro can be used to:

  1. Ignore or selectively filter out extraneous “Citrix Viewer” and “Citrix Husk” windows.
  2. Rename these windows for easier identification and navigation.

Has anyone in this community worked on a similar issue or have suggestions on how to approach this? Any insights, workarounds, or alternative solutions would be highly appreciated.

Thanks in advance for your help!

CleanShot 2023-11-28 at 13.53.58

I know nothing of how Keyboard Maestro works behind the scenes, but we have a utility named Witch, which is similar to Alt-Tab, so I know how it works :).

The problem is this: We have to rely on the OS to tell us those window titles. And with Citrix, they're all being reported as the same. We've never been able to find a way around this, because there's literally no additional information we can access that would help us tell them apart.

We also can't rename windows, because we only have read access to the window information they send out. If there were some way to uniquely identify them, then we could keep a database of sorts, and tie that unique identifier to a window name that the user sets. But we don't have anything that can really make them uniquely identifiable, so we can't do that.

In short, I think you're probably stuck with it, because it's an OS limitation, so there's nothing KM can do to work around it. (@peternlewis obviously knows how his code works, so he may have more/different thoughts, but that's my perspective as someone involved with an app that has all sorts of hassles with various apps not providing correct window information.)