Feature request: automatic splits similar to tiling window managers #5559

Closed
opened 2026-01-31 00:16:04 +00:00 by claunia · 3 comments
Owner

Originally created by @ericist on GitHub (Dec 13, 2019).

Originally assigned to: @zadjii-msft on GitHub.

Description of the new feature/enhancement

Creating new splits could be made easier by providing a keybinding that automatically splits the currently active pane based on the current split type, similar to tiling window managers such as bspwm.

When activating the keybinding (e.g. Alt+Shift+Enter) following would happen:
If no split exists yet, the terminal would be split vertically. If a split exists and the currently active pane is part of a vertical split, it would be split horizontally and vice versa.

This is also visualized in the documentation of bspwm
Additionally, other schemes such as a spiral scheme could also be implemented

Proposed technical implementation details (optional)

The implementation could in theory be very simple: Just query the split type of the active pane
(vertical/horizontal) and create a new split of the other type when pressing the keybinding.

I would try to implement this feature myself but unfortunatley do not have the time at the moment.

Originally created by @ericist on GitHub (Dec 13, 2019). Originally assigned to: @zadjii-msft on GitHub. <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> # Description of the new feature/enhancement Creating new splits could be made easier by providing a keybinding that automatically splits the currently active pane based on the current split type, similar to tiling window managers such as bspwm. When activating the keybinding (e.g. Alt+Shift+Enter) following would happen: If no split exists yet, the terminal would be split vertically. If a split exists and the currently active pane is part of a vertical split, it would be split horizontally and vice versa. This is also visualized in [the documentation of bspwm](https://github.com/baskerville/bspwm#longest-side-scheme) Additionally, other schemes such as a [spiral scheme](https://github.com/baskerville/bspwm#spiral-scheme) could also be implemented <!-- A clear and concise description of what the problem is that the new feature would solve. Describe why and how a user would use this new functionality (if applicable). --> # Proposed technical implementation details (optional) The implementation could in theory be very simple: Just query the split type of the active pane (vertical/horizontal) and create a new split of the other type when pressing the keybinding. I would try to implement this feature myself but unfortunatley do not have the time at the moment. <!-- A clear and concise description of what you want to happen. -->
Author
Owner

@zadjii-msft commented on GitHub (Dec 13, 2019):

Okay so this sounds like two different requests here

  1. Use the current profile for creating a new split. This is already tracked by #1756, so let's direct that discussion to that thread.
  2. "automatic" or "spiral" split mode - I don't hate this. And with horizontal and vertical already being parameters for splitPane, we could totally extend that to split in automatic ways like this.
@zadjii-msft commented on GitHub (Dec 13, 2019): Okay so this sounds like _two_ different requests here 1. Use the current profile for creating a new split. This is already tracked by #1756, so let's direct that discussion to that thread. 2. "automatic" or "spiral" split mode - I don't hate this. And with `horizontal` and `vertical` already being parameters for `splitPane`, we could totally extend that to split in automatic ways like this.
Author
Owner

@ericist commented on GitHub (Dec 13, 2019):

You're right, I didn't think about different profiles because I currently only use one.

Simply alternating the split types would propably be way easier to implement than
something more complex like a spiral (sometimes also called fibonacci) mode (which personally
I find not very useful anyway, I just wanted to give another example).

If this would be implemented there could also be a split ratio parameter (also found in bspwm)
which decides if a new split should split the current pane in the middle (ratio 50%) or at another point.

@ericist commented on GitHub (Dec 13, 2019): You're right, I didn't think about different profiles because I currently only use one. Simply alternating the split types would propably be way easier to implement than something more complex like a spiral (sometimes also called fibonacci) mode (which personally I find not very useful anyway, I just wanted to give another example). If this would be implemented there could also be a split ratio parameter (also found in bspwm) which decides if a new split should split the current pane in the middle (ratio 50%) or at another point.
Author
Owner

@ghost commented on GitHub (Jan 14, 2020):

:tada:This issue was addressed in #4025, which has now been successfully released as Windows Terminal Preview v0.8.10091.0.🎉

Handy links:

@ghost commented on GitHub (Jan 14, 2020): :tada:This issue was addressed in #4025, which has now been successfully released as `Windows Terminal Preview v0.8.10091.0`.:tada: Handy links: * [Release Notes](https://github.com/microsoft/terminal/releases/tag/v0.8.10091.0) * [Store Download](https://www.microsoft.com/store/apps/9n0dx20hk701?cid=storebadge&ocid=badge)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#5559