anametologin / krohnkite

A dynamic tiling extension for KWin
MIT License
95 stars 7 forks source link

Four Columns #36

Open Ruby-Haruko opened 2 weeks ago

Ruby-Haruko commented 2 weeks ago

Please add an option for Four Columns and more? with a 32:9 Monitor (5120x1440) is a lot of space for more columns.

Jas-SinghFSU commented 2 weeks ago

You should be able to use the vertical layout and rotate it with a rotate keybind assigned to have infinite columns... at least for now.

stylerw commented 1 week ago

As a fellow ultrawide user, I'll second that I'd like a 'Just line them up next to each other, as many as you'd like' sort of thing to get a 3+ column window layout. As for the above @Jas-SinghFSU comment, I can't find a 'Vertical' Layout in the current release which allows me to do this. Help?

anametologin commented 1 week ago

I can't find a 'Vertical' Layout

Stacked layout

stylerw commented 1 week ago

That doesn't quite do what I need, though, as it doesn't equally distribute the window widths. It gives half the screen to one of them. I'm hoping for something that splits the desktop equally among windows. But thank you, and thank you for the project!

anametologin commented 1 week ago

I'm hoping for something that splits the desktop equally among windows.

Krohnkite is about shortcuts, so you can use shrink/enlarge and rotate shortcuts.

stylerw commented 1 week ago

That may be, but it would be nice to have a layout which just displays window in one row, on equal size, which could be rotated vertically or horizontally. Specifically because using shrink/enlarge doesn't maintain equality. If I shrink the large window in 'Stacked', then add a new window, I have to manually resize that window again to get them to be equal size again.

Thank you!

stylerw commented 6 days ago

For what it's worth, this was implemented previously by Kwin-Tiling under the name 'Blade Layout' (code here: https://github.com/kwin-scripts/kwin-tiling/blob/master/contents/code/bladelayout.js), if that's helpful and saves work.

Jas-SinghFSU commented 5 days ago

The work is rather simple for this tiling but I think it's more of a matter of approach. There are three options currently that I can think of that are feasible:

  1. We implement a whole new layout for this specific request
  2. We provide an option in the Stacked layout to not create a master tile - which would spawn all windows at even sizes
  3. We provide an option to also rotate the Stacked layout permanently (and maybe even other layouts?) that persists between sessions

Options 2 and 3 go hand in hand for this specific approach but would also provide a better user experience with persisted sessions, in my opinion. And with this approach you can modify the existing layouts to fit your needs exactly without having to apply rotations every session.

The rest is just a simple matter of implementation.