FancyWM/fancywm

Use a "Master Viewport" with pre-set layouts, which fill based on last-viewed hierarchy

ariccb opened this issue · 7 comments

Describe the solution you'd like
I'd love to have the functionality to more automate the window placement of my applications to require less manual "move window left/right/up/down", and setting up window panels etc.
Ideally, there could be a few pre-set configurations to choose from, where there is a prominent (master) panel, and then additional smaller numbered viewports that automatically fill with the open windows, and get updated by the last window to be opened.

Then you need to be able to quickly assign the focused window as the current "Master" window, which would immediately switch it to the prominent Master Panel location. In this way, you could have layouts with 1 large master panel, 2 smaller panels stacked beside it, and several "tiny" panels that could line up underneath them, so you would always have a live view of what's your most recent window you've opened, and a quick way to activate the one you want to work on.

Describe alternatives you've considered
Right now FancyWM requires you to use more "involved" switching between panel zones, which require multiple different hotkeys to get to do what you want. With the 'Master Panel' and "Preset layouts" mode, you would just have the arrow keys to focus on the window you want, and ONE hotkey to assign new master window.

Additional context
I believe this is how DWM on Linux works, and it's a very nice way to automatically manage your windows.

This to me is the one, and maybe only, major key thing FancyWM is missing for me. I use an Ultrawide monitor, and typically run with a "Primary" window in the center that is 1920x1440 so it mirrors a typical display size for my main app. Then I have columns on the left and right I typically have split into into either stacks or 2 windows in a vertical container.

Something like this...

+---------------+-------------------------------------+---------------+
|               |                                     |               |
|               |                                     |               |
|    Vert1      |                                     |               |
|               |                                     |               |
|               |                                     |               |
+---------------+              Master                 |     Stack     |
|               |                                     |               |
|               |                                     |               |
|    Vert2      |                                     |               |
|               |                                     |               |
|               |                                     |               |
+---------------+-------------------------------------+---------------+

If a new window is spawned and shows up as a fresh top-level entity which I can then merge into the left or right column, that's fine.

Ideally, something like this would even be possible:

+---------------+-------------------------------------+---------------+
|               |               Zoom                  |               |
|               +-------------------------------------+               |
|    Vert1      |                                     |               |
|               |                                     |               |
|               |                                     |               |
+---------------+              Master                 |     Stack     |
|               |                                     |               |
|               |                                     |               |
|    Vert2      |                                     |               |
|               |                                     |               |
|               |                                     |               |
+---------------+-------------------------------------+---------------+

I typically keep Zoom in a smaller pane on top of the center master window, as then it looks like I'm almost looking into my monitor-attached camera during meetings, and not just gazing off into the nether. :)

Thanks for the work on FancyWM. I've paid for my license to support!

This might be a duplicate of some other issues, ones that suggest presets.

It also sounds like you both kinda want bsp-adjacent preset(s).

If so, I could recommend the software komorabi in the meantime if you haven't tried it already.

It has several pros and cons compared to fancy, but might be worth it for you two, as it supports auto layout, but only in customizable variations of bsp that are similar to your examples, last time I used it a year ago. It doesn't integrate with native virtual desktops however.

It's got active development and relatively easy to use, though still doesn't match fancy due partially to a different ux philosophy.

I actually did try komorabi, and unfortunately it was much too confusing to use, and the documentation was very limited to figuring out how to use it. I also like the ability that FancyWM has to use your mouse AND Keyboard, depending on what you want to do at the time. I think I would be sufficiently happy with being able to "lock" one panel size and location. I think it'd be fairly easy to implement from a code perspective, and would help with keeping that main zone in the right spot, and keep it from getting jostled around with every new window I create.

I would greatly appreciate this type of functionality as well. Amethyst works this way, but the app itself isn't as polished as FancyWM. Komorebi seems to work the same way too, but I barely understand how to install it, let alone configure and use it.

AJolly commented

I'd greatly be interested - I mostly want to use "quadrants" for window tiles.

This issue is stale because it has been open for 14 days with no activity.

This issue was closed because it has been inactive for 14 days since being marked as stale.