ianyh / Amethyst

Automatic tiling window manager for macOS à la xmonad.
https://ianyh.com/amethyst/
MIT License
14.64k stars 486 forks source link

Float little arc windows? #1509

Open ytubs opened 1 year ago

ytubs commented 1 year ago

Is your feature request related to a problem? Please describe. Feature Request

Describe the solution you'd like Possibly it is not possible without a change in Arc's application packaging/bundling, but I'd like to be able to float only "Little arc" windows, with floating the browser's regular/main windows

mpeterson commented 1 year ago

it would be nice to have a way to use the identifier (littleBrowserWindow-*) as a filter, and not just the window title

image
rutger1140 commented 10 months ago

This is something I'm looking for as well. I like the 'Little Arc' feature, but it pushes my windows all over the place. Perhaps we could extend on the work of #981 #1166? (I'm not very proficient in Swift though)

rutger1140 commented 10 months ago

There does seem to be some window title prefix, but I'm not sure how to target it with regex. I've tried:

/^(?!Little Arc).*/ and /^(Little Arc).*/ while my floating is set to 'Automatically float all applications except those listed.'. Without success.

Scherm­afbeelding 2023-10-26 om 09 37 06

diegoquinteiro commented 7 months ago

@rutger1140 Despite of what is shown on the dock, the actual title of the window does not contain Little Arc on it, so matching with regex won't work.

diegoquinteiro commented 7 months ago

+1 @mpeterson, that'd be a great feature

ianyh commented 7 months ago

You can check to see if Amethyst knows about a title with the cli debug tools.

/Applications/Amethyst.app/Contents/MacOS/Amethyst debug windows

But adding other sources of floating logic seems reasonable, generally speaking, but the UI gets more complicated.

heyvito commented 7 months ago

You can check to see if Amethyst knows about a title with the cli debug tools.

Arc (pid 17496)
        Title:
        Frame: (1130.0, 719.0, 916.0, 515.0)
        id: 18215
        ScreenID: 37D8832A-2D66-02CA-B9F7-8F30A301B230
        Screen Frame: (0.0, 0.0, 2056.0, 1329.0)
        isActive: true
        isOnScreen: true
        isFocused: false
        shouldBeManaged: false
        shouldFloat: false

        Title: heyvito/dotfiles: 💻 @heyvito's dotfiles
        Frame: (130.0, 64.0, 1028.0, 1160.0)
        id: 18294
        ScreenID: 37D8832A-2D66-02CA-B9F7-8F30A301B230
        Screen Frame: (0.0, 0.0, 2056.0, 1329.0)
        isActive: true
        isOnScreen: true
        isFocused: false
        shouldBeManaged: true
        shouldFloat: false

The second window is actually Little Arc.

What if we could control floating windows by leveraging prefixes such as identifier:, regex:, etc? Or even just allow selection with a dropdown with options like Identifier, Window Title, and Bundle ID, defaulting to the last one.

@ianyh I could give this a try and open a PR if you think that would add any value to your project! :)

ianyh commented 7 months ago

I think expanding what you can do float matching on is reasonable, as long as it can be done in a backwards compatible way. I don't think I personally have the cycles for that, but if you want to give it a go I can try reviewing it.

heyvito commented 7 months ago

Aight! I'll try to come up with some UIs later today, and I'll post here before actually trying to implement it. So we can discuss any improvements!

EDIT: Unfortunately, I stopped using Amethyst, and stopped working on that.

limonkufu commented 4 months ago

Any updates on this issue?

pstorozenko commented 2 months ago

Friendly bump :)

honeyspoon commented 2 weeks ago

maybe we can push the arc team to have a different app id for little arc can we think of another usecase where chosing which windows are floating from the same app makes sense?

zcag commented 2 weeks ago

maybe we can push the arc team to have a different app id for little arc

can we think of another usecase where chosing which windows are floating from the same app makes sense?

I emailed the support couple months ago, made some arguments about accesibility as well as aiding power users. Got the generic "i'll forward this to the dev team".

See my workaround on yabai, logic might help (there are also lots of other ideas in the thread): https://github.com/koekeishiya/yabai/issues/2271#issuecomment-2155694038

Also, brotab(https://github.com/balta2ar/brotab) might prove useful determining what kind of window it is. When i tested it was reporting the pip tab as if it was on the same window as other tabs, but one could dig deeper using the chrome query interface that it provides, specifically groupId, openerTabId and type looks interesting.

I eventually moved to linux (thus firefox), so i cant test myself

edit: now that i think about it, even if you do figure out which tab is little arc, it's still useless unless you can point amethyst (not sure how it works, never used it) to the window. I actually tried making a poc arc extension that figures out the pip window, and adds a prefix [LittleArc] to the title, hoping that i would use that to match, but by that point the window is already got created and got my main arc window rules applied to it on yabai