avahe-kellenberger / nimdow

A window manager written in Nim (In Development)
GNU General Public License v2.0
317 stars 19 forks source link

Layout rework #224

Open PMunch opened 7 months ago

PMunch commented 7 months ago

This commit moves all the layout logic and settings out from various modules and into the "masterstacklayout" module. With these changes it should be much easier to add new layouts.

There are still a couple actions like "moveWindowNext" which I guess technically might be said to belong to the "masterstacklayout" so it's possible that I might have to make some further changes in order to make new layouts work. But I believe this should be enough.

PMunch commented 7 months ago

Tests are green now. Apart from the comment above I don't think there's anything I've missed now.

PMunch commented 7 months ago

Looked into implementing my new layout now. It seems like I might want to add a LayoutState object to the Client object and move some stuff from client.nim into masterstacklayout.nim as well. I don't want to remove things like fullscreen and floating because those don't really belong to the layout, but this way it would be easier to keep state for each client for a layout. Another option is to store it separately in a table, but that seems like too much work..