Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AeroSpace moves CleanShot X's supplementary UI elements to primary monitor #221

Open
coldenate opened this issue May 9, 2024 · 2 comments

Comments

@coldenate
Copy link

Hi @nikitabobko! This app is amazing! I'd like to ask for insight on this bug

CleanShot 2024-05-08 at 21 34 08@2x (click me)

I experience an issue on CleanShot X where their UI for selecting a monitor is captured and grabbed by AeroSpace and moved to the current focused monitor.
Here's what I think is happening:
The supplementary "Drag to select capture area." button is placed on my secondary display. CleanShot X can notify me that I can optionally use my secondary display. Aerospace recognizes this and moves the button to my primary display, as I just saw it open.

I initially thought this config ↓ would help me, but it does not seem to work for that floating window from the CleanShot UI.

[[on-window-detected]]
if.app-id = 'pl.maketheweb.cleanshotx'
check-further-callbacks = true
run = 'layout floating'

Do you know how to better select this?

@nikitabobko
Copy link
Owner

nikitabobko commented May 23, 2024

I experience an issue on CleanShot X where their UI for selecting a monitor is captured and grabbed by AeroSpace and moved to the current focused monitor.

Please try 0.11.0-Beta. 0.11.0-Beta has an improved "popup" detection (suspicious windows without close, minimize, and maximize buttons). Maybe CleanShot is detected as a popup in 0.11.0-Beta

If it's not, please capture CleanShot window accessibility debug info with aerospace debug-windows command (actually, I'd be interested in the debug-windows output regardless of whether the bug is fixed)

@ahmed2m
Copy link

ahmed2m commented May 23, 2024

I have another bug with cleanshot X (I haven't tried using it with 2 monitors) my issue is when it's recording with CleanShot, there's a floating thing and a dropshadow over areas not recorded and a keyboard shortcut OSD on keyboard strokes.

I guess you can the bug in the video I recorded to document another bug in this comment: #121 (comment) if you look closely, I had to press option+j twice to focus the other window, Aerospace is focusing one of CleanShot's "windows" I guess.

I tried to reproduce today, it's still there but the menubar doesn't get empty as in the video, instead, it persists the most recent window items in these two or three ghost window switching attempts.

The following the debug dump for me trying to move focus between Kitty Terminal and Arc browser with CleanShotX, and I experienced like 2 ghost attempts.

debug-windows
net.kovidgoyal.kitty.window.5900 workspace: 1
net.kovidgoyal.kitty.window.5900 treeNodeParent: AppBundle.TilingContainer
net.kovidgoyal.kitty.window.5900 recognizedAsDialog: false
net.kovidgoyal.kitty.window.5900 AXTitle: Optional(aerospace debug-windows)
net.kovidgoyal.kitty.window.5900 AXRole: Optional(AXWindow)
net.kovidgoyal.kitty.window.5900 AXSubrole: Optional(AXStandardWindow)
net.kovidgoyal.kitty.window.5900 AXFocused: Optional(0)
net.kovidgoyal.kitty.window.5900 AXFullScreen: Optional(0)
net.kovidgoyal.kitty.window.5900 AXFrame: Optional(<AXValue 0x60000159a480> {value = x:735.000000 y:37.000000 w:735.000000 h:841.000000 type = kAXValueCGRectType})
net.kovidgoyal.kitty.window.5900 AXPosition: Optional(<AXValue 0x600000e99530> {value = x:735.000000 y:37.000000 type = kAXValueCGPointType})
net.kovidgoyal.kitty.window.5900 AXGrowArea: nil
net.kovidgoyal.kitty.window.5900 AXMinimizeButton: AXUIElement {
net.kovidgoyal.kitty.window.5900      AXRole: Optional(AXButton)
net.kovidgoyal.kitty.window.5900      AXTitle: nil
net.kovidgoyal.kitty.window.5900      AXSubrole: Optional(AXMinimizeButton)
net.kovidgoyal.kitty.window.5900      AXEnabled: Optional(1)
net.kovidgoyal.kitty.window.5900      AXParent: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty.window.5900      AXTopLevelUIElement: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty.window.5900      AXWindow: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty.window.5900      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription
net.kovidgoyal.kitty.window.5900 }
net.kovidgoyal.kitty.window.5900 AXDocument: nil
net.kovidgoyal.kitty.window.5900 AXSections: [
net.kovidgoyal.kitty.window.5900         Optional({
net.kovidgoyal.kitty.window.5900             SectionDescription = Content;
net.kovidgoyal.kitty.window.5900             SectionObject = "<AXUIElement 0x600000ef8180> {pid=87936}";
net.kovidgoyal.kitty.window.5900             SectionUniqueID = AXContent;
net.kovidgoyal.kitty.window.5900         })
net.kovidgoyal.kitty.window.5900 ]
net.kovidgoyal.kitty.window.5900 AXCloseButton: AXUIElement {
net.kovidgoyal.kitty.window.5900      AXRole: Optional(AXButton)
net.kovidgoyal.kitty.window.5900      AXTitle: nil
net.kovidgoyal.kitty.window.5900      AXSubrole: Optional(AXCloseButton)
net.kovidgoyal.kitty.window.5900      AXEnabled: Optional(1)
net.kovidgoyal.kitty.window.5900      AXParent: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty.window.5900      AXTopLevelUIElement: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty.window.5900      AXWindow: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty.window.5900      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription, AXEdited
net.kovidgoyal.kitty.window.5900 }
net.kovidgoyal.kitty.window.5900 AXMain: Optional(1)
net.kovidgoyal.kitty.window.5900 AXActivationPoint: Optional(<AXValue 0x600000ebb930> {value = x:805.000000 y:51.000000 type = kAXValueCGPointType})
net.kovidgoyal.kitty.window.5900 AXFullScreenButton: AXUIElement {
net.kovidgoyal.kitty.window.5900      AXRole: Optional(AXButton)
net.kovidgoyal.kitty.window.5900      AXTitle: nil
net.kovidgoyal.kitty.window.5900      AXSubrole: Optional(AXFullScreenButton)
net.kovidgoyal.kitty.window.5900      AXEnabled: Optional(1)
net.kovidgoyal.kitty.window.5900      AXParent: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty.window.5900      AXTopLevelUIElement: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty.window.5900      AXWindow: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty.window.5900      Ignored: AXFrame, AXSize, AXFocused, AXChildren, AXHelp, AXPosition, AXRoleDescription
net.kovidgoyal.kitty.window.5900 }
net.kovidgoyal.kitty.window.5900 AXProxy: nil
net.kovidgoyal.kitty.window.5900 AXDefaultButton: nil
net.kovidgoyal.kitty.window.5900 AXMinimized: Optional(0)
net.kovidgoyal.kitty.window.5900 AXParent: Optional(<AXUIElement Application 0x600000ebb930> {pid=87936})
net.kovidgoyal.kitty.window.5900 AXTitleUIElement: AXUIElement(windowId=5900, title=nil, role="AXStaticText", subrole=nil)
net.kovidgoyal.kitty.window.5900 AXCancelButton: nil
net.kovidgoyal.kitty.window.5900 AXModal: Optional(0)
net.kovidgoyal.kitty.window.5900 AXZoomButton: AXUIElement {
net.kovidgoyal.kitty.window.5900      AXRole: Optional(AXButton)
net.kovidgoyal.kitty.window.5900      AXTitle: nil
net.kovidgoyal.kitty.window.5900      AXSubrole: Optional(AXFullScreenButton)
net.kovidgoyal.kitty.window.5900      AXEnabled: Optional(1)
net.kovidgoyal.kitty.window.5900      AXParent: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty.window.5900      AXTopLevelUIElement: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty.window.5900      AXWindow: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty.window.5900      Ignored: AXFrame, AXSize, AXFocused, AXChildren, AXHelp, AXPosition, AXRoleDescription
net.kovidgoyal.kitty.window.5900 }
net.kovidgoyal.kitty.window.5900 AXSize: Optional(<AXValue 0x600000e99230> {value = w:735.000000 h:841.000000 type = kAXValueCGSizeType})
net.kovidgoyal.kitty.window.5900 AXToolbarButton: nil
net.kovidgoyal.kitty.window.5900 Ignored: AXChildrenInNavigationOrder, AXChildren, AXRoleDescription
net.kovidgoyal.kitty             AXRole: Optional(AXApplication)
net.kovidgoyal.kitty             AXTitle: Optional(kitty)
net.kovidgoyal.kitty             AXFunctionRowTopLevelElements: [
net.kovidgoyal.kitty             ]
net.kovidgoyal.kitty             AXFrame: nil
net.kovidgoyal.kitty             AXFocusedUIElement: AXUIElement(windowId=5900, title=nil, role="AXTextArea", subrole=nil)
net.kovidgoyal.kitty             AXFrontmost: Optional(1)
net.kovidgoyal.kitty             AXExtrasMenuBar: nil
net.kovidgoyal.kitty             AXMainWindow: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty             AXFocusedWindow: AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty             AXMenuBar: Optional(<AXUIElement 0x600000ef0390> {pid=87936})
net.kovidgoyal.kitty             AXWindows: [
net.kovidgoyal.kitty                 AXUIElement(windowId=5900, title="aerospace debug-windows", role="AXWindow", subrole="AXStandardWindow")
net.kovidgoyal.kitty             ]
net.kovidgoyal.kitty             AXSize: nil
net.kovidgoyal.kitty             AXPosition: nil
net.kovidgoyal.kitty             Ignored: AXChildren, AXChildrenInNavigationOrder, AXEnhancedUserInterface, AXPreferredLanguage, AXRoleDescription, AXHidden

pl.maketheweb.cleanshotx.window.5906 windowId: 5906
pl.maketheweb.cleanshotx.window.5906 workspace: 1
pl.maketheweb.cleanshotx.window.5906 treeNodeParent: Workspace(name: '1', isVisible: 'true', isEffectivelyEmpty: 'false')
pl.maketheweb.cleanshotx.window.5906 recognizedAsDialog: true
pl.maketheweb.cleanshotx.window.5906 AXTitle: Optional()
pl.maketheweb.cleanshotx.window.5906 AXRole: Optional(AXWindow)
pl.maketheweb.cleanshotx.window.5906 AXSubrole: Optional(AXStandardWindow)
pl.maketheweb.cleanshotx.window.5906 AXFocused: Optional(1)
pl.maketheweb.cleanshotx.window.5906 AXFullScreen: Optional(0)
pl.maketheweb.cleanshotx.window.5906 AXFrame: Optional(<AXValue 0x6000015b0880> {value = x:0.000000 y:0.000000 w:1470.000000 h:956.000000 type = kAXValueCGRectType})
pl.maketheweb.cleanshotx.window.5906 AXPosition: Optional(<AXValue 0x600000e98de0> {value = x:0.000000 y:0.000000 type = kAXValueCGPointType})
pl.maketheweb.cleanshotx.window.5906 AXGrowArea: nil
pl.maketheweb.cleanshotx.window.5906 AXMinimizeButton: nil
pl.maketheweb.cleanshotx.window.5906 AXDocument: nil
pl.maketheweb.cleanshotx.window.5906 AXSections: [
pl.maketheweb.cleanshotx.window.5906 ]
pl.maketheweb.cleanshotx.window.5906 AXCloseButton: nil
pl.maketheweb.cleanshotx.window.5906 AXMain: Optional(1)
pl.maketheweb.cleanshotx.window.5906 AXActivationPoint: Optional(<AXValue 0x600000ef0450> {value = x:-1.000000 y:957.000000 type = kAXValueCGPointType})
pl.maketheweb.cleanshotx.window.5906 AXFullScreenButton: nil
pl.maketheweb.cleanshotx.window.5906 AXProxy: nil
pl.maketheweb.cleanshotx.window.5906 AXDefaultButton: nil
pl.maketheweb.cleanshotx.window.5906 AXMinimized: Optional(0)
pl.maketheweb.cleanshotx.window.5906 AXParent: Optional(<AXUIElement Application 0x600000eb9f50> {pid=2055})
pl.maketheweb.cleanshotx.window.5906 AXTitleUIElement: nil
pl.maketheweb.cleanshotx.window.5906 AXCancelButton: nil
pl.maketheweb.cleanshotx.window.5906 AXModal: Optional(0)
pl.maketheweb.cleanshotx.window.5906 AXZoomButton: nil
pl.maketheweb.cleanshotx.window.5906 AXSize: Optional(<AXValue 0x600000e9b660> {value = w:1470.000000 h:956.000000 type = kAXValueCGSizeType})
pl.maketheweb.cleanshotx.window.5906 AXToolbarButton: nil
pl.maketheweb.cleanshotx.window.5906 Ignored: AXChildrenInNavigationOrder, AXChildren, AXRoleDescription
pl.maketheweb.cleanshotx             AXRole: Optional(AXApplication)
pl.maketheweb.cleanshotx             AXTitle: Optional(CleanShot X)
pl.maketheweb.cleanshotx             AXFunctionRowTopLevelElements: [
pl.maketheweb.cleanshotx             ]
pl.maketheweb.cleanshotx             AXFrame: nil
pl.maketheweb.cleanshotx             AXFocusedUIElement: AXUIElement(windowId=5906, title="", role="AXWindow", subrole="AXStandardWindow")
pl.maketheweb.cleanshotx             AXFrontmost: Optional(1)
pl.maketheweb.cleanshotx             AXExtrasMenuBar: Optional(<AXUIElement 0x600000e99560> {pid=2055})
pl.maketheweb.cleanshotx             AXMainWindow: AXUIElement(windowId=5906, title="", role="AXWindow", subrole="AXStandardWindow")
pl.maketheweb.cleanshotx             AXFocusedWindow: AXUIElement(windowId=5906, title="", role="AXWindow", subrole="AXStandardWindow")
pl.maketheweb.cleanshotx             AXMenuBar: Optional(<AXUIElement 0x600000e99560> {pid=2055})
pl.maketheweb.cleanshotx             AXWindows: [
pl.maketheweb.cleanshotx                 AXUIElement(windowId=5911, title="", role="AXWindow", subrole="AXDialog"),
pl.maketheweb.cleanshotx                 AXUIElement(windowId=5909, title="", role="AXWindow", subrole="AXStandardWindow"),
pl.maketheweb.cleanshotx                 AXUIElement(windowId=5906, title="", role="AXWindow", subrole="AXStandardWindow")
pl.maketheweb.cleanshotx             ]
pl.maketheweb.cleanshotx             AXSize: nil
pl.maketheweb.cleanshotx             AXPosition: nil
pl.maketheweb.cleanshotx             Ignored: AXChildren, AXChildrenInNavigationOrder, AXEnhancedUserInterface, AXPreferredLanguage, AXRoleDescription, AXHidden

pl.maketheweb.cleanshotx.window.5909 windowId: 5909
pl.maketheweb.cleanshotx.window.5909 workspace: 1
pl.maketheweb.cleanshotx.window.5909 treeNodeParent: Workspace(name: '1', isVisible: 'true', isEffectivelyEmpty: 'false')
pl.maketheweb.cleanshotx.window.5909 recognizedAsDialog: true
pl.maketheweb.cleanshotx.window.5909 AXTitle: Optional()
pl.maketheweb.cleanshotx.window.5909 AXRole: Optional(AXWindow)
pl.maketheweb.cleanshotx.window.5909 AXSubrole: Optional(AXStandardWindow)
pl.maketheweb.cleanshotx.window.5909 AXFocused: Optional(1)
pl.maketheweb.cleanshotx.window.5909 AXFullScreen: Optional(0)
pl.maketheweb.cleanshotx.window.5909 AXFrame: Optional(<AXValue 0x6000015b0e40> {value = x:535.000000 y:675.000000 w:267.000000 h:59.000000 type = kAXValueCGRectType})
pl.maketheweb.cleanshotx.window.5909 AXPosition: Optional(<AXValue 0x600000e97660> {value = x:535.000000 y:675.000000 type = kAXValueCGPointType})
pl.maketheweb.cleanshotx.window.5909 AXGrowArea: nil
pl.maketheweb.cleanshotx.window.5909 AXMinimizeButton: nil
pl.maketheweb.cleanshotx.window.5909 AXDocument: nil
pl.maketheweb.cleanshotx.window.5909 AXSections: [
pl.maketheweb.cleanshotx.window.5909         Optional({
pl.maketheweb.cleanshotx.window.5909             SectionDescription = Content;
pl.maketheweb.cleanshotx.window.5909             SectionObject = "<AXUIElement 0x600000ebb300> {pid=2055}";
pl.maketheweb.cleanshotx.window.5909             SectionUniqueID = AXContent;
pl.maketheweb.cleanshotx.window.5909         })
pl.maketheweb.cleanshotx.window.5909 ]
pl.maketheweb.cleanshotx.window.5909 AXCloseButton: nil
pl.maketheweb.cleanshotx.window.5909 AXMain: Optional(1)
pl.maketheweb.cleanshotx.window.5909 AXActivationPoint: Optional(<AXValue 0x600000e97660> {value = x:546.000000 y:723.000000 type = kAXValueCGPointType})
pl.maketheweb.cleanshotx.window.5909 AXFullScreenButton: nil
pl.maketheweb.cleanshotx.window.5909 AXProxy: nil
pl.maketheweb.cleanshotx.window.5909 AXDefaultButton: nil
pl.maketheweb.cleanshotx.window.5909 AXMinimized: Optional(0)
pl.maketheweb.cleanshotx.window.5909 AXParent: Optional(<AXUIElement Application 0x600000eba1f0> {pid=2055})
pl.maketheweb.cleanshotx.window.5909 AXTitleUIElement: nil
pl.maketheweb.cleanshotx.window.5909 AXCancelButton: nil
pl.maketheweb.cleanshotx.window.5909 AXModal: Optional(0)
pl.maketheweb.cleanshotx.window.5909 AXZoomButton: nil
pl.maketheweb.cleanshotx.window.5909 AXSize: Optional(<AXValue 0x600000eba1f0> {value = w:267.000000 h:59.000000 type = kAXValueCGSizeType})
pl.maketheweb.cleanshotx.window.5909 AXToolbarButton: nil
pl.maketheweb.cleanshotx.window.5909 Ignored: AXChildrenInNavigationOrder, AXChildren, AXRoleDescription
pl.maketheweb.cleanshotx             AXRole: Optional(AXApplication)
pl.maketheweb.cleanshotx             AXTitle: Optional(CleanShot X)
pl.maketheweb.cleanshotx             AXFunctionRowTopLevelElements: [
pl.maketheweb.cleanshotx             ]
pl.maketheweb.cleanshotx             AXFrame: nil
pl.maketheweb.cleanshotx             AXFocusedUIElement: AXUIElement(windowId=5909, title="", role="AXWindow", subrole="AXStandardWindow")
pl.maketheweb.cleanshotx             AXFrontmost: Optional(1)
pl.maketheweb.cleanshotx             AXExtrasMenuBar: Optional(<AXUIElement 0x600000ebbe70> {pid=2055})
pl.maketheweb.cleanshotx             AXMainWindow: AXUIElement(windowId=5909, title="", role="AXWindow", subrole="AXStandardWindow")
pl.maketheweb.cleanshotx             AXFocusedWindow: AXUIElement(windowId=5909, title="", role="AXWindow", subrole="AXStandardWindow")
pl.maketheweb.cleanshotx             AXMenuBar: Optional(<AXUIElement 0x600000e9dbf0> {pid=2055})
pl.maketheweb.cleanshotx             AXWindows: [
pl.maketheweb.cleanshotx                 AXUIElement(windowId=5911, title="", role="AXWindow", subrole="AXDialog"),
pl.maketheweb.cleanshotx                 AXUIElement(windowId=5909, title="", role="AXWindow", subrole="AXStandardWindow"),
pl.maketheweb.cleanshotx                 AXUIElement(windowId=5906, title="", role="AXWindow", subrole="AXStandardWindow")
pl.maketheweb.cleanshotx             ]
pl.maketheweb.cleanshotx             AXSize: nil
pl.maketheweb.cleanshotx             AXPosition: nil
pl.maketheweb.cleanshotx             Ignored: AXChildren, AXChildrenInNavigationOrder, AXEnhancedUserInterface, AXPreferredLanguage, AXRoleDescription, AXHidden

company.thebrowser.Browser.window.3202 windowId: 3202
company.thebrowser.Browser.window.3202 workspace: 1
company.thebrowser.Browser.window.3202 treeNodeParent: AppBundle.TilingContainer
company.thebrowser.Browser.window.3202 recognizedAsDialog: false
company.thebrowser.Browser.window.3202 AXTitle: Optional(AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace)
company.thebrowser.Browser.window.3202 AXRole: Optional(AXWindow)
company.thebrowser.Browser.window.3202 AXSubrole: Optional(AXStandardWindow)
company.thebrowser.Browser.window.3202 AXIdentifier: Optional(bigBrowserWindow-E4358D42-4E2C-4FB0-B651-747D27521B8D)
company.thebrowser.Browser.window.3202 AXFocused: Optional(0)
company.thebrowser.Browser.window.3202 AXFullScreen: Optional(0)
company.thebrowser.Browser.window.3202 AXFrame: Optional(<AXValue 0x6000015bd800> {value = x:-0.000000 y:37.000000 w:735.000000 h:841.000000 type = kAXValueCGRectType})
company.thebrowser.Browser.window.3202 AXPosition: Optional(<AXValue 0x600000e991a0> {value = x:-0.000000 y:37.000000 type = kAXValueCGPointType})
company.thebrowser.Browser.window.3202 AXGrowArea: nil
company.thebrowser.Browser.window.3202 AXMinimizeButton: AXUIElement {
company.thebrowser.Browser.window.3202      AXRole: Optional(AXButton)
company.thebrowser.Browser.window.3202      AXTitle: nil
company.thebrowser.Browser.window.3202      AXSubrole: Optional(AXMinimizeButton)
company.thebrowser.Browser.window.3202      AXEnabled: Optional(1)
company.thebrowser.Browser.window.3202      AXParent: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.3202      AXTopLevelUIElement: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.3202      AXWindow: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.3202      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription
company.thebrowser.Browser.window.3202 }
company.thebrowser.Browser.window.3202 AXDocument: nil
company.thebrowser.Browser.window.3202 AXSections: [
company.thebrowser.Browser.window.3202         Optional({
company.thebrowser.Browser.window.3202             SectionDescription = Content;
company.thebrowser.Browser.window.3202             SectionObject = "<AXUIElement 0x600000e99380> {pid=1068}";
company.thebrowser.Browser.window.3202             SectionUniqueID = AXContent;
company.thebrowser.Browser.window.3202         }),
company.thebrowser.Browser.window.3202         Optional({
company.thebrowser.Browser.window.3202             SectionDescription = "Top Level Navigator";
company.thebrowser.Browser.window.3202             SectionObject = "<AXUIElement 0x600000e99710> {pid=1068}";
company.thebrowser.Browser.window.3202             SectionUniqueID = AXTopLevelNavigator;
company.thebrowser.Browser.window.3202         }),
company.thebrowser.Browser.window.3202         Optional({
company.thebrowser.Browser.window.3202             SectionObject = "<AXUIElement 0x600000e99290> {pid=1068}";
company.thebrowser.Browser.window.3202             SectionUniqueID = AXContainer;
company.thebrowser.Browser.window.3202         }),
company.thebrowser.Browser.window.3202         Optional({
company.thebrowser.Browser.window.3202             SectionObject = "<AXUIElement 0x600000e9c9f0> {pid=1068}";
company.thebrowser.Browser.window.3202             SectionUniqueID = AXContainer;
company.thebrowser.Browser.window.3202         }),
company.thebrowser.Browser.window.3202         Optional({
company.thebrowser.Browser.window.3202             SectionDescription = "Content Navigator";
company.thebrowser.Browser.window.3202             SectionObject = "<AXUIElement 0x600000e9d290> {pid=1068}";
company.thebrowser.Browser.window.3202             SectionUniqueID = AXContentNavigator;
company.thebrowser.Browser.window.3202         })
company.thebrowser.Browser.window.3202 ]
company.thebrowser.Browser.window.3202 AXCloseButton: AXUIElement {
company.thebrowser.Browser.window.3202      AXRole: Optional(AXButton)
company.thebrowser.Browser.window.3202      AXTitle: nil
company.thebrowser.Browser.window.3202      AXSubrole: Optional(AXCloseButton)
company.thebrowser.Browser.window.3202      AXEnabled: Optional(1)
company.thebrowser.Browser.window.3202      AXParent: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.3202      AXTopLevelUIElement: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.3202      AXWindow: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.3202      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription, AXEdited
company.thebrowser.Browser.window.3202 }
company.thebrowser.Browser.window.3202 AXMain: Optional(1)
company.thebrowser.Browser.window.3202 AXActivationPoint: Optional(<AXValue 0x600000e97570> {value = x:10.000000 y:51.000000 type = kAXValueCGPointType})
company.thebrowser.Browser.window.3202 AXFullScreenButton: AXUIElement {
company.thebrowser.Browser.window.3202      AXRole: Optional(AXButton)
company.thebrowser.Browser.window.3202      AXTitle: nil
company.thebrowser.Browser.window.3202      AXSubrole: Optional(AXFullScreenButton)
company.thebrowser.Browser.window.3202      AXEnabled: Optional(1)
company.thebrowser.Browser.window.3202      AXParent: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.3202      AXTopLevelUIElement: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.3202      AXWindow: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.3202      Ignored: AXFrame, AXSize, AXFocused, AXChildren, AXHelp, AXPosition, AXRoleDescription
company.thebrowser.Browser.window.3202 }
company.thebrowser.Browser.window.3202 AXProxy: nil
company.thebrowser.Browser.window.3202 AXDefaultButton: nil
company.thebrowser.Browser.window.3202 AXMinimized: Optional(0)
company.thebrowser.Browser.window.3202 AXParent: Optional(<AXUIElement Application 0x600000ef0ab0> {pid=1068})
company.thebrowser.Browser.window.3202 AXTitleUIElement: nil
company.thebrowser.Browser.window.3202 AXCancelButton: nil
company.thebrowser.Browser.window.3202 AXModal: Optional(0)
company.thebrowser.Browser.window.3202 AXZoomButton: AXUIElement {
company.thebrowser.Browser.window.3202      AXRole: Optional(AXButton)
company.thebrowser.Browser.window.3202      AXTitle: nil
company.thebrowser.Browser.window.3202      AXSubrole: Optional(AXFullScreenButton)
company.thebrowser.Browser.window.3202      AXEnabled: Optional(1)
company.thebrowser.Browser.window.3202      AXParent: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.3202      AXTopLevelUIElement: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.3202      AXWindow: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.3202      Ignored: AXFrame, AXSize, AXFocused, AXChildren, AXHelp, AXPosition, AXRoleDescription
company.thebrowser.Browser.window.3202 }
company.thebrowser.Browser.window.3202 AXSize: Optional(<AXValue 0x600000e97570> {value = w:735.000000 h:841.000000 type = kAXValueCGSizeType})
company.thebrowser.Browser.window.3202 AXToolbarButton: nil
company.thebrowser.Browser.window.3202 Ignored: AXChildrenInNavigationOrder, AXChildren, AXRoleDescription
company.thebrowser.Browser             AXRole: Optional(AXApplication)
company.thebrowser.Browser             AXTitle: Optional(Arc)
company.thebrowser.Browser             AXFunctionRowTopLevelElements: [
company.thebrowser.Browser             ]
company.thebrowser.Browser             AXFrame: nil
company.thebrowser.Browser             AXFocusedUIElement: nil
company.thebrowser.Browser             AXFrontmost: Optional(1)
company.thebrowser.Browser             AXExtrasMenuBar: nil
company.thebrowser.Browser             AXMainWindow: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser             AXFocusedWindow: AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser             AXMenuBar: Optional(<AXUIElement 0x600000eb98c0> {pid=1068})
company.thebrowser.Browser             AXWindows: [
company.thebrowser.Browser                 AXUIElement(windowId=3202, title="AeroSpace moves CleanShot X's supplementary UI elements to primary monitor · Issue #221 · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser             ]
company.thebrowser.Browser             AXSize: nil
company.thebrowser.Browser             AXPosition: nil
company.thebrowser.Browser             Ignored: AXChildren, AXChildrenInNavigationOrder, AXEnhancedUserInterface, AXPreferredLanguage, AXRoleDescription, AXHidden

!!! DISCLAIMER !!!
!!! 'debug-windows' command is not stable API. Please don't rely on the command existence and output format !!!
!!! The only intended use case is to report bugs about incorrect windows handling !!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants