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

Wrong windows gets focused when dealing with multiple windows of the same application #591

Closed
3 tasks done
shoplab7 opened this issue Oct 14, 2024 · 1 comment
Closed
3 tasks done
Labels
duplicate The issue is a duplicate

Comments

@shoplab7
Copy link

shoplab7 commented Oct 14, 2024

I have 3 displays. When I have 2 windows of the same app on 2 of them and try to use focus-monitor next/prev, wrong window gets focus.
For example, I have
1 - browser
2 - vscode
3 - vscode
(1, 2, 3 are displays)
I start from display1, use "focus-monitor --wrap-around next" 3 times and get back to the display1. (all focus commands work completely fine)
then try to use "focus-monitor --wrap-around prev" once. display3 gets focused for a split of a second, and then focus switches to display2 instead of just focusing on display3.

debug-windows
com.googlecode.iterm2.window.440 windowId: 440
com.googlecode.iterm2.window.440 workspace: 2
com.googlecode.iterm2.window.440 treeNodeParent: Workspace(name: '2', isVisible: 'true', isEffectivelyEmpty: 'false', doKeepAlive: 'true')
com.googlecode.iterm2.window.440 recognizedAsDialog: true

com.googlecode.iterm2            AXRole: Optional(AXApplication)
com.googlecode.iterm2            AXTitle: Optional(iTerm2)
com.googlecode.iterm2            AXFunctionRowTopLevelElements: [
com.googlecode.iterm2            ]
com.googlecode.iterm2            AXFrame: nil
com.googlecode.iterm2            AXFocusedUIElement: AXUIElement(windowId=440, title=nil, role="AXTextArea", subrole=nil)
com.googlecode.iterm2            AXFrontmost: Optional(1)
com.googlecode.iterm2            AXExtrasMenuBar: nil
com.googlecode.iterm2            AXMainWindow: AXUIElement(windowId=440, title="iTerm2 Hotkey Window", role="AXWindow", subrole="AXStandardWindow")
com.googlecode.iterm2            AXFocusedWindow: AXUIElement(windowId=440, title="iTerm2 Hotkey Window", role="AXWindow", subrole="AXStandardWindow")
com.googlecode.iterm2            AXMenuBar: Optional(<AXUIElement 0x60000358d140> {pid=739})
com.googlecode.iterm2            AXWindows: [
com.googlecode.iterm2                AXUIElement(windowId=440, title="iTerm2 Hotkey Window", role="AXWindow", subrole="AXStandardWindow")
com.googlecode.iterm2            ]
com.googlecode.iterm2            AXSize: nil
com.googlecode.iterm2            AXPosition: nil
com.googlecode.iterm2            Ignored: AXChildren, AXChildrenInNavigationOrder, AXEnhancedUserInterface, AXPreferredLanguage, AXRoleDescription, AXHidden

company.thebrowser.Browser.window.24522 windowId: 24522
company.thebrowser.Browser.window.24522 workspace: 1
company.thebrowser.Browser.window.24522 treeNodeParent: AppBundle.TilingContainer
company.thebrowser.Browser.window.24522 recognizedAsDialog: false
company.thebrowser.Browser.window.24522 AXTitle: Optional(New Issue · nikitabobko/AeroSpace)
company.thebrowser.Browser.window.24522 AXRole: Optional(AXWindow)
company.thebrowser.Browser.window.24522 AXSubrole: Optional(AXStandardWindow)
company.thebrowser.Browser.window.24522 AXIdentifier: Optional(bigBrowserWindow-2941407C-B40C-4BEE-B9E8-B44C4D41230D)
company.thebrowser.Browser.window.24522 AXFocused: Optional(0)
company.thebrowser.Browser.window.24522 AXFullScreen: Optional(0)
company.thebrowser.Browser.window.24522 AXFrame: Optional(<AXValue 0x600002ef8e40> {value = x:-1053.000000 y:-1055.000000 w:1920.000000 h:1054.000000 type = kAXValueCGRectType})
company.thebrowser.Browser.window.24522 AXPosition: Optional(<AXValue 0x60000358cf60> {value = x:-1053.000000 y:-1055.000000 type = kAXValueCGPointType})
company.thebrowser.Browser.window.24522 AXGrowArea: nil
company.thebrowser.Browser.window.24522 AXMinimizeButton: AXUIElement {
company.thebrowser.Browser.window.24522      AXRole: Optional(AXButton)
company.thebrowser.Browser.window.24522      AXTitle: nil
company.thebrowser.Browser.window.24522      AXSubrole: Optional(AXMinimizeButton)
company.thebrowser.Browser.window.24522      AXEnabled: Optional(1)
company.thebrowser.Browser.window.24522      AXParent: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.24522      AXTopLevelUIElement: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.24522      AXWindow: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.24522      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription
company.thebrowser.Browser.window.24522 }
company.thebrowser.Browser.window.24522 AXDocument: nil
company.thebrowser.Browser.window.24522 AXSections: [
company.thebrowser.Browser.window.24522         Optional({
company.thebrowser.Browser.window.24522             SectionDescription = Content;
company.thebrowser.Browser.window.24522             SectionObject = "<AXUIElement 0x6000035b8f90> {pid=42582}";
company.thebrowser.Browser.window.24522             SectionUniqueID = AXContent;
company.thebrowser.Browser.window.24522         }),
company.thebrowser.Browser.window.24522         Optional({
company.thebrowser.Browser.window.24522             SectionDescription = "Top Level Navigator";
company.thebrowser.Browser.window.24522             SectionObject = "<AXUIElement 0x6000035b8480> {pid=42582}";
company.thebrowser.Browser.window.24522             SectionUniqueID = AXTopLevelNavigator;
company.thebrowser.Browser.window.24522         }),
company.thebrowser.Browser.window.24522         Optional({
company.thebrowser.Browser.window.24522             SectionObject = "<AXUIElement 0x6000035b89c0> {pid=42582}";
company.thebrowser.Browser.window.24522             SectionUniqueID = AXContainer;
company.thebrowser.Browser.window.24522         }),
company.thebrowser.Browser.window.24522         Optional({
company.thebrowser.Browser.window.24522             SectionObject = "<AXUIElement 0x6000035b9cb0> {pid=42582}";
company.thebrowser.Browser.window.24522             SectionUniqueID = AXContainer;
company.thebrowser.Browser.window.24522         }),
company.thebrowser.Browser.window.24522         Optional({
company.thebrowser.Browser.window.24522             SectionDescription = "Content Navigator";
company.thebrowser.Browser.window.24522             SectionObject = "<AXUIElement 0x6000035b8630> {pid=42582}";
company.thebrowser.Browser.window.24522             SectionUniqueID = AXContentNavigator;
company.thebrowser.Browser.window.24522         })
company.thebrowser.Browser.window.24522 ]
company.thebrowser.Browser.window.24522 AXCloseButton: AXUIElement {
company.thebrowser.Browser.window.24522      AXRole: Optional(AXButton)
company.thebrowser.Browser.window.24522      AXTitle: nil
company.thebrowser.Browser.window.24522      AXSubrole: Optional(AXCloseButton)
company.thebrowser.Browser.window.24522      AXEnabled: Optional(1)
company.thebrowser.Browser.window.24522      AXParent: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.24522      AXTopLevelUIElement: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.24522      AXWindow: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.24522      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription, AXEdited
company.thebrowser.Browser.window.24522 }
company.thebrowser.Browser.window.24522 AXMain: Optional(1)
company.thebrowser.Browser.window.24522 AXActivationPoint: Optional(<AXValue 0x60000358cf60> {value = x:-1043.000000 y:-1041.000000 type = kAXValueCGPointType})
company.thebrowser.Browser.window.24522 AXFullScreenButton: AXUIElement {
company.thebrowser.Browser.window.24522      AXRole: Optional(AXButton)
company.thebrowser.Browser.window.24522      AXTitle: nil
company.thebrowser.Browser.window.24522      AXSubrole: Optional(AXFullScreenButton)
company.thebrowser.Browser.window.24522      AXEnabled: Optional(1)
company.thebrowser.Browser.window.24522      AXParent: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.24522      AXTopLevelUIElement: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.24522      AXWindow: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.24522      Ignored: AXFrame, AXSize, AXFocused, AXChildren, AXHelp, AXPosition, AXRoleDescription
company.thebrowser.Browser.window.24522 }
company.thebrowser.Browser.window.24522 AXProxy: nil
company.thebrowser.Browser.window.24522 AXDefaultButton: nil
company.thebrowser.Browser.window.24522 AXMinimized: Optional(0)
company.thebrowser.Browser.window.24522 AXParent: Optional(<AXUIElement Application 0x60000358cf60> {pid=42582})
company.thebrowser.Browser.window.24522 AXTitleUIElement: nil
company.thebrowser.Browser.window.24522 AXCancelButton: nil
company.thebrowser.Browser.window.24522 AXModal: Optional(0)
company.thebrowser.Browser.window.24522 AXZoomButton: AXUIElement {
company.thebrowser.Browser.window.24522      AXRole: Optional(AXButton)
company.thebrowser.Browser.window.24522      AXTitle: nil
company.thebrowser.Browser.window.24522      AXSubrole: Optional(AXFullScreenButton)
company.thebrowser.Browser.window.24522      AXEnabled: Optional(1)
company.thebrowser.Browser.window.24522      AXParent: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.24522      AXTopLevelUIElement: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.24522      AXWindow: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser.window.24522      Ignored: AXFrame, AXSize, AXFocused, AXChildren, AXHelp, AXPosition, AXRoleDescription
company.thebrowser.Browser.window.24522 }
company.thebrowser.Browser.window.24522 AXSize: Optional(<AXValue 0x6000035b83f0> {value = w:1920.000000 h:1054.000000 type = kAXValueCGSizeType})
company.thebrowser.Browser.window.24522 AXToolbarButton: nil
company.thebrowser.Browser.window.24522 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: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWebArea", subrole=nil)
company.thebrowser.Browser              AXFrontmost: Optional(1)
company.thebrowser.Browser              AXExtrasMenuBar: nil
company.thebrowser.Browser              AXMainWindow: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser              AXFocusedWindow: AXUIElement(windowId=24522, title="New Issue · nikitabobko/AeroSpace", role="AXWindow", subrole="AXStandardWindow")
company.thebrowser.Browser              AXMenuBar: Optional(<AXUIElement 0x60000358e8b0> {pid=42582})
company.thebrowser.Browser              AXWindows: [
company.thebrowser.Browser                  AXUIElement(windowId=24522, title="New Issue · 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

com.microsoft.VSCode.window.24716 windowId: 24716
com.microsoft.VSCode.window.24716 workspace: 2
com.microsoft.VSCode.window.24716 treeNodeParent: AppBundle.TilingContainer
com.microsoft.VSCode.window.24716 recognizedAsDialog: false
com.microsoft.VSCode.window.24716 AXTitle: Optional(.aerospace.toml)
com.microsoft.VSCode.window.24716 AXRole: Optional(AXWindow)
com.microsoft.VSCode.window.24716 AXSubrole: Optional(AXStandardWindow)
com.microsoft.VSCode.window.24716 AXFocused: Optional(0)
com.microsoft.VSCode.window.24716 AXFullScreen: Optional(0)
com.microsoft.VSCode.window.24716 AXFrame: Optional(<AXValue 0x600002ef9780> {value = x:-0.000000 y:38.000000 w:1728.000000 h:1078.000000 type = kAXValueCGRectType})
com.microsoft.VSCode.window.24716 AXPosition: Optional(<AXValue 0x60000358d530> {value = x:-0.000000 y:38.000000 type = kAXValueCGPointType})
com.microsoft.VSCode.window.24716 AXGrowArea: nil
com.microsoft.VSCode.window.24716 AXMinimizeButton: AXUIElement {
com.microsoft.VSCode.window.24716      AXRole: Optional(AXButton)
com.microsoft.VSCode.window.24716      AXTitle: nil
com.microsoft.VSCode.window.24716      AXSubrole: Optional(AXMinimizeButton)
com.microsoft.VSCode.window.24716      AXEnabled: Optional(1)
com.microsoft.VSCode.window.24716      AXParent: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24716      AXTopLevelUIElement: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24716      AXWindow: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24716      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription
com.microsoft.VSCode.window.24716 }
com.microsoft.VSCode.window.24716 AXDocument: Optional(file:///Users/artemhryn/.aerospace.toml)
com.microsoft.VSCode.window.24716 AXSections: [
com.microsoft.VSCode.window.24716         Optional({
com.microsoft.VSCode.window.24716             SectionDescription = Content;
com.microsoft.VSCode.window.24716             SectionObject = "<AXUIElement 0x60000358f270> {pid=87779}";
com.microsoft.VSCode.window.24716             SectionUniqueID = AXContent;
com.microsoft.VSCode.window.24716         }),
com.microsoft.VSCode.window.24716         Optional({
com.microsoft.VSCode.window.24716             SectionObject = "<AXUIElement 0x60000358d4d0> {pid=87779}";
com.microsoft.VSCode.window.24716             SectionUniqueID = AXContainer;
com.microsoft.VSCode.window.24716         })
com.microsoft.VSCode.window.24716 ]
com.microsoft.VSCode.window.24716 AXCloseButton: AXUIElement {
com.microsoft.VSCode.window.24716      AXRole: Optional(AXButton)
com.microsoft.VSCode.window.24716      AXTitle: nil
com.microsoft.VSCode.window.24716      AXSubrole: Optional(AXCloseButton)
com.microsoft.VSCode.window.24716      AXEnabled: Optional(1)
com.microsoft.VSCode.window.24716      AXParent: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24716      AXTopLevelUIElement: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24716      AXWindow: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24716      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription, AXEdited
com.microsoft.VSCode.window.24716 }
com.microsoft.VSCode.window.24716 AXMain: Optional(1)
com.microsoft.VSCode.window.24716 AXActivationPoint: Optional(<AXValue 0x6000035bbc60> {value = x:-1.000000 y:1118.000000 type = kAXValueCGPointType})
com.microsoft.VSCode.window.24716 AXFullScreenButton: AXUIElement {
com.microsoft.VSCode.window.24716      AXRole: Optional(AXButton)
com.microsoft.VSCode.window.24716      AXTitle: nil
com.microsoft.VSCode.window.24716      AXSubrole: Optional(AXFullScreenButton)
com.microsoft.VSCode.window.24716      AXEnabled: Optional(1)
com.microsoft.VSCode.window.24716      AXParent: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24716      AXTopLevelUIElement: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24716      AXWindow: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24716      Ignored: AXFrame, AXSize, AXFocused, AXChildren, AXHelp, AXPosition, AXRoleDescription
com.microsoft.VSCode.window.24716 }
com.microsoft.VSCode.window.24716 AXProxy: nil
com.microsoft.VSCode.window.24716 AXDefaultButton: nil
com.microsoft.VSCode.window.24716 AXMinimized: Optional(0)
com.microsoft.VSCode.window.24716 AXParent: Optional(<AXUIElement Application 0x60000358d4d0> {pid=87779})
com.microsoft.VSCode.window.24716 AXTitleUIElement: nil
com.microsoft.VSCode.window.24716 AXCancelButton: nil
com.microsoft.VSCode.window.24716 AXModal: Optional(0)
com.microsoft.VSCode.window.24716 AXZoomButton: AXUIElement {
com.microsoft.VSCode.window.24716      AXRole: Optional(AXButton)
com.microsoft.VSCode.window.24716      AXTitle: nil
com.microsoft.VSCode.window.24716      AXSubrole: Optional(AXFullScreenButton)
com.microsoft.VSCode.window.24716      AXEnabled: Optional(1)
com.microsoft.VSCode.window.24716      AXParent: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24716      AXTopLevelUIElement: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24716      AXWindow: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24716      Ignored: AXFrame, AXSize, AXFocused, AXChildren, AXHelp, AXPosition, AXRoleDescription
com.microsoft.VSCode.window.24716 }
com.microsoft.VSCode.window.24716 AXSize: Optional(<AXValue 0x6000035bbc60> {value = w:1728.000000 h:1078.000000 type = kAXValueCGSizeType})
com.microsoft.VSCode.window.24716 AXToolbarButton: nil
com.microsoft.VSCode.window.24716 Ignored: AXChildrenInNavigationOrder, AXChildren, AXRoleDescription
com.microsoft.VSCode              AXRole: Optional(AXApplication)
com.microsoft.VSCode              AXTitle: Optional(Code)
com.microsoft.VSCode              AXFunctionRowTopLevelElements: [
com.microsoft.VSCode              ]
com.microsoft.VSCode              AXManualAccessibility: Optional(1)
com.microsoft.VSCode              AXFrame: nil
com.microsoft.VSCode              AXFocusedUIElement: AXUIElement(windowId=24716, title="", role="AXTextArea", subrole=nil)
com.microsoft.VSCode              AXFrontmost: Optional(1)
com.microsoft.VSCode              AXExtrasMenuBar: nil
com.microsoft.VSCode              AXMainWindow: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode              AXFocusedWindow: AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode              AXMenuBar: Optional(<AXUIElement 0x60000358dad0> {pid=87779})
com.microsoft.VSCode              AXWindows: [
com.microsoft.VSCode                  AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow"),
com.microsoft.VSCode                  AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode              ]
com.microsoft.VSCode              AXSize: nil
com.microsoft.VSCode              AXPosition: nil
com.microsoft.VSCode              Ignored: AXChildren, AXChildrenInNavigationOrder, AXEnhancedUserInterface, AXPreferredLanguage, AXRoleDescription, AXHidden

com.microsoft.VSCode.window.24717 windowId: 24717
com.microsoft.VSCode.window.24717 workspace: 3
com.microsoft.VSCode.window.24717 treeNodeParent: AppBundle.TilingContainer
com.microsoft.VSCode.window.24717 recognizedAsDialog: false
com.microsoft.VSCode.window.24717 AXTitle: Optional(Welcome)
com.microsoft.VSCode.window.24717 AXRole: Optional(AXWindow)
com.microsoft.VSCode.window.24717 AXSubrole: Optional(AXStandardWindow)
com.microsoft.VSCode.window.24717 AXFocused: Optional(0)
com.microsoft.VSCode.window.24717 AXFullScreen: Optional(0)
com.microsoft.VSCode.window.24717 AXFrame: Optional(<AXValue 0x600002ef9fc0> {value = x:867.000000 y:-1055.000000 w:1920.000000 h:1054.000000 type = kAXValueCGRectType})
com.microsoft.VSCode.window.24717 AXPosition: Optional(<AXValue 0x6000035bb5a0> {value = x:867.000000 y:-1055.000000 type = kAXValueCGPointType})
com.microsoft.VSCode.window.24717 AXGrowArea: nil
com.microsoft.VSCode.window.24717 AXMinimizeButton: AXUIElement {
com.microsoft.VSCode.window.24717      AXRole: Optional(AXButton)
com.microsoft.VSCode.window.24717      AXTitle: nil
com.microsoft.VSCode.window.24717      AXSubrole: Optional(AXMinimizeButton)
com.microsoft.VSCode.window.24717      AXEnabled: Optional(1)
com.microsoft.VSCode.window.24717      AXParent: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24717      AXTopLevelUIElement: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24717      AXWindow: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24717      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription
com.microsoft.VSCode.window.24717 }
com.microsoft.VSCode.window.24717 AXDocument: nil
com.microsoft.VSCode.window.24717 AXSections: [
com.microsoft.VSCode.window.24717         Optional({
com.microsoft.VSCode.window.24717             SectionDescription = Content;
com.microsoft.VSCode.window.24717             SectionObject = "<AXUIElement 0x600003596160> {pid=87779}";
com.microsoft.VSCode.window.24717             SectionUniqueID = AXContent;
com.microsoft.VSCode.window.24717         }),
com.microsoft.VSCode.window.24717         Optional({
com.microsoft.VSCode.window.24717             SectionObject = "<AXUIElement 0x6000035949f0> {pid=87779}";
com.microsoft.VSCode.window.24717             SectionUniqueID = AXContainer;
com.microsoft.VSCode.window.24717         })
com.microsoft.VSCode.window.24717 ]
com.microsoft.VSCode.window.24717 AXCloseButton: AXUIElement {
com.microsoft.VSCode.window.24717      AXRole: Optional(AXButton)
com.microsoft.VSCode.window.24717      AXTitle: nil
com.microsoft.VSCode.window.24717      AXSubrole: Optional(AXCloseButton)
com.microsoft.VSCode.window.24717      AXEnabled: Optional(1)
com.microsoft.VSCode.window.24717      AXParent: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24717      AXTopLevelUIElement: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24717      AXWindow: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24717      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription, AXEdited
com.microsoft.VSCode.window.24717 }
com.microsoft.VSCode.window.24717 AXMain: Optional(1)
com.microsoft.VSCode.window.24717 AXActivationPoint: Optional(<AXValue 0x6000035bb5a0> {value = x:-1.000000 y:1118.000000 type = kAXValueCGPointType})
com.microsoft.VSCode.window.24717 AXFullScreenButton: AXUIElement {
com.microsoft.VSCode.window.24717      AXRole: Optional(AXButton)
com.microsoft.VSCode.window.24717      AXTitle: nil
com.microsoft.VSCode.window.24717      AXSubrole: Optional(AXFullScreenButton)
com.microsoft.VSCode.window.24717      AXEnabled: Optional(1)
com.microsoft.VSCode.window.24717      AXParent: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24717      AXTopLevelUIElement: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24717      AXWindow: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24717      Ignored: AXFrame, AXSize, AXFocused, AXChildren, AXHelp, AXPosition, AXRoleDescription
com.microsoft.VSCode.window.24717 }
com.microsoft.VSCode.window.24717 AXProxy: nil
com.microsoft.VSCode.window.24717 AXDefaultButton: nil
com.microsoft.VSCode.window.24717 AXMinimized: Optional(0)
com.microsoft.VSCode.window.24717 AXParent: Optional(<AXUIElement Application 0x6000035ac6f0> {pid=87779})
com.microsoft.VSCode.window.24717 AXTitleUIElement: nil
com.microsoft.VSCode.window.24717 AXCancelButton: nil
com.microsoft.VSCode.window.24717 AXModal: Optional(0)
com.microsoft.VSCode.window.24717 AXZoomButton: AXUIElement {
com.microsoft.VSCode.window.24717      AXRole: Optional(AXButton)
com.microsoft.VSCode.window.24717      AXTitle: nil
com.microsoft.VSCode.window.24717      AXSubrole: Optional(AXFullScreenButton)
com.microsoft.VSCode.window.24717      AXEnabled: Optional(1)
com.microsoft.VSCode.window.24717      AXParent: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24717      AXTopLevelUIElement: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24717      AXWindow: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode.window.24717      Ignored: AXFrame, AXSize, AXFocused, AXChildren, AXHelp, AXPosition, AXRoleDescription
com.microsoft.VSCode.window.24717 }
com.microsoft.VSCode.window.24717 AXSize: Optional(<AXValue 0x600003589c80> {value = w:1920.000000 h:1054.000000 type = kAXValueCGSizeType})
com.microsoft.VSCode.window.24717 AXToolbarButton: nil
com.microsoft.VSCode.window.24717 Ignored: AXChildrenInNavigationOrder, AXChildren, AXRoleDescription
com.microsoft.VSCode              AXRole: Optional(AXApplication)
com.microsoft.VSCode              AXTitle: Optional(Code)
com.microsoft.VSCode              AXFunctionRowTopLevelElements: [
com.microsoft.VSCode              ]
com.microsoft.VSCode              AXManualAccessibility: Optional(1)
com.microsoft.VSCode              AXFrame: nil
com.microsoft.VSCode              AXFocusedUIElement: AXUIElement(windowId=24717, title="", role="AXGroup", subrole="AXDocument")
com.microsoft.VSCode              AXFrontmost: Optional(1)
com.microsoft.VSCode              AXExtrasMenuBar: nil
com.microsoft.VSCode              AXMainWindow: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode              AXFocusedWindow: AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode              AXMenuBar: Optional(<AXUIElement 0x600003594420> {pid=87779})
com.microsoft.VSCode              AXWindows: [
com.microsoft.VSCode                  AXUIElement(windowId=24717, title="Welcome", role="AXWindow", subrole="AXStandardWindow"),
com.microsoft.VSCode                  AXUIElement(windowId=24716, title=".aerospace.toml", role="AXWindow", subrole="AXStandardWindow")
com.microsoft.VSCode              ]
com.microsoft.VSCode              AXSize: nil
com.microsoft.VSCode              AXPosition: nil
com.microsoft.VSCode              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 !!!

Debug session finished
Config
# Place a copy of this config to ~/.aerospace.toml
# After that, you can edit ~/.aerospace.toml to your liking

# It's not necessary to copy all keys to your config.
# If the key is missing in your config, "default-config.toml" will serve as a fallback

# You can use it to add commands that run after login to macOS user session.
# 'start-at-login' needs to be 'true' for 'after-login-command' to work
# Available commands: https://nikitabobko.github.io/AeroSpace/commands
after-login-command = []

# You can use it to add commands that run after AeroSpace startup.
# 'after-startup-command' is run after 'after-login-command'
# Available commands : https://nikitabobko.github.io/AeroSpace/commands
after-startup-command = []

# Start AeroSpace at login
start-at-login = true 

# Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization
enable-normalization-flatten-containers = true
enable-normalization-opposite-orientation-for-nested-containers = true

# See: https://nikitabobko.github.io/AeroSpace/guide#layouts
# The 'accordion-padding' specifies the size of accordion padding
# You can set 0 to disable the padding feature
accordion-padding = 0

# Possible values: tiles|accordion
default-root-container-layout = 'accordion'

# Possible values: horizontal|vertical|auto
# 'auto' means: wide monitor (anything wider than high) gets horizontal orientation,
#               tall monitor (anything higher than wide) gets vertical orientation
default-root-container-orientation = 'auto'

# Possible values: (qwerty|dvorak)
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
key-mapping.preset = 'qwerty'

# Mouse follows focus when focused monitor changes
# Drop it from your config, if you don't like this behavior
# See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks
# See https://nikitabobko.github.io/AeroSpace/commands#move-mouse
on-focused-monitor-changed = ['move-mouse monitor-lazy-center']

# Gaps between windows (inner-*) and between monitor edges (outer-*).
# Possible values:
# - Constant:     gaps.outer.top = 8
# - Per monitor:  gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24]
#                 In this example, 24 is a default value when there is no match.
#                 Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'.
#                 See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
[gaps]
inner.horizontal = 0
inner.vertical =   0
outer.left =       0
outer.bottom =     0
outer.top =        0
outer.right =      0

# 'main' binding mode declaration
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
# 'main' binding mode must be always presented
[mode.main.binding]

# All possible keys:
# - Letters.        a, b, c, ..., z
# - Numbers.        0, 1, 2, ..., 9
# - Keypad numbers. keypad0, keypad1, keypad2, ..., keypad9
# - F-keys.         f1, f2, ..., f20
# - Special keys.   minus, equal, period, comma, slash, backslash, quote, semicolon, backtick,
#                   leftSquareBracket, rightSquareBracket, space, enter, esc, backspace, tab
# - Keypad special. keypadClear, keypadDecimalMark, keypadDivide, keypadEnter, keypadEqual,
#                   keypadMinus, keypadMultiply, keypadPlus
# - Arrows.         left, down, up, right

# All possible modifiers: cmd, alt, ctrl, shift

# All possible commands: https://nikitabobko.github.io/AeroSpace/commands

# See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget
# You can uncomment the following lines to open up terminal with alt + enter shortcut (like in i3)
# alt-enter = '''exec-and-forget osascript -e '
# tell application "Terminal"
#     do script
#     activate
# end tell'
# '''

# See: https://nikitabobko.github.io/AeroSpace/commands#layout
alt-slash = 'layout tiles horizontal vertical'
alt-comma = 'layout accordion horizontal vertical'
alt-t = 'layout floating tiling'

# Monitor
cmd-alt-ctrl-shift-n = 'focus-monitor --wrap-around next'
cmd-alt-ctrl-shift-p = 'focus-monitor --wrap-around prev'

# See: https://nikitabobko.github.io/AeroSpace/commands#focus
cmd-alt-ctrl-shift-h = 'focus left --ignore-floating'
cmd-alt-ctrl-shift-j = 'focus down --ignore-floating'
cmd-alt-ctrl-shift-k = 'focus up --ignore-floating'
cmd-alt-ctrl-shift-l = 'focus right --ignore-floating'

alt-h = 'focus left'
alt-j = 'focus down'
alt-k = 'focus up'
alt-l = 'focus right'

# See: https://nikitabobko.github.io/AeroSpace/commands#move
alt-shift-h = 'move left'
alt-shift-j = 'move down'
alt-shift-k = 'move up'
alt-shift-l = 'move right'

alt-n = ['move-node-to-monitor --wrap-around next', 'focus-monitor --wrap-around next']
alt-p = ['move-node-to-monitor --wrap-around prev', 'focus-monitor --wrap-around prev']

alt-b = 'focus-back-and-forth'

# See: https://nikitabobko.github.io/AeroSpace/commands#resize
alt-shift-minus = 'resize smart -50'
alt-shift-equal = 'resize smart +50'

# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
alt-1 = 'workspace 1'
alt-2 = 'workspace 2'
alt-3 = 'workspace 3'
# alt-4 = 'workspace 4'
# alt-5 = 'workspace 5'
# alt-6 = 'workspace 6'
# alt-7 = 'workspace 7'
# alt-8 = 'workspace 8'
# alt-9 = 'workspace 9'

# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
alt-shift-1 = 'move-node-to-workspace 1'
alt-shift-2 = 'move-node-to-workspace 2'
alt-shift-3 = 'move-node-to-workspace 3'
# alt-shift-4 = 'move-node-to-workspace 4'
# alt-shift-5 = 'move-node-to-workspace 5'
# alt-shift-6 = 'move-node-to-workspace 6'
# alt-shift-7 = 'move-node-to-workspace 7'
# alt-shift-8 = 'move-node-to-workspace 8'
# alt-shift-9 = 'move-node-to-workspace 9'

# See: https://nikitabobko.github.io/AeroSpace/commands#mode
alt-shift-semicolon = 'mode service'

# 'service' binding mode declaration.
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
[mode.service.binding]
esc = ['reload-config', 'mode main']
r = ['flatten-workspace-tree', 'mode main'] # reset layout
ctrl-r = ['enable off', 'enable on']
#s = ['layout sticky tiling', 'mode main'] # sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2
f = ['layout floating tiling', 'mode main'] # Toggle between floating and tiling layout
backspace = ['close-all-windows-but-current', 'mode main']

alt-shift-h = ['join-with left', 'mode main']
alt-shift-j = ['join-with down', 'mode main']
alt-shift-k = ['join-with up', 'mode main']
alt-shift-l = ['join-with right', 'mode main']

# assign workspaces
[workspace-to-monitor-force-assignment]
1 = 1
2 = 2
3 = 3

# float windows
[[on-window-detected]]
if.app-id = 'com.googlecode.iterm2'
if.window-title-regex-substring = 'iTerm2 Hotkey Window'
run = ['layout floating']

[[on-window-detected]]
if.app-id = 'com.google.android.studio'
if.window-title-regex-substring = 'Running Devices.+'
run = ['layout floating']

[[on-window-detected]]
if.app-id = 'cc.ffitch.shottr'
run = 'layout floating'

[[on-window-detected]]
if.app-id = 'com.apple.iphonesimulator'
run = 'layout floating'

[[on-window-detected]]
if.app-id = 'com.colliderli.iina'
run = 'layout floating'

[[on-window-detected]]
if.app-id = 'net.freemacsoft.AppCleaner'
run = 'layout floating'

[[on-window-detected]]
if.app-id = 'com.windscribe.gui.macos'
run = 'layout floating'

Checklist

I tried both 0.14.2 and 0.15.2 versions

aerospace CLI client version: 0.15.2-Beta b6cf82771f245ab7349a93baf8709e171537ff58
AeroSpace.app server version: 0.15.2-Beta b6cf82771f245ab7349a93baf8709e171537ff58
@nikitabobko
Copy link
Owner

Duplicate of #101

@nikitabobko nikitabobko marked this as a duplicate of #101 Oct 14, 2024
@nikitabobko nikitabobko added the duplicate The issue is a duplicate label Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
duplicate The issue is a duplicate
Projects
None yet
Development

No branches or pull requests

2 participants