-
Notifications
You must be signed in to change notification settings - Fork 6.6k
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
[FEATURE REQUEST] Ability to tile windows automatically #2694
Comments
interesting idea. could do this with maybe a FZ tie in. |
I've worked on code that does something similar to this. Shouldn't be hard to implement. @crutkas how do you mean by tie in? Are there plans to make FZ extensible? |
Why can’t it. We can add in what is needed, wonders of being in same project and OSS :) |
Right-clicking on the taskbar already allows for some kind of tiling. This looks much cooler, though. |
I see this as a combo of FancyZones and Window Walker. I'd say use Ctrl+Win then put a '+' in front of an app name that you want to open. Then it opens and snaps all along... or something like that :) |
FancyZones sits in a weird place between a traditional tiling window manager and a regular floating window manager. I imagine the best way to implement such a feature without requiring FZ to have two distinct modes would be an option like Automatically add new windows that don't already belong to a zone to a new zone. Really though FZ just needs an overhaul to its bindings and new features added like #1776, to make quickly configuring the active layout easy for the user. |
I would absolutely love this. It's one of a few things I desperately miss from i3/awesome. It would be nice to be able to create a series of configurations ('views' maybe) that you can apply to individual monitors. A shortcut to change a monitor from using "View 1" to using "View 2" would be good. A view could contain settings such as "manual window snap" or "automatic window tiling" as well as the list of zones that we have at the moment. An example using my setup: I would love to be able to have a 'static' pair of zones on my portrait monitor, a single horizontal split, so that I can have Outlook on top and Slack below. But on my main landscape monitor, I'm always chopping and changing applications, so it would be awesome to have a zoneset configured that took advantage of auto tiling, so that if I only have my IDE open, it is full screen, but as soon as I open a terminal, the screen has a vertical split at 70/30 and the terminal takes up the full RHS of the screen (the 30%). If I add another terminal window, it should split the 30% zone in half horizontally, just like in @zeealeid screenshots above. Bindings to assign windows to a specific zone would be welcome, as well as the option to designate a zone as a "master" zone, which means it never gets auto-split. I think I'm getting into a laundry-list of features for FZ now but seeing this issue made me realise that whilst FZ is so many miles ahead of the default Windows wm, there is still stuff that I really miss from tiling WMs I used for many years on Linux. |
That idea seems like some kind of tiling window manager, like those that you can install in linux. |
This would be SUPER helpful for me. Since windows doesn't support individual virtual desktops per monitor I always find myself trying to cram more onto each screen when I'm doing development stuff on Windows. The tiling aspect would also be extremely helpful with resizing, so they could all stay snapped together and resize at the same time. |
No we don't have any plan to make it extensible. It would require to redesign and re-implement it from scratch, an overwhelming task if you ask me. |
This would be an alright idea to add, although I do like fancy zones; but it does not take into consideration sub-windows from programs. |
I would love to see this feature. There is no tiling window manager for windows yet :/ As an inspiration the following projects could help: Linux
Windows
The window manager for linux are very good. i worked a lot with dwm. It is a reliable, near instant and configurable window manager. I did not see something that has the same experience in windows just yet. I think a solution for windows could look like this:
@zeealeid i love the integration of the taskbar. The idea of having the tiling behavior switch there is neat!! |
there is also this issue: #5 |
This video by Pop!_OS/system76 is very similar to the concept: https://www.youtube.com/watch?v=-fltwBKsMY0 |
Found two more Windows tilers:
|
This would be a killer feature in terms of productivity. Forcing users to place the windows using mouse is far away from keyboard centric workflow and because of that, a strong drawback for powertoys adoption. I am using i3 on WSL2 until this feature is available. |
👀 Does i3 work with Windows apps? |
no, just linux apps will work with i3 as this is inside WSL |
Looking forward to see dynamic tiling especially for very wide screens like 32:9 aspect ratio. Hope you'll get time and motivation to implement it! 👍 |
https://github.com/LGUG2Z/komorebi/ for anyone who wants a true bspwm/yabai-like tiling window management experience with a batteries-included config. 🎉 |
+1 on this suggestion. I've been having a hard time finding a tiled window management solution for Windows that just works out of the box with the currently existing systems that Windows offers (I.E: Windows 11's Virtual Desktop system), and without needing to learn LUA or AutoHotkey scripting. I feel like a feature being added to FancyZones that would automate the work of creating zones and moving windows based on the number available on the current virtual desktop (Alongside swapping the window positions instead of just snapping to the right when "Override Windows Snap" is enabled) would help a lot for the workflow that I've gotten used to. Although likewise, I'd love to also see a feature that allows configuring Window rules (For example, moving any Steam process related windows to my Games virtual desktop, or moving Maya/Clip Studio to my art virtual desktop) automatically, as how the current way Virtual Desktops in Windows 11 are designed is in a suboptimal way that is mostly just useful to some people for hiding NFSW stuff or Minesweeper/Solitaire at work. |
Pop Shell is one of the few things keeping me on linux right now. Please have a look at its implementation of auto-tiling on Gnome. |
Maybe you guys can check this out |
Automatic tiling should take the orientation into consideration. For example, if two applications are opened in landscape mode, then they would be tiled side to side (one app on left and another app on right). If the tablet orientation is changed from landscape to portrait, then they would be tiled top and bottom (one app on top and another app on bottom). This can be done in two ways:
|
I've personally been using GlazeWM and it's been working very well for me. Actively developed at the moment: https://github.com/lars-berger/GlazeWM |
still very interested in this feature!!! any updates? |
This is something i'd be super hyped up for especially since it does increase productivity at least for me |
microsoft plz 🥺 |
There's a github project that provides this functionality, https://github.com/ianyh/Amethyst, but is buggy. I'd love to see a Microsoft native approach to this. |
Can we just have a hotkey that randomly tiles windows using the existing fancy zones? Anything will do, but I'm tired of manually tiling things every time i turn on my pc. |
I concur. One of the powerful features of tiling windows is to facilitate a more keyboard-centric experience. Having to use a mouse to drag windows into the zones kind of defeats the point. |
If what you are looking for is "i3 for Windows", I recommend GlazeWM: https://github.com/lars-berger/GlazeWM I use this at work and barely notice any difference between it and i3 on Linux in my home setup. It comes as a single file exe that can be installed by the user without admin and has essentially all the same default keybindings/features as i3. The only real caveat is that you have to leave It's really phenomenal and has made a huge difference to my quality of life. I hope it can help you too. |
How is this different to "Move newly created windows to the last known zone"? (https://learn.microsoft.com/en-us/windows/powertoys/fancyzones#settings) Does this work on startup? |
@koppor no it does not automatically tile existing windows, even on startup of powertoys And the difference is
Think of using a linux tiling window manager, and disabling then renabling the tiling mode, it will automatically tile everything and fill the screen(s) That's what we want |
As I mentioned in this post. There are programs that use QT in Python but one cannot use zones to tear these windows out of the specified program and have fancy zones pick up those windows. |
As others have mentioned tiling window management is really about getting a more keyboard driven experience. Having to use a mouse is impractical for people who for instance use split keyboards, or for whatever other reason do not want to/can use a mouse. If you were to consider that all your windows were a stack of windows. And every time you opened another window, it would be pushed onto the stack, then a new FZ mode could support taking that stack of windows and ensuring they were distributed on the screen following some pre-defined yet dynamic pattern. Those patterns could be very diverse. There is ample experience to draw on from i3, dwm, herbstluft and others. If FZ were to support an API that made it possible to interact with windows programmatically and/or even in an event driven fashion, then the window management experience of FZ would become much more flexible and dynamic, instead of being forced into fixed layouts. Adding freedom to the window management experience adds the ability for more creativity. FZ is already a wonderful tool for managing windows. This would be like super-charging that featureset. |
I'd like to see automatic tailing management in Windows as I am using Hyprland currently. As all said, tiling window manger will be a good feature to improve productivity and wish to see it on powertoys. |
FancyWM is the best 'just works' dynamic tiling manager for Windows I've seen thus far, with GlazeWM being a close second.
It is licensed under GPLv2. |
The "Window-Tiling" PowerToy
Here's an idea, add the ability to tile windows automatically. What I mean by that is when a window would open, it'll cover the whole screen but when another window would open, it'll cover the half of the screen automatically and the first app would also resize to the half of the screen. If the third window opens it'll open below the second window, resizing the second window to half vertically. And the new window would take place under the second window.
It has been done before in some Linux window managers like "i3". And a lot of people really appreciate the ability to do that.
Concept Shots
I've prepared some concept shots to show that:
In the image above, a single window is opened. When the user wants open another window, they would need to click the start button or hit the start key on the keyboard. The Start Menu would be replaced with Power Run. The user would be able to select the desired app by typing it's name and selecting one of the results by using the arrow keys. Or just type the name and hit enter
And when more than two apps are opened:
And when more than three apps are opened, the third app would be resized to half of it's size and the fourth window would appear in the empty space created by the third app.
There are better explanations of tiling window managers (than what I've done here) online
Conclusion
The window tiling feature is inspired by some window managers in Linux (like i3). I think it'll help with productivity stuff. I've posted these concept shots on Twitter and many people wanted this feature to be in PowerToys. Maybe integrate it in FancyZones by adding a toggle for this feature. What do you think? :)
The text was updated successfully, but these errors were encountered: