Skip to content
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

Ability to emulate dwm #2688

Closed
cyruseuros opened this issue May 24, 2020 · 4 comments
Closed

Ability to emulate dwm #2688

cyruseuros opened this issue May 24, 2020 · 4 comments

Comments

@cyruseuros
Copy link

Is your feature request related to a problem? Please describe.
The layouts kitty provides have different philosophies ("fat"/"tall" ~ dwm, "splits" ~ i3, etc), but the commands kitty has don't suit all of them. E.g. there seems to be no way to dynamically increase the number of windows in the master pane in "fat" and "tall" layouts. It is also impossible to move borders instead of resizing windows, so the standard dwm workflow of increasing/decreasing the master area does not work. I see this as a shortcoming since the dwm workflow is already supported through things like previous_window and next_window and move_window_to_top, and I think adding commands to achieve a full dwm workflow would be quite useful in avoiding hackish solutions

Describe the solution you'd like
Add increse_full_size, decrease_full_size, increase_bias, and decrease_bias commands

Describe alternatives you've considered
Perhaps this is already implemented and I'm missing it?

@kovidgoyal
Copy link
Owner

Once could certainly add increase and decrease full size to the tall.fat layouts but if you find yourself doing that a lot, you might be better served with the splits layout, https://sw.kovidgoyal.net/kitty/layouts.html#the-splits-layout

As for changing the bias, simply resize the large window, it has the same effect.

@cyruseuros
Copy link
Author

While those work, they are workarounds.

They essentially do away with the master/stack metaphor which is what the tall/fat layouts are based on. Switching to splits also means that the user loses the benefit of dynamic window management. From the perspective of an i3 user, this likely makes no sense, which is perfectly understandable. But to anyone coming from dwm, awesomewm, or any of the wms emulating this behaviour in some layouts (qtile, krohnkite, etc.) the availability of master/stack layouts without master/stack controls is very confusing. It requires constant switching between mindsets, which can get very frustrating as the commands only "sort of" do what you want.

Does any of the above make sense? If I rambled too much let me know and I'll try to elaborate with more specific examples.

@kovidgoyal
Copy link
Owner

Like I said, adding mappable actions to change the number of full size windows is easy to do, you can probably add it yourself and send a PR. Just see how the "rotate" layout action is implemented for the splits layout. Implement layout_actions() in tall.py similar to how it is done in splits.py

@cyruseuros
Copy link
Author

Oh, my bad, I thought you would refuse to merge ti based on the above! I'll get to it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants