Feature Request: Split windows #783

Closed
opened 2026-01-30 22:03:57 +00:00 by claunia · 26 comments
Owner

Originally created by @ankitbko on GitHub (May 7, 2019).

Originally assigned to: @zadjii-msft on GitHub.

Consider Supporting tmux style split windows where tabs can be grouped into single window with split screens -

Originally created by @ankitbko on GitHub (May 7, 2019). Originally assigned to: @zadjii-msft on GitHub. Consider Supporting tmux style split windows where tabs can be grouped into single window with split screens - ![](https://devblogs.microsoft.com/wp-content/uploads/sites/33/2019/02/8-split-cacademo.png)
Author
Owner

@zadjii-msft commented on GitHub (May 7, 2019):

This is probably my highest priority feature request :)

@zadjii-msft commented on GitHub (May 7, 2019): This is probably my highest priority feature request :)
Author
Owner

@oising commented on GitHub (May 7, 2019):

Also consider tmux compatible keybindings ;)

@oising commented on GitHub (May 7, 2019): Also consider tmux compatible keybindings ;)
Author
Owner

@zadjii-msft commented on GitHub (May 7, 2019):

Since the keybindings will be remappable, you'll be able to set them to whatever you like :)

Though, I'll make sure they don't conflict with tmux out of the box.

@zadjii-msft commented on GitHub (May 7, 2019): Since the keybindings _will be_ remappable, you'll be able to set them to whatever you like :) Though, I'll make sure they don't conflict with tmux out of the box.
Author
Owner

@bennycornelissen commented on GitHub (May 7, 2019):

If we're looking at tmux for things like splits, why not implement Tmux Control Mode like iTerm on MacOS. I switch back and forth between my Macs (with iTerm2) and my Surface Laptop with WSL but WSL2 combined with a really usable terminal (comparable to iTerm2) would really make me consider leaving the Apple camp.

@bennycornelissen commented on GitHub (May 7, 2019): If we're looking at tmux for things like splits, why not implement [Tmux Control Mode](https://medium.com/@gveloper/using-iterm2s-built-in-integration-with-tmux-d5d0ef55ec30) like iTerm on MacOS. I switch back and forth between my Macs (with iTerm2) and my Surface Laptop with WSL but WSL2 combined with a _really_ usable terminal (comparable to iTerm2) would really make me consider leaving the Apple camp.
Author
Owner

@zadjii-msft commented on GitHub (May 7, 2019):

I did not know that Tmux Control Mode even existed.

That sounds really awesome, I'm totally on board with trying to make that work somehow.

@zadjii-msft commented on GitHub (May 7, 2019): I did not know that Tmux Control Mode even existed. That sounds really awesome, I'm totally on board with trying to make that work somehow.
Author
Owner

@dzek69 commented on GitHub (May 8, 2019):

+1, but it definitely should support tabs of different consoles - I mean Powershell aside to WSL bash for example.

Plus I'd like it to be more like Vivaldi's browser management of tabs tiling (you can ctrl+click tabs and tile/untile them freely from context menu) than ConEmu console emulator (where you can just "split to right/bottom", which creates new console, but I cannot easily tile two existing tabs).

@dzek69 commented on GitHub (May 8, 2019): +1, but it definitely should support tabs of different consoles - I mean Powershell aside to WSL bash for example. Plus I'd like it to be more like Vivaldi's browser management of tabs tiling (you can ctrl+click tabs and tile/untile them freely from context menu) than ConEmu console emulator (where you can just "split to right/bottom", which creates new console, but I cannot easily tile two existing tabs).
Author
Owner

@mdtauk commented on GitHub (May 9, 2019):

You should be able to split tab above and below as well as to the left or right.

@mdtauk commented on GitHub (May 9, 2019): You should be able to split tab above and below as well as to the left or right.
Author
Owner

@eric-belhomme commented on GitHub (May 14, 2019):

+1 !!!
I'm a big fan of Gnome Terminator and term splitting is IMHO a must-have (even more important than tabbed terminals) for a decent terminal emulator !
https://gnometerminator.blogspot.com

@eric-belhomme commented on GitHub (May 14, 2019): +1 !!! I'm a big fan of Gnome Terminator and term splitting is IMHO a must-have (even more important than tabbed terminals) for a decent terminal emulator ! https://gnometerminator.blogspot.com
Author
Owner

@BladeFireLight commented on GitHub (May 17, 2019):

I would love it if each of the split window could run as a different account.

@BladeFireLight commented on GitHub (May 17, 2019): I would love it if each of the split window could run as a different account.
Author
Owner

@zadjii-msft commented on GitHub (Jun 7, 2019):

Man it's a really great thing this is in pr (#825) then ;)

@zadjii-msft commented on GitHub (Jun 7, 2019): Man it's a really great thing this is in pr (#825) then ;)
Author
Owner

@brunolm commented on GitHub (Jun 23, 2019):

Is this in the preview? How do I use it? Couldn't find any option and/or kb shortcut

@brunolm commented on GitHub (Jun 23, 2019): Is this in the preview? How do I use it? Couldn't find any option and/or kb shortcut
Author
Owner

@hypermagicmountain commented on GitHub (Jun 27, 2019):

@brunolm

Is this in the preview? How do I use it? Couldn't find any option and/or kb shortcut

Add this to the Keybindings in the settings and adjust the keys as your like.

           {
                "command" : "splitHorizontal",
                "keys" : 
                [
                    "ctrl+shift+-"
                ]
            },
            {
                "command" : "splitVertical",
                "keys" : 
                [
                    "ctrl+shift+E"
                ]
            },
@hypermagicmountain commented on GitHub (Jun 27, 2019): @brunolm > Is this in the preview? How do I use it? Couldn't find any option and/or kb shortcut Add this to the Keybindings in the settings and adjust the keys as your like. ``` { "command" : "splitHorizontal", "keys" : [ "ctrl+shift+-" ] }, { "command" : "splitVertical", "keys" : [ "ctrl+shift+E" ] }, ```
Author
Owner

@alnutile commented on GitHub (Jul 4, 2019):

iTerm on the Mac has a split left/down feature as well. I rather not use tmux if not needed and have it built into the terminal esp shortcuts like ctrl+shift+w for wide etc

@alnutile commented on GitHub (Jul 4, 2019): ![](https://coderwall-assets-0.s3.amazonaws.com/uploads/picture/file/1925/Screen_Shot_2013-07-30_at_11.13.54_AM.png) iTerm on the Mac has a split left/down feature as well. I rather not use tmux if not needed and have it built into the terminal esp shortcuts like ctrl+shift+w for wide etc
Author
Owner

@manmartgarc commented on GitHub (Jul 16, 2019):

Is there a way to switch between the panes, after being split? Thanks!

@manmartgarc commented on GitHub (Jul 16, 2019): Is there a way to switch between the panes, _after_ being split? Thanks!
Author
Owner

@zadjii-msft commented on GitHub (Jul 16, 2019):

@manmartgarc This is tracked by #995, and in pr in #1910

@zadjii-msft commented on GitHub (Jul 16, 2019): @manmartgarc This is tracked by #995, and in pr in #1910
Author
Owner

@hypermagicmountain commented on GitHub (Jul 17, 2019):

This is how I work with Conemu every day. It will start up like in the picture. 3 times bash and 1 powershell. I have keybindings for adding more panes horizontally or vertically (will be the same profile as the currently selected one), and for switching between fullscreen and split mode. For me this is the perfect way to handle multiple shells. I hope the Windows Terminal will work similar, especially with the startup profile and the keybindings to switch between full/split view.

Conemu four panes

@hypermagicmountain commented on GitHub (Jul 17, 2019): This is how I work with Conemu every day. It will start up like in the picture. 3 times bash and 1 powershell. I have keybindings for adding more panes horizontally or vertically (will be the same profile as the currently selected one), and for switching between fullscreen and split mode. For me this is the perfect way to handle multiple shells. I hope the Windows Terminal will work similar, especially with the startup profile and the keybindings to switch between full/split view. ![Conemu four panes](https://user-images.githubusercontent.com/32417751/61364048-531c6f80-a885-11e9-942a-fc0ae8a2ed7b.png)
Author
Owner

@dacarey commented on GitHub (Jul 17, 2019):

Hi yx

On Wed, 17 Jul 2019 at 10:29, hypermagicmountain notifications@github.com
wrote:

This is how I work with Conemu every day. It will start uqqp like in the
picture. I have keybindings for adding more panes horizontally or
vertically (will be the same profile as the currently selected one), and
for switching between fullscreen and split mode. For me this is the perfect
way to handle multiple shells. I hope the Windows Terminal will work
similar.

[image: Conemu four panes]
https://user-images.githubusercontent.com/32417751/61364048-531c6f80-a885-11e9-942a-fc0ae8a2ed7b.png


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/terminal/issues/532?email_source=notifications&email_token=ABUUNYXOCYMNMRPZZI6YKU3P73Q6FA5CNFSM4HLL2HG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2DTKEY#issuecomment-512177427,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABUUNYV4GDBNPBWMYLPOGB3P73Q6FANCNFSM4HLL2HGQ
.

@dacarey commented on GitHub (Jul 17, 2019): Hi yx On Wed, 17 Jul 2019 at 10:29, hypermagicmountain <notifications@github.com> wrote: > This is how I work with Conemu every day. It will start uqqp like in the > picture. I have keybindings for adding more panes horizontally or > vertically (will be the same profile as the currently selected one), and > for switching between fullscreen and split mode. For me this is the perfect > way to handle multiple shells. I hope the Windows Terminal will work > similar. > > [image: Conemu four panes] > <https://user-images.githubusercontent.com/32417751/61364048-531c6f80-a885-11e9-942a-fc0ae8a2ed7b.png> > > — > You are receiving this because you are subscribed to this thread. > Reply to this email directly, view it on GitHub > <https://github.com/microsoft/terminal/issues/532?email_source=notifications&email_token=ABUUNYXOCYMNMRPZZI6YKU3P73Q6FA5CNFSM4HLL2HG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2DTKEY#issuecomment-512177427>, > or mute the thread > <https://github.com/notifications/unsubscribe-auth/ABUUNYV4GDBNPBWMYLPOGB3P73Q6FANCNFSM4HLL2HGQ> > . >
Author
Owner

@DJPoland commented on GitHub (Jul 25, 2019):

@zadjii-msft is there a command for switching between panes with a hotkey rather than clicking between each pane for the splitHorizontal/vertical commands? I went to that pull request #1920 but wasn't able to figure it out. Maybe it's because I have the windows store version of the terminal...?

@DJPoland commented on GitHub (Jul 25, 2019): @zadjii-msft is there a command for switching between panes with a hotkey rather than clicking between each pane for the splitHorizontal/vertical commands? I went to that pull request #1920 but wasn't able to figure it out. Maybe it's because I have the windows store version of the terminal...?
Author
Owner

@zadjii-msft commented on GitHub (Jul 25, 2019):

@DJPoland The store version doesn't have #1920 in it quite yet. You'll need to wait for 0.3 to be pushed to the store.

@zadjii-msft commented on GitHub (Jul 25, 2019): @DJPoland The store version doesn't have #1920 in it quite yet. You'll need to wait for 0.3 to be pushed to the store.
Author
Owner

@DJPoland commented on GitHub (Jul 25, 2019):

@zadjii-msft sweet. Is there any way I can split to a new pane and the child pane that was just spawned would be in the same directory as the root pane? In other words, I don't want to cd to the same directory for each pane.

@DJPoland commented on GitHub (Jul 25, 2019): @zadjii-msft sweet. Is there any way I can split to a new pane and the child pane that was just spawned would be in the same directory as the root pane? In other words, I don't want to cd to the same directory for each pane.
Author
Owner

@zadjii-msft commented on GitHub (Jul 25, 2019):

I'm not sure that's possible. Do all processes (including pico-processes used by WSL) have a current working directory? Is it possible for us to query that value from a child process? What if there are multiple processes attached to the console simultaneously, how do we pick which process's working directory to use?

Not saying that it's straight-up impossible, just that it's very unlikely and definitely deserves it's own thread to discuss and spec.

@zadjii-msft commented on GitHub (Jul 25, 2019): I'm not sure that's possible. Do all processes (including pico-processes used by WSL) have a current working directory? Is it possible for us to query that value from a child process? What if there are multiple processes attached to the console simultaneously, how do we pick which process's working directory to use? Not saying that it's straight-up _impossible_, just that it's very unlikely and definitely deserves it's own thread to discuss and spec.
Author
Owner

@chgeuer commented on GitHub (Aug 9, 2019):

What's slightly confusing is that new splitted windows do not have the same shell as the original window. My default is WSL, but when I have a PowerShell windows, and split it, then the 2nd half isn't powershell as well, but WSL. I kind-of expected that splitting an existing Window gives me the same shell.

image

@chgeuer commented on GitHub (Aug 9, 2019): What's slightly confusing is that new splitted windows do not have the same shell as the original window. My default is WSL, but when I have a PowerShell windows, and split it, then the 2nd half isn't powershell as well, but WSL. I kind-of expected that splitting an existing Window gives me the same shell. ![image](https://user-images.githubusercontent.com/795162/62797728-aed0c600-badc-11e9-9843-f3c8854f6487.png)
Author
Owner

@DHowett-MSFT commented on GitHub (Aug 9, 2019):

Yes, this is covered in #1000. Please look at #1000 to see what we know we still need to do for panes.

@DHowett-MSFT commented on GitHub (Aug 9, 2019): Yes, this is covered in #1000. Please look at #1000 to see what we know we still need to do for panes.
Author
Owner

@richardszalay commented on GitHub (Aug 12, 2019):

Here's the config I used:

CTRL+SHIFT+- Split horizontal
CTRL+SHIFT+| Split vertical
CTRL+ALT+U/D/L/R Move focus between panes
ALT+SHIFT+U/D/L/R Resize pane
CTRL+SHIFT+W Close current pane

{
    "command" : "splitHorizontal",
    "keys" : ["ctrl+shift+-"]
},
{
    "command" : "splitVertical",
    "keys" : ["ctrl+shift+|"]
},
{
    "command" : "moveFocusUp",
    "keys" : ["ctrl+alt+up"]
},
{
    "command" : "moveFocusDown",
    "keys" : ["ctrl+alt+down"]
},
{
    "command" : "moveFocusLeft",
    "keys" : ["ctrl+alt+left"]
},
{
    "command" : "moveFocusRight",
    "keys" : ["ctrl+alt+right"]
},
{
    "command" : "resizePaneUp",
    "keys" : ["shift+alt+up"]
},
{
    "command" : "resizePaneDown",
    "keys" : ["shift+alt+down"]
},
{
    "command" : "resizePaneLeft",
    "keys" : ["shift+alt+left"]
},
{
    "command" : "resizePaneRight",
    "keys" : ["shift+alt+right"]
},
{
    "command" : "closePane",
    "keys" : ["ctrl+shift+w"]
}
@richardszalay commented on GitHub (Aug 12, 2019): Here's the config I used: **CTRL+SHIFT+-** Split horizontal **CTRL+SHIFT+|** Split vertical **CTRL+ALT+U/D/L/R** Move focus between panes **ALT+SHIFT+U/D/L/R** Resize pane **CTRL+SHIFT+W** Close current pane ```json { "command" : "splitHorizontal", "keys" : ["ctrl+shift+-"] }, { "command" : "splitVertical", "keys" : ["ctrl+shift+|"] }, { "command" : "moveFocusUp", "keys" : ["ctrl+alt+up"] }, { "command" : "moveFocusDown", "keys" : ["ctrl+alt+down"] }, { "command" : "moveFocusLeft", "keys" : ["ctrl+alt+left"] }, { "command" : "moveFocusRight", "keys" : ["ctrl+alt+right"] }, { "command" : "resizePaneUp", "keys" : ["shift+alt+up"] }, { "command" : "resizePaneDown", "keys" : ["shift+alt+down"] }, { "command" : "resizePaneLeft", "keys" : ["shift+alt+left"] }, { "command" : "resizePaneRight", "keys" : ["shift+alt+right"] }, { "command" : "closePane", "keys" : ["ctrl+shift+w"] } ```
Author
Owner

@rishavs commented on GitHub (Aug 22, 2019):

Also need to ability to resize the panes using the mouse cursor. That would be the normal panel behavior in most OS UX.

@rishavs commented on GitHub (Aug 22, 2019): Also need to ability to resize the panes using the mouse cursor. That would be the normal panel behavior in most OS UX.
Author
Owner

@zadjii-msft commented on GitHub (Aug 22, 2019):

You know what, I'm just gonna lock this thread in favor of #1000. Literally any questions should just be handled there, as it is the megathread tracking all panes things.

Go to ---> #1000 <---

@zadjii-msft commented on GitHub (Aug 22, 2019): You know what, I'm just gonna lock this thread in favor of #1000. Literally any questions should just be handled there, as it is the megathread tracking _all_ panes things. # Go to ---> #1000 <---
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#783