BurntSushi / wingo

A fully-featured window manager written in Go.
Do What The F*ck You Want To Public License
1k stars 86 forks source link

In tiled mode, client is displaced after returning from fullscreen #129

Open quite opened 7 years ago

quite commented 7 years ago

Take a small setup like

____________
|     | ff2 |
| ff1 |_____|
|     | ff3 |
|_____|_____|

If one of the Firefox windows ff1 or ff2 is made fullscreen (F11) and then is taken back (F11 again), it appears as if wingo thinks it is a brand new client, and places it in bottom right corner:

____________
|     | ff3 |
|ff2/1|_____|
|     |ff1/2|
|_____|_____|

It seems like wingo changes the tiled layout to accommodate the window that has disappeared, gone fullscreen. And new clients are by default added at the bottom right position (at least in this layout), and that's where the window coming back ends up.

How can this be addressed?

I have tried this with Firefox, chromium and the mpv media player -- same effect.

(This also leads me to wonder if it is possible to have new clients appear in the "master" part of the tiled layout? -- not that it will solve this problem (except in the specific case when it is the master window that goes fullscreen...))

BurntSushi commented 7 years ago

This is just how Wingo works. There really isn't much in the way of remembering tiled layouts. In particular, your specific use case leaves out more challenging aspects, such as what to do if another window was added to the tiled layout while your first window is fullscreen. You basically need to come up with a general purpose merge algorithm. I have no doubt that something is possible, but Wingo doesn't have it and probably never will at this point.

(If you look at the issue tracker and commit history, it should be clear that Wingo development is essentially dead. I still use it myself every day, so I'll fix any critical bugs that impact my use of it, but I definitely don't plan to fix deeper bugs like this or add new features any time soon. Sorry.)