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

qutebrowser is not being tiled #166

Closed
ddevaal opened this issue Feb 19, 2024 · 8 comments
Closed

qutebrowser is not being tiled #166

ddevaal opened this issue Feb 19, 2024 · 8 comments
Milestone

Comments

@ddevaal
Copy link

ddevaal commented Feb 19, 2024

qutebrowser is not being tiled by aerospace. It was problematic in Yabai too. I fixed this in yabai with yabai -m rule --add app="^qutebrowser$" title!="^$" role="AXWindow" subrole="AXDialog" manage=on space=web How can I do something similar in aerospace? I'm running v0.8.4-Beta 4951cbc

org.qutebrowser.qutebrowser.window.1738 windowId: 1738
org.qutebrowser.qutebrowser.window.1738 workspace: 3
org.qutebrowser.qutebrowser.window.1738 recognizedAsDialog: true
org.qutebrowser.qutebrowser.window.1738 AXTitle: Optional([0%] https://start.duckduckgo.com - qutebrowser)
org.qutebrowser.qutebrowser.window.1738 AXRole: Optional(AXWindow)
org.qutebrowser.qutebrowser.window.1738 AXSubrole: Optional(AXDialog)
org.qutebrowser.qutebrowser.window.1738 AXFocused: Optional(0)
org.qutebrowser.qutebrowser.window.1738 AXFullScreen: Optional(0)
org.qutebrowser.qutebrowser.window.1738 AXFrame: Optional(<AXValue 0x60000030a780> {value = x:773.000000 y:506.000000 w:751.000000 h:393.000000 type = kAXValueCGRectType})
org.qutebrowser.qutebrowser.window.1738 AXPosition: Optional(<AXValue 0x60000184e4f0> {value = x:773.000000 y:506.000000 type = kAXValueCGPointType})
org.qutebrowser.qutebrowser.window.1738 AXGrowArea: nil
org.qutebrowser.qutebrowser.window.1738 AXMinimizeButton: nil
org.qutebrowser.qutebrowser.window.1738 AXDocument: nil
org.qutebrowser.qutebrowser.window.1738 AXSections: [
org.qutebrowser.qutebrowser.window.1738         Optional({
org.qutebrowser.qutebrowser.window.1738             SectionDescription = Content;
org.qutebrowser.qutebrowser.window.1738             SectionObject = "<AXUIElement 0x600001846790> {pid=9713}";
org.qutebrowser.qutebrowser.window.1738             SectionUniqueID = AXContent;
org.qutebrowser.qutebrowser.window.1738         }),
org.qutebrowser.qutebrowser.window.1738         Optional({
org.qutebrowser.qutebrowser.window.1738             SectionObject = "<AXUIElement 0x6000018466a0> {pid=9713}";
org.qutebrowser.qutebrowser.window.1738             SectionUniqueID = AXContainer;
org.qutebrowser.qutebrowser.window.1738         }),
org.qutebrowser.qutebrowser.window.1738         Optional({
org.qutebrowser.qutebrowser.window.1738             SectionObject = "<AXUIElement 0x6000018468e0> {pid=9713}";
org.qutebrowser.qutebrowser.window.1738             SectionUniqueID = AXContainer;
org.qutebrowser.qutebrowser.window.1738         })
org.qutebrowser.qutebrowser.window.1738 ]
org.qutebrowser.qutebrowser.window.1738 AXCloseButton: nil
org.qutebrowser.qutebrowser.window.1738 AXMain: Optional(0)
org.qutebrowser.qutebrowser.window.1738 AXActivationPoint: Optional(<AXValue 0x60000183eb50> {value = x:-1.000000 y:961.000000 type = kAXValueCGPointType})
org.qutebrowser.qutebrowser.window.1738 AXFullScreenButton: nil
org.qutebrowser.qutebrowser.window.1738 AXProxy: nil
org.qutebrowser.qutebrowser.window.1738 AXDefaultButton: nil
org.qutebrowser.qutebrowser.window.1738 AXMinimized: Optional(0)
org.qutebrowser.qutebrowser.window.1738 AXParent: Optional(<AXUIElement Application 0x6000018126a0> {pid=9713})
org.qutebrowser.qutebrowser.window.1738 AXTitleUIElement: nil
org.qutebrowser.qutebrowser.window.1738 AXCancelButton: nil
org.qutebrowser.qutebrowser.window.1738 AXModal: Optional(0)
org.qutebrowser.qutebrowser.window.1738 AXZoomButton: nil
org.qutebrowser.qutebrowser.window.1738 AXSize: Optional(<AXValue 0x600001845da0> {value = w:751.000000 h:393.000000 type = kAXValueCGSizeType})
org.qutebrowser.qutebrowser.window.1738 AXToolbarButton: nil
org.qutebrowser.qutebrowser.window.1738 Ignored: AXChildrenInNavigationOrder, AXChildren, AXRoleDescription
org.qutebrowser.qutebrowser             AXRole: Optional(AXApplication)
org.qutebrowser.qutebrowser             AXTitle: Optional(qutebrowser)
org.qutebrowser.qutebrowser             AXFunctionRowTopLevelElements: [
org.qutebrowser.qutebrowser                 Optional(<AXUIElement 0x600001817d20> {pid=9713})
org.qutebrowser.qutebrowser             ]
org.qutebrowser.qutebrowser             AXFrame: nil
org.qutebrowser.qutebrowser             AXFocusedUIElement: AXUIElement(windowId=1738, title="", role="AXGroup", subrole=nil)
org.qutebrowser.qutebrowser             AXFrontmost: Optional(1)
org.qutebrowser.qutebrowser             AXExtrasMenuBar: nil
org.qutebrowser.qutebrowser             AXMainWindow: nil
org.qutebrowser.qutebrowser             AXFocusedWindow: AXUIElement(windowId=1738, title="[0%] https://start.duckduckgo.com - qutebrowser", role="AXWindow", subrole="AXDialog")
org.qutebrowser.qutebrowser             AXMenuBar: Optional(<AXUIElement 0x60000184d8c0> {pid=9713})
org.qutebrowser.qutebrowser             AXWindows: [
org.qutebrowser.qutebrowser                 AXUIElement(windowId=1738, title="[0%] https://start.duckduckgo.com - qutebrowser", role="AXWindow", subrole="AXDialog")
org.qutebrowser.qutebrowser             ]
org.qutebrowser.qutebrowser             AXSize: nil
org.qutebrowser.qutebrowser             AXPosition: nil
org.qutebrowser.qutebrowser             Ignored: AXChildren, AXChildrenInNavigationOrder, AXEnhancedUserInterface, AXPreferredLanguage, AXRoleDescription, AXHidden
@nikitabobko
Copy link
Owner

How can I do something similar in aerospace?

[[on-window-detected]]
if.app-id = 'org.qutebrowser.qutebrowser'
run = 'layout tiling'

@ddevaal
Copy link
Author

ddevaal commented Feb 19, 2024

How can I do something similar in aerospace?

[[on-window-detected]]
if.app-id = 'org.qutebrowser.qutebrowser'
run = 'layout tiling'

Worked like a charm. Thanks @nikitabobko!

@ddevaal ddevaal closed this as completed Feb 19, 2024
@nikitabobko
Copy link
Owner

nikitabobko commented Feb 19, 2024

It makes me upset that qutebrowser says that its subrole is AXDialog. I've not seen apps that misbehave that badly

The app just explicitly reports that it's a dialog. Well, yes, of course AeroSpace will float it by default, and so does yabai

I have IDs of some popular apps already hardcoded in the source code https:/nikitabobko/AeroSpace/blob/main/src/tree/MacWindow.swift#L205

I've heard about qutebrowser before. By itself, the app is already popular enough, to hardcode its ID in AeroSpace approximations. But the app is even more popular among vim/tiling-wm/hacker folks.

But I'm thinking whether I want to encourage that kind of evil misbehavior by hardcoding org.qutebrowser.qutebrowser ID in AeroSpace

nikitabobko added a commit that referenced this issue Feb 19, 2024
@nikitabobko nikitabobko added this to the 0.9.0-Beta milestone Feb 19, 2024
@ddevaal
Copy link
Author

ddevaal commented Feb 20, 2024

It makes me upset that qutebrowser says that its subrole is AXDialog. I've not seen apps that misbehave that badly

The app just explicitly reports that it's a dialog. Well, yes, of course AeroSpace will float it by default, and so does yabai

I have IDs of some popular apps already hardcoded in the source code https:/nikitabobko/AeroSpace/blob/main/src/tree/MacWindow.swift#L205

I've heard about qutebrowser before. By itself, the app is already popular enough, to hardcode its ID in AeroSpace approximations. But the app is even more popular among vim/tiling-wm/hacker folks.

But I'm thinking whether I want to encourage that kind of evil misbehavior by hardcoding org.qutebrowser.qutebrowser ID in AeroSpace

Yes I was kind of surprised I couldn't find anything about qutebrowser in Aerospace. I have no idea why qutebrowser does this. Maybe we should file a bug report. You will run into more situations like this where applications simply misbehave. At the end of the day you want to give users of Aerospace the best experience possible. Maybe this bug report is already enough.

@johnallen3d
Copy link

@ddevaal, are you using the hide_decoration option in qutebrowser?

qutebrowser/qutebrowser#4067

@ddevaal
Copy link
Author

ddevaal commented Feb 20, 2024

@ddevaal, are you using the hide_decoration option in qutebrowser?

qutebrowser/qutebrowser#4067

Yes! So this is the problem.

@johnallen3d
Copy link

Yes, I believe so @ddevaal. My assumption is based entirely on this comment from @koekeishiya.

@nikitabobko
Copy link
Owner

qutebrowser should be tiled by default since 0.9.0 (no special callback is needed)

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