Open lolmaus opened 6 years ago
@lolmaus seems like a good idea in principle. I would definitely split it into subfeatures.
Grouping into a single rectangular layout would not work well with multiple monitors, so a more general approach to moving as a group should be used. For example, dragging a (sub-)group button, or an entire tabs container.
It be interesting on its own to start with tying multiple windows logically into a group, that is brought to front when any of them is (though I'd make it configurable).
Grouping windows via a dialog is not very convenient. Perhaps it could be drag & drop with a modifier key, or, as you suggested, dragging a special window button.
There should be convenient way to restart the whole group.
Not directly related: most windows today draw their own title, so adding a button to it no longer seems feasible. I can envision some kind of overlay though.
Another major question is - how many real-world scenarios can be covered with existing features.
For example, your browser + Excel/Calc scenario would behave almost like what you described, if Stack would have a zone container, which, unlike UniformGrid would let you dynamically redistribute space inside it with sizing grips. Then you could take, say, OOB Horizontal, add a zone or two into its middle part with this theoretical container, and viola, you'd be able to put a browser into main, your Calc and Excel into one of these zones (and distribute space between them however you like), and switch between browser (any way) and Calc+Excel (a window tab using ZoneElement).
Don't describe how a window manager should do what you want. A better discussion can sprawl from a description of what and why you want to happen to your windows. For example, it is unclear from your scenario, why do you want to be able to make groups out of random windows, and why do you want them to coexist on one virtual desktop with each other and other groups. Ideally, everyone should list their own specific scenario, and its current annoyances. That way one does not have to make assumptions about what others might want.
Disclaimers
Review of existing solutions
Before I proceed, let's review all tiling options available.
Problem definition
Consider this use case:
I'm working with a maximized browser.
I need to work with two notepad windows: assemble some text in notepad 2 by copying fragments of text from notepad 1.
Naturally, I tile the two notepads, so that each uses 50% of available space.
I need to look up something on the web, so I switch to the browser.
I want to go back to working with the two notepads.
BAM! 💥 There is no simple way to bring back both notepads at once!
I switch to one of the notepads, either with Alt+Tab of via taskbar. The notepad appears on top of the browser, half of the browser being still visible -- and useless.
I now have to find the other notepad by hand and bring it up manually. This is a PITA, especially when there are multiple notepads opened and I need only one.
This may seem as a minor issue. It is minor indeed, but it's still a huge nuisance. Note that this issue happens dozens of time per day, each day, to almost every computer user.
It's also not limited to notepads, of course. This use case is very wide, involving numerous situations and apps in countless combinations.
Assumptions
The idea
A possible implementation
In the dialog:
Potential integration with Stack WM
Slack could treat groups as individual windows: when you put a grouped window into a Stack tile, the whole group goes into the tile, maintaining the group layout.
Final thoughts
I believe, this feature idea has huge commercial potential. It solves a problem that affects the absolute majority of users, even though most users don't realize it yet.