domferr / tilingshell

Extend Gnome Shell with advanced tiling window management. Supports multiple monitors, Windows 11 Snap Assistant, Fancy Zones, customised tiling layouts and more.
https://extensions.gnome.org/extension/7065/tiling-shell/
GNU General Public License v2.0
696 stars 20 forks source link

[Feature Request] Rise windows together #110

Open rexackermann opened 4 months ago

rexackermann commented 4 months ago

It's kinda disturbing when i stack windows together and then I swich to another set of windows and then I have to do everything again It would be nice if the window stack would act as one window while swiching windows. Thank you, the ui is marvelous.

domferr commented 4 months ago

Hey, thank you for your suggestion! It seems a good idea but I'm not sure about the UI of this. Do you have any interesting idea or any example of other operating system or any GNOME extension already doing it?

domferr commented 4 months ago

We have got another issue (#33) about the same thing. I'm adding it here to document this

rodrigomantoan commented 3 months ago

I'd love to see that feature as well, I think Tiling Assistant (extensions page) does this nicely.

I really like both extensions, and would love to see kind of an all-in-one haha. I'm using Tiling Shell, and I miss this from Tiling Assistant — and the option to pick apps for the other parts of the tiling (when dragging/dropping to a tile position).

Leleat commented 1 month ago

Raising tiled windows as a group in Tiling Assistant is an all-or-nothing setting; i. e. you either enable the setting and always raise all tiled windows in a group, or disable group-raising for all grouped tiled windows.

Recently I got a new laptop with Windows 11, so I looked at how they do it. Windows seems to do an optional "soft grouping". When using Super + Tab tiled windows will be shown as a grouped item but additionally they are also shown as separate windows. That way the user can choose to either raise the entire group or only individual windows. That might be a better handle it than the all-or-nothing setting of Tiling Assistant.

You could integrate this optional group-raising into the app switcher and the overview in GNOME. The only problem I see is: how can the group-raising be made optional when the user clicks a window on the desktop. Maybe the group-raising could be used when a modifier is held?

rexackermann commented 1 month ago

I actually got accustomed to this feature in tilling assistant as @rodrigomantoan mentioned. But that broke suddenly in my setup. Gnome breaks a lot of extensios after updates. My desktop still crashes every once in a while and I have no idea what causes it.

Hey, thank you for your suggestion! It seems a good idea but I'm not sure about the UI of this. Do you have any interesting idea or any example of other operating system or any GNOME extension already doing it?

rexackermann commented 1 month ago

There could be an icon to chose it maybe, or a left click right click thing ?

You could integrate this optional group-raising into the app switcher and the overview in GNOME. The only problem I see is: how can the group-raising be made optional when the user clicks a window on the desktop. Maybe the group-raising could be used when a modifier is held?

sekurilabs commented 1 month ago

The way tilling assistant does it is that each layout is a group of windows. Then when you click on one application icon it raises all from that layout. This would mean that it would be needed to somehow catch which window is raised and to which layout (group) it belongs so they are then all raised at the same time.

Leleat commented 1 month ago

@rexackermann

I actually got accustomed to this feature in tilling assistant as @rodrigomantoan mentioned. But that broke suddenly in my setup. Gnome breaks a lot of extensios after updates. My desktop still crashes every once in a while and I have no idea what causes it.

Well, that sounds like a bug and should be reported at Tiling Assistant's repo (if you are still using T-A) especially if you think the crash happens because of T-A. After all, bugs can't be fixed if they aren't known... and I, the maintainer of Tiling Assistant, haven't had any reports for this yet 😅

rexackermann commented 1 month ago

Sorry for not reporting, my setup was is a mess(so yes I was uncertain that it was tilling assistant's fault) and I had assumed it will be fixed after a couple of days after the gnome changes has been adopted. Anyways, I just toogled it back on, no crashes this time. I will report to the repo if I spot any issue next time.

@rexackermann

I actually got accustomed to this feature in tilling assistant as @rodrigomantoan mentioned. But that broke suddenly in my setup. Gnome breaks a lot of extensios after updates. My desktop still crashes every once in a while and I have no idea what causes it.

Well, that sounds like a bug and should be reported at Tiling Assistant's repo (if you are still using T-A) especially if you think the crash happens because of T-A. After all, bugs can't be fixed if they aren't known... and I, the maintainer of Tiling Assistant, haven't had any reports for this yet 😅

rodrigomantoan commented 1 month ago

Raising tiled windows as a group in Tiling Assistant is an all-or-nothing setting; i. e. you either enable the setting and always raise all tiled windows in a group, or disable group-raising for all grouped tiled windows.

Yeah, that's true, and it can be annoying sometimes, I think the modifier that you mentioned is great @Leleat. And the way Windows handles it makes a smooth experience in general.

You could integrate this optional group-raising into the app switcher and the overview in GNOME. The only problem I see is: how can the group-raising be made optional when the user clicks a window on the desktop. Maybe the group-raising could be used when a modifier is held?

Could it be something toggled on settings? Example: enable group-raising by default or with a modifier because some would prefer group-raising by default, while others would prefer it not being the default.

domferr commented 1 month ago

You could integrate this optional group-raising into the app switcher and the overview in GNOME. The only problem I see is: how can the group-raising be made optional when the user clicks a window on the desktop. Maybe the group-raising could be used when a modifier is held?

Hey @Leleat it is nice to see you here :heart: ! My opinion is all about UX: I believe that if a user clicks on a window it must raise that window only, however the user should have a way to click on a group of windows to raise all of them. Integrating this into the app switcher is good, as well as integrating into the overview!

Leleat commented 1 month ago

Hey @Leleat it is nice to see you here ❤️ ! My opinion is all about UX: I believe that if a user clicks on a window it must raise that window only, however the user should have a way to click on a group of windows to raise all of them. Integrating this into the app switcher is good, as well as integrating into the overview!

Thanks :heart:. A bit of backstory as to why I am here: T-A (Tiling Assistant) is sorta in maintenance mode, I only do some bug fixes and ports to new GNOME Shell versions. So I've been keeping an eye on Tiling Shell to see where it goes :upside_down_face:. If Tiling Shell implements some of the requested features that make the core experience of T-A (like this one or the window suggestions in #62), I might sunset T-A and Tiling Shell could offer a great migration path. Especially, since some features in Tiling Shell are already better than in T-A, for instance, T-A's layouts suck... Anyway, back on topic.

I agree with your point about the window raising. Among other things I regret the way I implemented it in T-A and that I didn't put more thought into it back then due to my lack of experience. One of the first feature request in T-A was to disable the "always-grouping" of tiled windows. I think there were even users who reported the grouped-raising as a bug even though it was an actual feature :joy:.

Windows 11: https://youtu.be/2DhxYHAjKXc?feature=shared&t=48 (at 0:48)

In W11 the optional grouping is presented in the bottom panel - as shown in your linked video, in the overview, and in their window switcher. The grouping in the panel might be problematic for GNOME though since GNOME doesn't offer any previews in their Dash and popular extensions like Dash-to-Dock or Dash-to-Panel might conflict with custom implementation in Tiling Shell. Maybe some collaboration between extensions is needed here.

I don't know if you have access to W11 but in case you don't, I am going to provide some screenshots on how W11 integrates the grouping into their overview and window switcher.

Windows 11

Overview

Screenshot of Windows 11's overview ![Screenshot 2024-10-26 122230](https://github.com/user-attachments/assets/8d94dfd8-4cb8-49f1-a85c-55590a867078)

W11 simply adds an extra item for the tile group to the overview in addition to the items for the individual windows. One problem I see here is that the overview may get pretty cluttered and tile groups will be hard to find. Maybe tile groups could be put into a special row/spot or have some special styling... or maybe it's not that big of a deal.

Window Switcher

Screen of Windows 11's window switcher ![Screenshot 2024-10-26 122559](https://github.com/user-attachments/assets/a96f22f6-8988-476c-82ec-4df850d1a00f)

In the window switcher it works pretty much the same. Windows adds an extra item for the tile group (the second item in my screenshot).

macOS

I also have a macBook, so I can provide some reference for it, too :)

macOS had a pretty barebones (bad) tiling system. Until the release of macOS Sequoia last month, all tiled and "maximized" (technically fullscreened) windows were automatically put into separate workspaces. You couldn't have floating windows as part of that workspace. Those workspaces only allowed 1 maximized window or you could tile 2 windows side by side... and you had to have 2 windows tiled side by side. You couldn't just tile 1 window to 1 screen half. If you didn't choose another window to fill the rest of the space, the tiled window would automatically maximize (fullscreen) and fill the entire workspace. macOS calls this "split view". Here you can see it in action: https://www.youtube.com/watch?v=pBFkklUhH_U

This has gotten a bit better with macOS Sequoia. Split view still exists but they also added proper tiling... Although it's basically just a Windows 10 (not 11) clone. But it has no grouping. Windows resize and raise independently. They also aren't grouped in macOS's overview or app switcher. Here is a video that showcases some of it: https://www.youtube.com/watch?v=GXych0RNQxk.

domferr commented 1 month ago

Thanks ❤️. A bit of backstory as to why I am here: T-A (Tiling Assistant) is sorta in maintenance mode, I only do some bug fixes and ports to new GNOME Shell versions. So I've been keeping an eye on Tiling Shell to see where it goes 🙃. If Tiling Shell implements some of the requested features that make the core experience of T-A (like this one or the window suggestions in #62), I might sunset T-A and Tiling Shell could offer a great migration path. Especially, since some features in Tiling Shell are already better than in T-A, for instance, T-A's layouts suck... Anyway, back on topic.

Hey @Leleat I'm happy you are looking into Tiling Shell! I started this project for fun and T-A has always been my point of reference, it is an amazing work! The features you are talking about are in my roadmap, so I'm open to provide all the support needed :heart:. If you have already some ideas, feel free to reach me at anytime!

In W11 the optional grouping is presented in the bottom panel - as shown in your linked video, in the overview, and in their window switcher. The grouping in the panel might be problematic for GNOME though since GNOME doesn't offer any previews in their Dash and popular extensions like Dash-to-Dock or Dash-to-Panel might conflict with custom implementation in Tiling Shell. Maybe some collaboration between extensions is needed here.

I'm replying late because I made some research in the last few days about this. I also came to the conclusion that some collaboration between extensions would be needed here!

Thank you for sharing all of this! Me, as a user, when I need to raise multiple windows, I do not use the overview. I use the window switcher instead, since it gets the same job done faster. I'm not sure it is just me or not :laughing:. However, having a group of windows in the overview would be so handy! It may be nice to have both solutions, imho.

However, as to my knowledge, creating groups of windows in the overview cannot be done without hacky workarounds...