-
-
Notifications
You must be signed in to change notification settings - Fork 346
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
Show a window with tabs as 1 window instead of 1 window per tab #258
Comments
After discussing with another user, i think this, if technically doable, should be a preference: "show tabs as separate windows". Some people will want the split and some will want to see 1 window per tab group. |
I have been investigating this further and it's a snake pit. Indeed the OS treats windows in a strange way when they implement standard I checked all AX notifications, and none of them detect windows merging into tabs. Same for splitting into individual windows. Basically merging into tabs means that windows become children of other windows, instead of the application. Splitting means they become children of the app again. Current state in AltTabBecause we are not aware of these changes, windows or tabs created after AltTab is running will appear as individual windows. Merging them into tabs won't affect that, which is a bug from the user perspective. Conversely, tabbed windows made before AltTab was open will be seen as only 1 window by AltTab as they are already created, and asking the app for its children won't reveal the windows children of the main window. Moving forwardsSince we can't observe changes of children/parent, it means we have to detect this last minute: when the user summons the UI. This sucks because it means more computation and more latency. I can imagine 2 ways to deal with this. On summon, we:
Other considerations:
|
Damn I found more complexity :/ Focusing different tabs doesn't trigger the |
Hehe checked how our friends at yabai are handling this, and I got a good laugh out of it. I can feel their pain after having looked into this mess for a few days. It makes me really wonder how professional assistive apps like screen readers for visually impaired people deal with this lack of API from macOS... |
It does trigger kAXMainWindowChangedNotification, if you wish to continue down this rabbithole. Unfortunately, I didn't actually document all of my findings.. |
I actually found this soon after posting! Thanks for sharing as always though @koekeishiya! 👍 |
Good news! I got this working! I even made it a preferences: "Show standard tabs as windows":
Unchecked is the default to be in line with Mission Control. The only bug/limitation is if AltTab is started after the user has already created a tab group and they check the new preference, then we will not show the other tabs in the tab group until the user focuses them manually. There is simply no way to get these windows before the user focuses them as the app is not listing them. Everything else works: minimized, hidden, other spaces, using |
# [3.19.0](v3.18.0...v3.19.0) (2020-05-06) ### Bug Fixes * don't display invalid windows (may fix [#292](#292) [#200](#200)) ([1bca012](1bca012)) * don't display tabbed windows (closes [#258](#258)) ([8419ad9](8419ad9)) * update french localization ([445980a](445980a)) ### Features * add dutch localization ([b8eb0b4](b8eb0b4)) * add preference: show standard tabs as windows ([3a11cc6](3a11cc6))
Wow, I was thinking why vscode tabs were displayed as separate windows the other day, and now you just worked on it, thanks! Nevertheless, I just tried v3.19.1 and below are my observations: With "Show standard tabs as windows" uncheckedOnly windows from current space are displayed with it unchecked, even though the option show windows from all spaces is active. With "Show standard tabs as windows" checkedThe option show windows from all spaces is now respected, |
Hey @ryenus! Thanks so much for finding this bug! I can reproduce it locally. I'm sad this new feature introduced a regression. I'm sad I introduced a regression. There is just too much to test these days after a change. I'll see how this can be mitigated as soon as possible. I hope it's not a big blocker, as Spaces are often a hard issue to handle due to there being no public API to handle them. |
Hey Louis, it happens, we appreciate all the work you do!
Plus reducing the auto-update frequency as you did recently helps reduce
the impact of hiccups like this.
…On Wed, May 6, 2020 at 7:49 PM lwouis ***@***.***> wrote:
Hey @ryenus <https://github.com/ryenus>! Thanks so much for finding this
bug! I can reproduce it locally. I'm sad this new feature introduced a
regression. I'm sad I introduced a regression. There is just too much to
test <https://github.com/lwouis/alt-tab-macos/blob/master/docs/QA.md>
these days after a change.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#258 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AB4CUJQMLSEQFA5M7UFTVRDRQIOS5ANCNFSM4MMVADBA>
.
|
@nathang21 thanks for the encouraging words! I pushed a workaround. While working on it I discovered another bug in macOS:
There is nothing I can do here as it is OS behavior, reproducible without AltTab. Another point is that the only workaround I could think to detect tabs was to subscribe to |
Thank you @lwouis for all the efforts and more specifically the diligence you've put into this :-) With "Show standard tabs as windows" unchecked in v3.19.2, now I see some strange layout issues, assuming below is the list of windows and an
Another thing I noticed is that when pressing native cmd+tab quickly, to just switch back to the most recent app, the apps are switched meanwhile the apps list isn't shown at all within a noticeable delay. Is it possible to simulate that in alt-tab? So the windows list is only displayed after pressing alt-tab and holding alt key for a while, e.g., |
@ryenus Thank you for the kind words 👍
Could you please attach a screenshot? A way to do it is to launch the Screenshot app and put a 5s timer. That way you can activate AltTab, wait, and snap. Another alternative is to install Loom. A user sent me a video recording with that app a few weeks back, and it's such a delight to see a problem with a nice video and audio. I'm using it myself now and it's just one click and you get a link to share, no need to upload anywhere. Really convenient.
All of this is already implemented in AltTab. There are 2 sides to it:
|
You should write a blog 😄 |
From discussion in #256 (comment)
Windows are grouped together as tabs. This is built-in macOS mechanisms where multiple
NSWindow
s are grouped together. They appear as individual windows in AltTab since the accessibility API lists them that way.There may be a way, potentially using private APIs, to notice tabs, and group them as 1 window in AltTab.
The text was updated successfully, but these errors were encountered: