Opening multiple tabs from a single profile on start, with the default terminal, and on individual profiles. #4229

Closed
opened 2026-01-30 23:41:30 +00:00 by claunia · 3 comments
Owner

Originally created by @danielkeery on GitHub (Oct 3, 2019).

Description of the new feature/enhancement

This FR would solve having to manually setup my workspace on every new launch. I always start with the same 3 tabs, it would be nice to launch these all in the default.

"globals": {
"defaultProfile": ["GUID1", "GUID2", "MULTI-PROFILE-GUID1", ...]
}
...
"profiles": [
{
"guid": "multi-profile guid",
"launchProfiles": ["other profile guid1", "other profile guid 2", ...]
}
]

Proposed technical implementation details (optional)

Change existing launch code into a for loop and the defaultProfile backing as a array.
Either new profile type could be introduced or the detection of launchProfiles for each profile configuration would signal needing to launch other profiles. Recursive?
Support the launching of multiple profiles in any launch action. Should be self explanitory.

Originally created by @danielkeery on GitHub (Oct 3, 2019). <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 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 This FR would solve having to manually setup my workspace on every new launch. I always start with the same 3 tabs, it would be nice to launch these all in the default. "globals": { "defaultProfile": ["GUID1", "GUID2", "MULTI-PROFILE-GUID1", ...] } ... "profiles": [ { "guid": "multi-profile guid", "launchProfiles": ["other profile guid1", "other profile guid 2", ...] } ] # Proposed technical implementation details (optional) Change existing launch code into a for loop and the defaultProfile backing as a array. Either new profile type could be introduced or the detection of launchProfiles for each profile configuration would signal needing to launch other profiles. Recursive? Support the launching of multiple profiles in any launch action. Should be self explanitory.
Author
Owner

@zadjii-msft commented on GitHub (Oct 3, 2019):

So I suppose this was discussed before in #1043, though there doesn't seem like there's a unique issue for it, so congratulations, this is now the thread :)

There are probably a bunch of things we'd want to consider as part of a comprehensive solution here.

  • What if someone wants to open the terminal with multiple tabs (what you've already discussed above)
  • What about with multiple panes, in various different split configurations? How would we set that?
  • Perhaps the user wants to auto-launch multiple windows? In different locations, etc.
  • Obviously, any solution for the above three should not preclude any of the others. Users would want to be able to specify multiple windows, each with their own tabs, and with tabs that might have any number of panes.
  • Would we want this multi-launch behavior to only happen on first launch, or every Terminal launch?
  • With the nesting behavior you have above, what if someone had a recursive loop, where one profile A specified launching profile B, and B specified launching A? That would theoretically cause an infinite loop - do we allow that?
  • (I'm sure there's more I'm missing here)

This is certainly a problem that's feasible from an engineering standpoint, but due to the complexity of specifying these scenarios, I'd want a spec written first to try and think through the edge cases before we start working on the code.

@zadjii-msft commented on GitHub (Oct 3, 2019): So I suppose this was discussed before in #1043, though there doesn't seem like there's a unique issue for it, so congratulations, this is now the thread :) There are probably a bunch of things we'd want to consider as part of a comprehensive solution here. * What if someone wants to open the terminal with multiple tabs (what you've already discussed above) * What about with multiple panes, in various different split configurations? How would we set that? * Perhaps the user wants to auto-launch multiple _windows_? In different locations, etc. * Obviously, any solution for the above three should not preclude any of the others. Users would want to be able to specify multiple windows, each with their own tabs, and with tabs that might have any number of panes. * Would we want this multi-launch behavior to only happen on _first_ launch, or _every_ Terminal launch? * With the nesting behavior you have above, what if someone had a recursive loop, where one profile A specified launching profile B, and B specified launching A? That would theoretically cause an infinite loop - do we allow that? * (I'm sure there's more I'm missing here) This is certainly a problem that's feasible from an engineering standpoint, but due to the complexity of specifying these scenarios, I'd want a [spec](https://github.com/microsoft/terminal/blob/master/doc/specs/spec-template.md) written first to try and think through the edge cases before we start working on the code.
Author
Owner

@DHowett-MSFT commented on GitHub (Oct 8, 2019):

I'm actually gonna merge this one back into /dup #756, since I found the original "multiple tabs on startup (and more)" issue.

@DHowett-MSFT commented on GitHub (Oct 8, 2019): I'm actually gonna merge this one back into /dup #756, since I found the original "multiple tabs on startup (and more)" issue.
Author
Owner

@ghost commented on GitHub (Oct 8, 2019):

Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!

@ghost commented on GitHub (Oct 8, 2019): Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#4229