You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@Angelk90 I agree that it should open as a drawer like in your video. That video is from VSCode, and demonstrates how it handles terminal tabs and split terminal views. The question we need to answer for this is how are we going to do multiple terminals in this drawer? Will we use tabs? How will we handle split terminals? Will terminals be the only thing that exists in this drawer or will there be other kinds of things like output, issues, debug, console, etc.?
This is the design that we will use for multiple terminals. We need this tab system in place in the status bar and the git controls moved up to the toolbar first, then in the terminal tab build the multiple terminal tabs UI, this is how this would look.
Please note the following behaviors:
The plus icon adds a new terminal tab (not in a group).
The minus button closes the selected tab.
Press the delete key while terminal tab sidebar is in focus to close the selected tab.
Drag an ungrouped terminal tab on top of another ungrouped terminal tab to create a group.
Drag an ungrouped terminal tab into an existing group to add it to that group.
Drag a terminal tab within a group to reorder it.
Drag a grouped terminal tab to another group to move it to another group.
I am in favor of those name changes. We still need to figure out a good way to represent the groups. Since the creation of this issue, our utility area has changed quite a bit. If you are able to join our weekly meetup at 3 PM UTC on Discord (15 minutes after the time of posting) we can discuss this as a group.
Okay so I think this is how we should represent groups (I've also updated the issue description with this)...
As you can see, when a tab is split, both are under a group. By default the name of the group reflects how many terminals are in the split. The user can later however rename the group to whatever they want.
Forgot about Christmas and somehow this counts the contents of the disclosure group as separate indices in the onMove function. This may take longer than expected.
List(selection: $model.selectedTerminals){ForEach(model.terminalGroups){ group
UtilityAreaTerminalTab(group)}}
// UtilityAreaTerminalTab
if group.children.count ==1{
/* Terminal cell */
.id(group.children[0])}else{DisclosureGroup{ForEach(group.children){ terminal in
/* Terminal cell */
}} label:{
/* Terminal group title cell */
}}
Hi @austincondiff, I'm a iOS developer and really like this project and want to help.
I already fork and clone the project and now I'm analyzing the UtililyAreaTerminalSidebar, put the preview to work, leaned how project is working like the ViewModel of the UtilityArea Feature.
I read the documentation and I think I can start helping.
Could you assign this issue to me?
I already enter the discord server, but not send any message yet. I lost the weekly meeting cuz I'm from Brazil and made a mistake with the time.
@SoreGus Assigned it to you. Thank you for your help. You didn't miss our meetup. If you'd like, you can still join in 8.5 hours from the time of posting (3:00 PM UTC).
If you can think of a better way to represent these split groups feel free to do whatever feels best and most intuitive.
Activity
[-]✨ Multi shell[/-][+]✨ Multiple Terminals[/+]Angelk90 commentedon Apr 2, 2022
@austincondiff : What program is that in the video?
Opening would be better like this:
Registrazione.schermo.2022-04-02.alle.12.58.58.mov
austincondiff commentedon Apr 3, 2022
@Angelk90 I agree that it should open as a drawer like in your video. That video is from VSCode, and demonstrates how it handles terminal tabs and split terminal views. The question we need to answer for this is how are we going to do multiple terminals in this drawer? Will we use tabs? How will we handle split terminals? Will terminals be the only thing that exists in this drawer or will there be other kinds of things like output, issues, debug, console, etc.?
austincondiff commentedon Apr 12, 2022
This is the design that we will use for multiple terminals. We need this tab system in place in the status bar and the git controls moved up to the toolbar first, then in the terminal tab build the multiple terminal tabs UI, this is how this would look.
Please note the following behaviors:
(updated in issue description)
amit-srt commentedon Sep 2, 2022
I would like to work on this issue. Can you please assign this to me
[-]✨ Multiple Terminals[/-][+]✨ Terminal Tabs & Split View[/+]ahmdyasser commentedon Oct 4, 2022
I'd like to work on this, can you please assign it to me? @austincondiff
18 remaining items
Lancelotbronner commentedon Dec 23, 2023
Hi @austincondiff, I'd like to tackle this!
Here are a few assumptions I'm going with, based on what I've read here so far or what I think. Please correct me if any of them are wrong.
CEContentUnavailableView("Multiple Selection")Here's an alternative, which is what I was expecting until I saw your design which contradicted with it:
Lancelotbronner commentedon Dec 23, 2023
Since names are getting quite long in this area, I have a little rename suggestion.
It would also make sense with the way the folders are laid out.
Here's what I mean:
UtilityAreaTerminalView->TerminalUtilityViewUtilityAreaTerminalTab->TerminalUtilityTabUtilityAreaDebugView->DebugUtilityViewUtilityAreaOutputView->OutputUtilityViewThat way things which relate to the utility area as a whole are prefixed with
UtilityAreawhile individual utilities have shorter names.I'm suggesting this because I'm getting names like
UtilityAreaTerminalSelection->TerminalUtilitySelectionUtilityAreaTerminalGroup->TerminalUtilityGroupUtilityAreaTerminalTerminalView->TerminalUtilityTerminalViewaustincondiff commentedon Dec 23, 2023
I am in favor of those name changes. We still need to figure out a good way to represent the groups. Since the creation of this issue, our utility area has changed quite a bit. If you are able to join our weekly meetup at 3 PM UTC on Discord (15 minutes after the time of posting) we can discuss this as a group.
austincondiff commentedon Dec 23, 2023
Okay so I think this is how we should represent groups (I've also updated the issue description with this)...
As you can see, when a tab is split, both are under a group. By default the name of the group reflects how many terminals are in the split. The user can later however rename the group to whatever they want.
Lancelotbronner commentedon Dec 23, 2023
Ah sorry I hadn't seen your message earlier I would've liked to be at that meeting!
Great for the naming changes, I'll make a separate PR for that later.
The rest seems good, I got terminals side-by-side and grouping with a few small issues left.
I should be able to finish this tomorrow!
Lancelotbronner commentedon Dec 24, 2023
Forgot about Christmas and somehow this counts the contents of the disclosure group as separate indices in the
onMovefunction. This may take longer than expected.[-]✨ Terminal Tabs & Split View[/-][+]✨ Terminal Utility: Tabs & Split View[/+]SoreGus commentedon Jun 28, 2025
Hi @austincondiff, I'm a iOS developer and really like this project and want to help.
I already fork and clone the project and now I'm analyzing the UtililyAreaTerminalSidebar, put the preview to work, leaned how project is working like the ViewModel of the UtilityArea Feature.
I read the documentation and I think I can start helping.
Could you assign this issue to me?
I already enter the discord server, but not send any message yet. I lost the weekly meeting cuz I'm from Brazil and made a mistake with the time.
Thanks
austincondiff commentedon Jun 28, 2025
@SoreGus Assigned it to you. Thank you for your help. You didn't miss our meetup. If you'd like, you can still join in 8.5 hours from the time of posting (3:00 PM UTC).
If you can think of a better way to represent these split groups feel free to do whatever feels best and most intuitive.