nikitabobko / AeroSpace

AeroSpace is an i3-like tiling window manager for macOS
https://nikitabobko.github.io/AeroSpace/guide
MIT License
7.61k stars 125 forks source link

WezTerm problems when `window_decorations = "NONE"` #610

Closed nikitabobko closed 1 month ago

nikitabobko commented 1 month ago

Originally posted by @henrythor in https://github.com/nikitabobko/AeroSpace/issues/276#issuecomment-2431572469

I have this issue with WezTerm when window_decorations = "NONE". Was this a Kitty specific fix?

Here is debug-window output:

NULL-APP-BUNDLE-ID.window.4420 windowId: 4420
NULL-APP-BUNDLE-ID.window.4420 workspace: 7
NULL-APP-BUNDLE-ID.window.4420 treeNodeParent: Workspace(name: '7', isVisible: 'true', isEffectivelyEmpty: 'false', doKeepAlive: 'false')
NULL-APP-BUNDLE-ID.window.4420 recognizedAsDialog: true
NULL-APP-BUNDLE-ID.window.4420 AXTitle: Optional(aerospace)
NULL-APP-BUNDLE-ID.window.4420 AXRole: Optional(AXWindow)
NULL-APP-BUNDLE-ID.window.4420 AXSubrole: Optional(AXStandardWindow)
NULL-APP-BUNDLE-ID.window.4420 AXFocused: Optional(1)
NULL-APP-BUNDLE-ID.window.4420 AXFullScreen: Optional(0)
NULL-APP-BUNDLE-ID.window.4420 AXFrame: Optional(<AXValue 0x6000033e8a80> {value = x:-1189.000000 y:697.000000 w:574.000000 h:400.000000 type = kAXValueCGRectType})
NULL-APP-BUNDLE-ID.window.4420 AXPosition: Optional(<AXValue 0x60000286a010> {value = x:-1189.000000 y:697.000000 type = kAXValueCGPointType})
NULL-APP-BUNDLE-ID.window.4420 AXGrowArea: nil
NULL-APP-BUNDLE-ID.window.4420 AXMinimizeButton: AXUIElement {
NULL-APP-BUNDLE-ID.window.4420      AXRole: Optional(AXButton)
NULL-APP-BUNDLE-ID.window.4420      AXTitle: nil
NULL-APP-BUNDLE-ID.window.4420      AXSubrole: Optional(AXMinimizeButton)
NULL-APP-BUNDLE-ID.window.4420      AXEnabled: Optional(1)
NULL-APP-BUNDLE-ID.window.4420      AXParent: AXUIElement(windowId=4420, title="aerospace", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4420      AXTopLevelUIElement: AXUIElement(windowId=4420, title="aerospace", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4420      AXWindow: AXUIElement(windowId=4420, title="aerospace", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4420      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription
NULL-APP-BUNDLE-ID.window.4420 }
NULL-APP-BUNDLE-ID.window.4420 AXDocument: nil
NULL-APP-BUNDLE-ID.window.4420 AXSections: [
NULL-APP-BUNDLE-ID.window.4420 ]
NULL-APP-BUNDLE-ID.window.4420 AXCloseButton: AXUIElement {
NULL-APP-BUNDLE-ID.window.4420      AXRole: Optional(AXButton)
NULL-APP-BUNDLE-ID.window.4420      AXTitle: nil
NULL-APP-BUNDLE-ID.window.4420      AXSubrole: Optional(AXCloseButton)
NULL-APP-BUNDLE-ID.window.4420      AXEnabled: Optional(1)
NULL-APP-BUNDLE-ID.window.4420      AXParent: AXUIElement(windowId=4420, title="aerospace", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4420      AXTopLevelUIElement: AXUIElement(windowId=4420, title="aerospace", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4420      AXWindow: AXUIElement(windowId=4420, title="aerospace", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4420      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription, AXEdited
NULL-APP-BUNDLE-ID.window.4420 }
NULL-APP-BUNDLE-ID.window.4420 AXMain: Optional(1)
NULL-APP-BUNDLE-ID.window.4420 AXActivationPoint: Optional(<AXValue 0x600002847e70> {value = x:-1179.000000 y:711.000000 type = kAXValueCGPointType})
NULL-APP-BUNDLE-ID.window.4420 AXFullScreenButton: nil
NULL-APP-BUNDLE-ID.window.4420 AXProxy: nil
NULL-APP-BUNDLE-ID.window.4420 AXDefaultButton: nil
NULL-APP-BUNDLE-ID.window.4420 AXMinimized: Optional(0)
NULL-APP-BUNDLE-ID.window.4420 AXParent: Optional(<AXUIElement Application 0x600002847e70> {pid=96067})
NULL-APP-BUNDLE-ID.window.4420 AXTitleUIElement: nil
NULL-APP-BUNDLE-ID.window.4420 AXCancelButton: nil
NULL-APP-BUNDLE-ID.window.4420 AXModal: Optional(0)
NULL-APP-BUNDLE-ID.window.4420 AXZoomButton: AXUIElement {
NULL-APP-BUNDLE-ID.window.4420      AXRole: Optional(AXButton)
NULL-APP-BUNDLE-ID.window.4420      AXTitle: nil
NULL-APP-BUNDLE-ID.window.4420      AXSubrole: Optional(AXZoomButton)
NULL-APP-BUNDLE-ID.window.4420      AXEnabled: Optional(0)
NULL-APP-BUNDLE-ID.window.4420      AXParent: AXUIElement(windowId=4420, title="aerospace", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4420      AXTopLevelUIElement: AXUIElement(windowId=4420, title="aerospace", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4420      AXWindow: AXUIElement(windowId=4420, title="aerospace", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4420      Ignored: AXFrame, AXSize, AXFocused, AXChildren, AXHelp, AXPosition, AXRoleDescription
NULL-APP-BUNDLE-ID.window.4420 }
NULL-APP-BUNDLE-ID.window.4420 AXSize: Optional(<AXValue 0x600002847e70> {value = w:574.000000 h:400.000000 type = kAXValueCGSizeType})
NULL-APP-BUNDLE-ID.window.4420 AXToolbarButton: nil
NULL-APP-BUNDLE-ID.window.4420 Ignored: AXChildrenInNavigationOrder, AXChildren, AXRoleDescription
NULL-APP-BUNDLE-ID             AXRole: Optional(AXApplication)
NULL-APP-BUNDLE-ID             AXTitle: Optional(wezterm-gui)
NULL-APP-BUNDLE-ID             AXFunctionRowTopLevelElements: [
NULL-APP-BUNDLE-ID             ]
NULL-APP-BUNDLE-ID             AXFrame: nil
NULL-APP-BUNDLE-ID             AXFocusedUIElement: AXUIElement(windowId=4420, title="aerospace", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID             AXFrontmost: Optional(1)
NULL-APP-BUNDLE-ID             AXExtrasMenuBar: nil
NULL-APP-BUNDLE-ID             AXMainWindow: AXUIElement(windowId=4420, title="aerospace", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID             AXFocusedWindow: AXUIElement(windowId=4420, title="aerospace", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID             AXMenuBar: Optional(<AXUIElement 0x6000028a6a60> {pid=96067})
NULL-APP-BUNDLE-ID             AXWindows: [
NULL-APP-BUNDLE-ID                 AXUIElement(windowId=4420, title="aerospace", role="AXWindow", subrole="AXStandardWindow"),
NULL-APP-BUNDLE-ID                 AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID             ]
NULL-APP-BUNDLE-ID             AXSize: nil
NULL-APP-BUNDLE-ID             AXPosition: nil
NULL-APP-BUNDLE-ID             Ignored: AXChildren, AXChildrenInNavigationOrder, AXEnhancedUserInterface, AXPreferredLanguage, AXRoleDescription, AXHidden

NULL-APP-BUNDLE-ID.window.4437 windowId: 4437
NULL-APP-BUNDLE-ID.window.4437 workspace: 7
NULL-APP-BUNDLE-ID.window.4437 treeNodeParent: Workspace(name: '7', isVisible: 'true', isEffectivelyEmpty: 'false', doKeepAlive: 'false')
NULL-APP-BUNDLE-ID.window.4437 recognizedAsDialog: true
NULL-APP-BUNDLE-ID.window.4437 AXTitle: Optional(~/.config)
NULL-APP-BUNDLE-ID.window.4437 AXRole: Optional(AXWindow)
NULL-APP-BUNDLE-ID.window.4437 AXSubrole: Optional(AXStandardWindow)
NULL-APP-BUNDLE-ID.window.4437 AXFocused: Optional(1)
NULL-APP-BUNDLE-ID.window.4437 AXFullScreen: Optional(0)
NULL-APP-BUNDLE-ID.window.4437 AXFrame: Optional(<AXValue 0x60000333fcc0> {value = x:-1160.000000 y:726.000000 w:574.000000 h:400.000000 type = kAXValueCGRectType})
NULL-APP-BUNDLE-ID.window.4437 AXPosition: Optional(<AXValue 0x6000028125b0> {value = x:-1160.000000 y:726.000000 type = kAXValueCGPointType})
NULL-APP-BUNDLE-ID.window.4437 AXGrowArea: nil
NULL-APP-BUNDLE-ID.window.4437 AXMinimizeButton: AXUIElement {
NULL-APP-BUNDLE-ID.window.4437      AXRole: Optional(AXButton)
NULL-APP-BUNDLE-ID.window.4437      AXTitle: nil
NULL-APP-BUNDLE-ID.window.4437      AXSubrole: Optional(AXMinimizeButton)
NULL-APP-BUNDLE-ID.window.4437      AXEnabled: Optional(1)
NULL-APP-BUNDLE-ID.window.4437      AXParent: AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4437      AXTopLevelUIElement: AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4437      AXWindow: AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4437      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription
NULL-APP-BUNDLE-ID.window.4437 }
NULL-APP-BUNDLE-ID.window.4437 AXDocument: nil
NULL-APP-BUNDLE-ID.window.4437 AXSections: [
NULL-APP-BUNDLE-ID.window.4437 ]
NULL-APP-BUNDLE-ID.window.4437 AXCloseButton: AXUIElement {
NULL-APP-BUNDLE-ID.window.4437      AXRole: Optional(AXButton)
NULL-APP-BUNDLE-ID.window.4437      AXTitle: nil
NULL-APP-BUNDLE-ID.window.4437      AXSubrole: Optional(AXCloseButton)
NULL-APP-BUNDLE-ID.window.4437      AXEnabled: Optional(1)
NULL-APP-BUNDLE-ID.window.4437      AXParent: AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4437      AXTopLevelUIElement: AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4437      AXWindow: AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4437      Ignored: AXFrame, AXSize, AXFocused, AXHelp, AXPosition, AXRoleDescription, AXEdited
NULL-APP-BUNDLE-ID.window.4437 }
NULL-APP-BUNDLE-ID.window.4437 AXMain: Optional(1)
NULL-APP-BUNDLE-ID.window.4437 AXActivationPoint: Optional(<AXValue 0x6000028125b0> {value = x:-1150.000000 y:740.000000 type = kAXValueCGPointType})
NULL-APP-BUNDLE-ID.window.4437 AXFullScreenButton: nil
NULL-APP-BUNDLE-ID.window.4437 AXProxy: nil
NULL-APP-BUNDLE-ID.window.4437 AXDefaultButton: nil
NULL-APP-BUNDLE-ID.window.4437 AXMinimized: Optional(0)
NULL-APP-BUNDLE-ID.window.4437 AXParent: Optional(<AXUIElement Application 0x6000028632a0> {pid=96067})
NULL-APP-BUNDLE-ID.window.4437 AXTitleUIElement: nil
NULL-APP-BUNDLE-ID.window.4437 AXCancelButton: nil
NULL-APP-BUNDLE-ID.window.4437 AXModal: Optional(0)
NULL-APP-BUNDLE-ID.window.4437 AXZoomButton: AXUIElement {
NULL-APP-BUNDLE-ID.window.4437      AXRole: Optional(AXButton)
NULL-APP-BUNDLE-ID.window.4437      AXTitle: nil
NULL-APP-BUNDLE-ID.window.4437      AXSubrole: Optional(AXZoomButton)
NULL-APP-BUNDLE-ID.window.4437      AXEnabled: Optional(0)
NULL-APP-BUNDLE-ID.window.4437      AXParent: AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4437      AXTopLevelUIElement: AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4437      AXWindow: AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID.window.4437      Ignored: AXFrame, AXSize, AXFocused, AXChildren, AXHelp, AXPosition, AXRoleDescription
NULL-APP-BUNDLE-ID.window.4437 }
NULL-APP-BUNDLE-ID.window.4437 AXSize: Optional(<AXValue 0x60000286e1c0> {value = w:574.000000 h:400.000000 type = kAXValueCGSizeType})
NULL-APP-BUNDLE-ID.window.4437 AXToolbarButton: nil
NULL-APP-BUNDLE-ID.window.4437 Ignored: AXChildrenInNavigationOrder, AXChildren, AXRoleDescription
NULL-APP-BUNDLE-ID             AXRole: Optional(AXApplication)
NULL-APP-BUNDLE-ID             AXTitle: Optional(wezterm-gui)
NULL-APP-BUNDLE-ID             AXFunctionRowTopLevelElements: [
NULL-APP-BUNDLE-ID             ]
NULL-APP-BUNDLE-ID             AXFrame: nil
NULL-APP-BUNDLE-ID             AXFocusedUIElement: AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID             AXFrontmost: Optional(1)
NULL-APP-BUNDLE-ID             AXExtrasMenuBar: nil
NULL-APP-BUNDLE-ID             AXMainWindow: AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID             AXFocusedWindow: AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID             AXMenuBar: Optional(<AXUIElement 0x60000286e1c0> {pid=96067})
NULL-APP-BUNDLE-ID             AXWindows: [
NULL-APP-BUNDLE-ID                 AXUIElement(windowId=4437, title="~/.config", role="AXWindow", subrole="AXStandardWindow"),
NULL-APP-BUNDLE-ID                 AXUIElement(windowId=4420, title="~/.config", role="AXWindow", subrole="AXStandardWindow")
NULL-APP-BUNDLE-ID             ]
NULL-APP-BUNDLE-ID             AXSize: nil
NULL-APP-BUNDLE-ID             AXPosition: nil
NULL-APP-BUNDLE-ID             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
nikitabobko commented 1 month ago

Answer: please use window_decorations = "RESIZE". Completely borderless windows don't behave well in macOS

henrythor commented 1 month ago

Ah thanks! Works for me.

avramukk commented 1 week ago

@nikitabobko Is it possible to make zed borderless? Like alacritty for example: CleanShot X 2024-11-12 23 42 12

because I don't need these small lines of space on top and bottom( Zed 2024-11-12 23 39 05