Profile reordering for Settings UI #12227

Open
opened 2026-01-31 03:09:37 +00:00 by claunia · 41 comments
Owner

Originally created by @carlos-zamora on GitHub (Jan 27, 2021).

Originally assigned to: @carlos-zamora on GitHub.

Description of the new feature/enhancement

The Settings UI doesn't have a way of reordering your profiles. In the JSON, we're able to just reorder the array of profiles.list.

Some considerations to keep in mind include:

Ideally, we could have a design that's future-proof. But since we don't know when the above will be implemented, we could just go with a simple non-future-proof design now, then redesign later.

EDIT: We should also consider deprecating hidden once this is in.

Proposed technical implementation details (optional)

A few ideas have come to mind, but @cinnamon-msft and I haven't actually taken the time to sit down and design this yet. I'll list a few ideas here, but I'm excited to see what ideas the community can come up with:

1. Drag and drop NavigationView's menu items

Pretty straightforward. The idea is that you can drag and drop the menu items for profiles.

NavigationView

Concerns:

  • knowing that those menu items are drag-able isn't intuitive. Maybe we could add some kind of
    gripper icon?
    gripper icon example
  • not really future-proof
  • TECHNICALLY: I don't believe the items in a nav view can be re-ordered trivially (without implementing a fork of nav view, quite likely).
    • Open question: Can we just stick the list of profiles as a ListView with CanReorder=true inside the NavView?
    • This would almost certainly require a huge refactor of how navigation works in the settings UI

2. Add an index "setting" in Profile > General

This would probably be a number box on each Profile > General page (not base layer).

Concerns:

  • don't like that you can't see all the overall order
Originally created by @carlos-zamora on GitHub (Jan 27, 2021). Originally assigned to: @carlos-zamora on GitHub. # Description of the new feature/enhancement The Settings UI doesn't have a way of reordering your profiles. In the JSON, we're able to just reorder the array of `profiles.list`. Some considerations to keep in mind include: - [**New Tab Menu Customization**](https://github.com/microsoft/terminal/blob/main/doc/specs/%231571%20-%20New%20Tab%20Menu%20Customization/%231571%20-%20New%20Tab%20Menu%20Customization.md): - allow actions in the dropdown - nesting profiles/actions in the dropdown _Ideally_, we could have a design that's future-proof. But since we don't know when the above will be implemented, we could just go with a simple non-future-proof design now, then redesign later. EDIT: We should also consider deprecating `hidden` once this is in. # Proposed technical implementation details (optional) A few ideas have come to mind, but @cinnamon-msft and I haven't actually taken the time to sit down and design this yet. I'll list a few ideas here, but I'm excited to see what ideas the community can come up with: ## 1. Drag and drop NavigationView's menu items Pretty straightforward. The idea is that you can drag and drop the menu items for profiles. ![NavigationView](https://user-images.githubusercontent.com/11050425/106053841-1d725c80-60a0-11eb-95ac-758887b344cb.png) Concerns: - knowing that those menu items are drag-able isn't intuitive. Maybe we could add some kind of gripper icon? ![gripper icon example](https://user-images.githubusercontent.com/11050425/106054056-5f9b9e00-60a0-11eb-8c39-152d886709db.png) - not really future-proof - TECHNICALLY: I don't believe the items in a nav view can be re-ordered trivially (without implementing a fork of nav view, quite likely). - Open question: Can we just stick the list of profiles as a `ListView` with `CanReorder=true` inside the NavView? - This would almost certainly require a huge refactor of how navigation works in the settings UI ## 2. Add an index "setting" in Profile > General This would probably be a number box on each Profile > General page (not base layer). Concerns: - don't like that you can't see all the overall order
claunia added the Issue-FeatureHelp WantedProduct-TerminalArea-SettingsUI labels 2026-01-31 03:09:38 +00:00
Author
Owner

@carlos-zamora commented on GitHub (Jan 27, 2021):

@cinnamon-msft assigning you for now since we need a design. I don't think we'll need to write up a design doc though, tbh, but we'll play it by ear.

@carlos-zamora commented on GitHub (Jan 27, 2021): @cinnamon-msft assigning you for now since we need a design. I don't think we'll need to write up a design doc though, tbh, but we'll play it by ear.
Author
Owner

@ultrasound1372 commented on GitHub (Feb 1, 2022):

I think if this were implemented keyboard accessibility would also need to be considered. I was personally thinking the up/down buttons like present in the path environment variable dialog in system properties, but not sure if that would visually mesh well with this UI. If it uses dragging I'd think something like alt+up/down could work if we're only moving one profile at a time. Would reordering be the only way for me to change the control+shift+number layout to activate the 11th profile in my list? Said 11th profile happens to be a VS native tools prompt and I'd like that to go above all my MSYS prompts.

@ultrasound1372 commented on GitHub (Feb 1, 2022): I think if this were implemented keyboard accessibility would also need to be considered. I was personally thinking the up/down buttons like present in the path environment variable dialog in system properties, but not sure if that would visually mesh well with this UI. If it uses dragging I'd think something like alt+up/down could work if we're only moving one profile at a time. Would reordering be the only way for me to change the control+shift+number layout to activate the 11th profile in my list? Said 11th profile happens to be a VS native tools prompt and I'd like that to go above all my MSYS prompts.
Author
Owner

@BuzyBeeC commented on GitHub (Mar 19, 2022):

Perhaps a hybrid solution, where profiles are displayed as a numbered list (indexed) in the settings, would combine the best of each. On the left of each profile icon would a be a number “text box” that can be changed via typing. The GUI could visibly reorder profiles based on this number to make it clear. It would intuitively fit with the ctrl+shift+<0-9> shortcut. It could also probably be made keyboard accessible as @ultrasound1372 mentioned but much more efficient than moving one position at a time.

Since the GUI would already update position in the list, a reverse drag-and-drop option that updates the index could maybe be added as a bonus (with gripper icon on the right). I don’t think it would be too unintuitive without it though since many rearranging actions in modern GUIs are drag-and-drop. After all, I first stumbled upon this thread after trying to drag to reorder the profiles.

@BuzyBeeC commented on GitHub (Mar 19, 2022): Perhaps a hybrid solution, where profiles are displayed as a numbered list (indexed) in the settings, would combine the best of each. On the left of each profile icon would a be a number “text box” that can be changed via typing. The GUI could visibly reorder profiles based on this number to make it clear. It would intuitively fit with the ctrl+shift+<0-9> shortcut. It could also probably be made keyboard accessible as @ultrasound1372 mentioned but much more efficient than moving one position at a time. Since the GUI would already update position in the list, a reverse drag-and-drop option that updates the index could maybe be added as a bonus (with gripper icon on the right). I don’t think it would be too unintuitive without it though since many rearranging actions in modern GUIs are drag-and-drop. After all, I first stumbled upon this thread after trying to drag to reorder the profiles.
Author
Owner

@ultrasound1372 commented on GitHub (Mar 20, 2022):

If @BuzyBeeC's thing is considered, I think that that numeric edit should be a spin control rather than a simple edit. That would also allow range limits to be placed and cut down on input validation requirements. You can't change this profile to index 20 when you only have 10 profiles, after all. And for keyboard users this would let us change the ordering with simple up/down arrow on the box.

@ultrasound1372 commented on GitHub (Mar 20, 2022): If @BuzyBeeC's thing is considered, I think that that numeric edit should be a spin control rather than a simple edit. That would also allow range limits to be placed and cut down on input validation requirements. You can't change this profile to index 20 when you only have 10 profiles, after all. And for keyboard users this would let us change the ordering with simple up/down arrow on the box.
Author
Owner

@BuzyBeeC commented on GitHub (Mar 22, 2022):

If @BuzyBeeC's thing is considered, I think that that numeric edit should be a spin control rather than a simple edit. That would also allow range limits to be placed and cut down on input validation requirements. You can't change this profile to index 20 when you only have 10 profiles, after all. And for keyboard users this would let us change the ordering with simple up/down arrow on the box.

This sounds like a simpler and more user-friendly approach.

@BuzyBeeC commented on GitHub (Mar 22, 2022): > If @BuzyBeeC's thing is considered, I think that that numeric edit should be a spin control rather than a simple edit. That would also allow range limits to be placed and cut down on input validation requirements. You can't change this profile to index 20 when you only have 10 profiles, after all. And for keyboard users this would let us change the ordering with simple up/down arrow on the box. This sounds like a simpler and more user-friendly approach.
Author
Owner

@brian-kneebone-hp-com commented on GitHub (Aug 24, 2022):

I'm more of a fan of click/drag (for mouse/finger users) and the keyboard options proposed above for those that require it (I'd assume CTRL+UP/DOWN or ALT+ UP/DOWN or whatever convention I'm not aware of that makes the most sense would be nice). Why create a new UI if it's not absolutely required. At least for me, my first instinct was to try these techniques, but I might be a weirdo.

PS - I had to mention this by editing the comment. I love that Microsoft Terminal lets us modify the JSON properties more directly for cases where there's not a UI to enable what people are after. This is so freeing in software design and it needs to be applauded/encouraged with others. Letting people customize experiences who are willing to take the leap even experimenting with config files, APIs, etc. before the more friendly user experiences get figured out always feels like the right balance for general and power users. Thank you!

@brian-kneebone-hp-com commented on GitHub (Aug 24, 2022): I'm more of a fan of click/drag (for mouse/finger users) and the keyboard options proposed above for those that require it (I'd assume CTRL+UP/DOWN or ALT+ UP/DOWN or whatever convention I'm not aware of that makes the most sense would be nice). Why create a new UI if it's not absolutely required. At least for me, my first instinct was to try these techniques, but I might be a weirdo. PS - I had to mention this by editing the comment. I love that Microsoft Terminal lets us modify the JSON properties more directly for cases where there's not a UI to enable what people are after. This is so freeing in software design and it needs to be applauded/encouraged with others. Letting people customize experiences who are willing to take the leap even experimenting with config files, APIs, etc. before the more friendly user experiences get figured out always feels like the right balance for general and power users. Thank you!
Author
Owner

@ultrasound1372 commented on GitHub (Aug 25, 2022):

Unfortunately, there is no standard for keyboard only reordering or drag and drop. This would be one of the first applications I know of to implement such a thing, second in my knowledge only to foobar2000's list of decoders. Everything else is either use cut/paste or you're just dead out of luck if you can't see. Depending on if you're going to allow multiple movements at once I would go with either alt or control as they said. If you can drag multiple consecutive profiles at once, to reorder a group, I'd select those with shift and move them with alt. Otherwise I'd use control. If you let people select with shift and use control someone might get confused with the other thing where you can control arrows to avoid changing the selection and space to toggle it for the currently focused item, allowing noncontiguous selection. For reordering though that doesn't make sense.

@ultrasound1372 commented on GitHub (Aug 25, 2022): Unfortunately, there is no standard for keyboard only reordering or drag and drop. This would be one of the first applications I know of to implement such a thing, second in my knowledge only to foobar2000's list of decoders. Everything else is either use cut/paste or you're just dead out of luck if you can't see. Depending on if you're going to allow multiple movements at once I would go with either alt or control as they said. If you can drag multiple consecutive profiles at once, to reorder a group, I'd select those with shift and move them with alt. Otherwise I'd use control. If you let people select with shift and use control someone might get confused with the other thing where you can control arrows to avoid changing the selection and space to toggle it for the currently focused item, allowing noncontiguous selection. For reordering though that doesn't make sense.
Author
Owner

@psztoch commented on GitHub (Nov 8, 2022):

Profile reorder is important feature. Should be added ASAP.

@psztoch commented on GitHub (Nov 8, 2022): Profile reorder is important feature. Should be added ASAP.
Author
Owner

@zadjii-msft commented on GitHub (Nov 8, 2022):

You can always reorder the profiles manually in the settings.json file before this gets added.

@zadjii-msft commented on GitHub (Nov 8, 2022): # You can always reorder the profiles manually in the `settings.json` file before this gets added.
Author
Owner

@psztoch commented on GitHub (Nov 8, 2022):

I do this to myself. But regular users (programmers) complain and don't want to use powershell 7 which is added at the end.

@psztoch commented on GitHub (Nov 8, 2022): I do this to myself. But regular users (programmers) complain and don't want to use powershell 7 which is added at the end.
Author
Owner

@avluis commented on GitHub (Nov 23, 2022):

👁️ 👄 👁️

@avluis commented on GitHub (Nov 23, 2022): 👁️ 👄 👁️
Author
Owner

@zs-dima commented on GitHub (Dec 13, 2022):

+1

@zs-dima commented on GitHub (Dec 13, 2022): +1
Author
Owner

@zadjii-msft commented on GitHub (Jan 26, 2023):

Uh, it absolutely does....?

image

Also, feel free to just rebind the actions to whatever you want:

        { "command": { "action": "newTab", "index": 0 }, "keys": "ctrl+shift+1" },
        { "command": { "action": "newTab", "index": 1 }, "keys": "ctrl+shift+2" },
        { "command": { "action": "newTab", "index": 2 }, "keys": "ctrl+shift+3" },
        { "command": { "action": "newTab", "index": 3 }, "keys": "ctrl+shift+4" },
        { "command": { "action": "newTab", "index": 4 }, "keys": "ctrl+shift+5" },
        { "command": { "action": "newTab", "index": 5 }, "keys": "ctrl+shift+6" },
        { "command": { "action": "newTab", "index": 6 }, "keys": "ctrl+shift+7" },
        { "command": { "action": "newTab", "index": 7 }, "keys": "ctrl+shift+8" },
        { "command": { "action": "newTab", "index": 8 }, "keys": "ctrl+shift+9" },

Just change the index to whichever index profile you want.

@zadjii-msft commented on GitHub (Jan 26, 2023): Uh, it absolutely does....? ![image](https://user-images.githubusercontent.com/18356694/214968367-7aef7658-d89c-4f74-8c65-2e6f43e66f0d.png) Also, feel free to just rebind the actions to whatever you want: ```json { "command": { "action": "newTab", "index": 0 }, "keys": "ctrl+shift+1" }, { "command": { "action": "newTab", "index": 1 }, "keys": "ctrl+shift+2" }, { "command": { "action": "newTab", "index": 2 }, "keys": "ctrl+shift+3" }, { "command": { "action": "newTab", "index": 3 }, "keys": "ctrl+shift+4" }, { "command": { "action": "newTab", "index": 4 }, "keys": "ctrl+shift+5" }, { "command": { "action": "newTab", "index": 5 }, "keys": "ctrl+shift+6" }, { "command": { "action": "newTab", "index": 6 }, "keys": "ctrl+shift+7" }, { "command": { "action": "newTab", "index": 7 }, "keys": "ctrl+shift+8" }, { "command": { "action": "newTab", "index": 8 }, "keys": "ctrl+shift+9" }, ``` Just change the `index` to whichever `index` profile you want.
Author
Owner

@zadjii-msft commented on GitHub (Jan 27, 2023):

@ggjulio FWIW, the first profile you have in your list is not actually your Ubuntu distro. That one's marked hidden: true. I'd reckon there's another Ubuntu profile, probably with a source that mentions "Canonical", right below the azure cloud shell 😉

@zadjii-msft commented on GitHub (Jan 27, 2023): @ggjulio FWIW, the first profile you have in your `list` is not actually your Ubuntu distro. That one's marked `hidden: true`. I'd reckon there's another Ubuntu profile, probably with a `source` that mentions "Canonical", right below the azure cloud shell 😉
Author
Owner

@ggjulio commented on GitHub (Jan 27, 2023):

Ho crap, I'm dumb, didn't see this property's value was true... sorry for all the spam,
I'll delete all those useless messages...
Thank for your time @zadjii-msft

@ggjulio commented on GitHub (Jan 27, 2023): Ho crap, I'm dumb, didn't see this property's value was `true`... sorry for all the spam, I'll delete all those useless messages... Thank for your time @zadjii-msft
Author
Owner

@zadjii-msft commented on GitHub (Jan 27, 2023):

Don't worry about it! Sometimes, things like that can be helpful for other folks to read and learn from too ☺️

@zadjii-msft commented on GitHub (Jan 27, 2023): Don't worry about it! Sometimes, things like that can be helpful for other folks to read and learn from too ☺️
Author
Owner

@tietomattias commented on GitHub (Feb 2, 2023):

@ggjulio I had the same mistake in my JSON >.<

@tietomattias commented on GitHub (Feb 2, 2023): @ggjulio I had the same mistake in my JSON >.<
Author
Owner

@NewtonChutney commented on GitHub (Apr 20, 2023):

Ahh.. Was just about to raise a duplicate issue! 😅
+1 on this request
BTW, is the backlog prioritized based on the 👍 hits?

@NewtonChutney commented on GitHub (Apr 20, 2023): Ahh.. Was just about to raise a duplicate issue! 😅 +1 on this request BTW, is the backlog prioritized based on the 👍 hits?
Author
Owner

@zadjii-msft commented on GitHub (Apr 20, 2023):

BTW, is the backlog prioritized based on the 👍 hits?

More or less, yea.

@zadjii-msft commented on GitHub (Apr 20, 2023): > BTW, is the backlog prioritized based on the 👍 hits? More or less, yea.
Author
Owner

@redneQ commented on GitHub (May 7, 2023):

That Drag and Drop tho! Sure I edited the JSON file, but man o man, some of us want it all. ;)

@redneQ commented on GitHub (May 7, 2023): That Drag and Drop tho! Sure I edited the JSON file, but man o man, some of us want it all. ;)
Author
Owner

@raghuwanshi commented on GitHub (Jun 29, 2023):

You can always reorder the profiles manually in the settings.json file before this gets added.

We used to customize everything manually in the settings.json, then why do we even have a Settings GUI? The answer is simple 'ease of use' or user friendliness.

@raghuwanshi commented on GitHub (Jun 29, 2023): > # You can always reorder the profiles manually in the `settings.json` file before this gets added. We used to customize everything manually in the `settings.json`, then why do we even have a `Settings` GUI? The answer is simple 'ease of use' or user friendliness.
Author
Owner

@eduarddejong commented on GitHub (Sep 8, 2023):

You can always reorder the profiles manually in the settings.json file before this gets added.

We used to customize everything manually in the settings.json, then why do we even have a Settings GUI? The answer is simple 'ease of use' or user friendliness.

The reason I appreciate the help of a GUI for the Terminal is that the settings JSON file is still not as easy to restore from a backup version as this is the case with the one of VS Code for example. And I mean like after a Windows reinstall or on another machine.

With a bit of file comparing and merging using VS Code or Meld we'll get the job done, but there are always some profiles with unique GUIDs, etc., that need to be corrected on the new system.

And I also don't know about any automated syncing solution yet.

So in other words, we simply cannot really argu that that JSON file editing "should" be the preferred or even intended way of settings editing.

@eduarddejong commented on GitHub (Sep 8, 2023): > > # You can always reorder the profiles manually in the `settings.json` file before this gets added. > > We used to customize everything manually in the `settings.json`, then why do we even have a `Settings` GUI? The answer is simple 'ease of use' or user friendliness. The reason I appreciate the help of a GUI for the Terminal is that the settings JSON file is still not as easy to restore from a backup version as this is the case with the one of VS Code for example. And I mean like after a Windows reinstall or on another machine. With a bit of file comparing and merging using VS Code or Meld we'll get the job done, but there are always some profiles with unique GUIDs, etc., that need to be corrected on the new system. And I also don't know about any automated syncing solution yet. So in other words, we simply _cannot_ really argu that that JSON file editing "should" be the preferred or even intended way of settings editing.
Author
Owner

@eamonburns commented on GitHub (Nov 8, 2023):

I would like to say that this feature would be greatly appreciated

@eamonburns commented on GitHub (Nov 8, 2023): I would like to say that this feature would be greatly appreciated
Author
Owner

@sedlund commented on GitHub (Nov 8, 2023):

I would like to say that this feature would be greatly appreciated

Everyone here has been waiting for you to say this.

@sedlund commented on GitHub (Nov 8, 2023): > I would like to say that this feature would be greatly appreciated Everyone here has been waiting for you to say this.
Author
Owner

@allusernamestakenexceptthis commented on GitHub (Nov 18, 2023):

Based on no.2 solution. Why not add sort_order key/value that accept any integer and in settings of profile as numeric textbox. default is 10 with increment of 10. e.g. 10,20,30,40,50. that way it's easy for users to just change the one they want or set profile to be always last like 9999.

The menu then reorders based on this Ascending. For most users that needs it, this would do the job. and should be easy to implement. Perhaps can be added to advanced since not a very friendly design.

@allusernamestakenexceptthis commented on GitHub (Nov 18, 2023): Based on no.2 solution. Why not add sort_order key/value that accept any integer and in settings of profile as numeric textbox. default is 10 with increment of 10. e.g. 10,20,30,40,50. that way it's easy for users to just change the one they want or set profile to be always last like 9999. The menu then reorders based on this Ascending. For most users that needs it, this would do the job. and should be easy to implement. Perhaps can be added to advanced since not a very friendly design.
Author
Owner

@nikhil-swamix commented on GitHub (Dec 3, 2023):

https://github.com/microsoft/terminal/assets/54004431/df6f3101-a470-4ed8-8ed2-947a991b8717

please have a look at the video. and code https://github.com/nikhil-swamix/TerminalProfileManager .
Context, wrong order was reducing productivity for me. so built this. but kind of works, atleast on my pc. this is more like modding, not official solution.

Features:

  • drag and drop profiles to reorder them, and save the new order to the settings file.
  • intelligently read settings from AppData/Local folder irrespective of user name.
  • color theme matched to windows terminal dark mode.
  • edit/extend logic using simple python code and change GUI using html and css.
  • if python already installed, half the setup is done.
  • jquery, jquery-UI and bootstrap used for GUI. Keyboard support in future.
  • hidden profiles explicitly dimmed.

Future Development:

  • Add searchbar - fuzzy search when you have too many profiles
  • always on top window setting, which allows quick nav.
  • Hide Unhide profile Toggle button for each profile
  • more profile customization via the float popup.

@allusernamestakenexceptthis @eduarddejong @raghuwanshi @ReDNeQ @zadjii-msft @NewtonChutney @tietomattias @ggjulio @ultrasound1372 @psztoch @brian-kneebone-hp-com @BuzyBeeC @carlos-zamora

@nikhil-swamix commented on GitHub (Dec 3, 2023): https://github.com/microsoft/terminal/assets/54004431/df6f3101-a470-4ed8-8ed2-947a991b8717 **please have a look at the video.** and code https://github.com/nikhil-swamix/TerminalProfileManager . Context, wrong order was reducing productivity for me. so built this. but kind of works, atleast on my pc. *this is more like modding, not official solution.* Features: - drag and drop profiles to reorder them, and save the new order to the settings file. - intelligently read settings from `AppData/Local` folder irrespective of user name. - color theme matched to windows terminal dark mode. - edit/extend logic using simple python code and change GUI using html and css. - if python already installed, half the setup is done. - jquery, jquery-UI and bootstrap used for GUI. Keyboard support in future. - hidden profiles explicitly dimmed. Future Development: - Add searchbar - fuzzy search when you have too many profiles - always on top window setting, which allows quick nav. - Hide Unhide profile Toggle button for each profile - more profile customization via the float popup. @allusernamestakenexceptthis @eduarddejong @raghuwanshi @ReDNeQ @zadjii-msft @NewtonChutney @tietomattias @ggjulio @ultrasound1372 @psztoch @brian-kneebone-hp-com @BuzyBeeC @carlos-zamora
Author
Owner

@nikhil-swamix commented on GitHub (Dec 3, 2023):

Terminal direct integration is now added!

@carlos-zamora @zadjii-msft

  • dear guys, i have a small question, how are guids generated? which core elements are responsible?
    image
@nikhil-swamix commented on GitHub (Dec 3, 2023): ### Terminal direct integration is now added! @carlos-zamora @zadjii-msft - dear guys, i have a small question, how are guids generated? which core elements are responsible? ![image](https://github.com/microsoft/terminal/assets/54004431/f3d77fa8-3b60-4021-a791-be4ed1394197)
Author
Owner

@NewtonChutney commented on GitHub (Dec 4, 2023):

https://github.com/microsoft/terminal/assets/54004431/df6f3101-a470-4ed8-8ed2-947a991b8717

@Nikhil-Software-Cartel this looks more like a PoC but I think the idea here is to have the list in the main terminal settings page itself be draggable

@NewtonChutney commented on GitHub (Dec 4, 2023): > https://github.com/microsoft/terminal/assets/54004431/df6f3101-a470-4ed8-8ed2-947a991b8717 @Nikhil-Software-Cartel this looks more like a PoC but I think the idea here is to have the list in the main terminal settings page itself be draggable
Author
Owner

@NewtonChutney commented on GitHub (Dec 4, 2023):

please have a look at the video. and code https://github.com/Nikhil-Software-Cartel/TerminalProfileManager (Important: make sure to view last section of repo)🙏🥺.

Context, wrong order was reducing productivity for me. so built this. but kind of works, atleast on my pc. pls try and tell.
@allusernamestakenexceptthis @eduarddejong @raghuwanshi @ReDNeQ @zadjii-msft @NewtonChutney @tietomattias @ggjulio @ultrasound1372 @psztoch @brian-kneebone-hp-com @BuzyBeeC @carlos-zamora

And please don't degrade yourself to be considered spam or a nuisance by forcing things on others..
Just post your solution or work.. Interested folks will revert

@NewtonChutney commented on GitHub (Dec 4, 2023): > **please have a look at the video.** and code https://github.com/Nikhil-Software-Cartel/TerminalProfileManager (Important: make sure to view last section of repo)🙏🥺. > > Context, wrong order was reducing productivity for me. so built this. but kind of works, atleast on my pc. pls try and tell. > @allusernamestakenexceptthis @eduarddejong @raghuwanshi @ReDNeQ @zadjii-msft @NewtonChutney @tietomattias @ggjulio @ultrasound1372 @psztoch @brian-kneebone-hp-com @BuzyBeeC @carlos-zamora And please don't degrade yourself to be considered spam or a nuisance by forcing things on others.. Just post your solution or work.. Interested folks will revert
Author
Owner

@trparky commented on GitHub (Jan 11, 2024):

When will this be something that's added to Terminal?

@trparky commented on GitHub (Jan 11, 2024): When will this be something that's added to Terminal?
Author
Owner

@eamonburns commented on GitHub (Jan 12, 2024):

@trparky It looks like it is planned (at some point) https://github.com/microsoft/terminal/issues/10000

@eamonburns commented on GitHub (Jan 12, 2024): @trparky It looks like it is planned (at some point) https://github.com/microsoft/terminal/issues/10000
Author
Owner

@eamonburns commented on GitHub (Mar 15, 2024):

@caihongxu It is way faster to open the settings.json file and reorder them there. The list is located at profiles.list

@eamonburns commented on GitHub (Mar 15, 2024): @caihongxu It is way faster to open the `settings.json` file and reorder them there. The list is located at `profiles.list`
Author
Owner

@alcarcdr commented on GitHub (Mar 16, 2024):

You can always reorder the profiles manually in the settings.json file before this gets added.

We used to customize everything manually in the settings.json, then why do we even have a Settings GUI? The answer is simple 'ease of use' or user friendliness.

Having the GUI Settings would mean things being easer, if in reality it didn't mean we end up wasting lots of time searching for advice, and discussing, features it doesn't have, ones we would expect it to.
Reordering displayed lists of profiles should have been a top UX requirement, yet having the JSON settings file has resulted in neglect.

If we're being given both GUI and JSON file settings, then we should get a nice little button that pops up a little doc listing User Use Cases requirements that need to be done in the JSON settings.

@alcarcdr commented on GitHub (Mar 16, 2024): > > # You can always reorder the profiles manually in the `settings.json` file before this gets added. > > We used to customize everything manually in the `settings.json`, then why do we even have a `Settings` GUI? The answer is simple 'ease of use' or user friendliness. Having the GUI Settings would mean things being easer, if in reality it didn't mean we end up wasting lots of time searching for advice, and discussing, features it doesn't have, ones we would expect it to. Reordering displayed lists of profiles should have been a top UX requirement, yet having the JSON settings file has resulted in neglect. If we're being given both GUI and JSON file settings, then we should get a nice little button that pops up a little doc listing User Use Cases requirements that need to be done in the JSON settings.
Author
Owner

@FaffeF commented on GitHub (Nov 30, 2025):

I find it very confusing that there is now a "New Tab Menu" section in the Settings, but the order of the ctrl-shift-# shortcuts is not affected by that configuration. Instead those shortcuts are decided based on the more or less random order in which the profiles have been created. Perhaps if the profile numbering was exposed in the "New Tab Menu" section, actual profile order would not matter anymore?

@FaffeF commented on GitHub (Nov 30, 2025): I find it very confusing that there is now a "New Tab Menu" section in the Settings, but the order of the ctrl-shift-# shortcuts is not affected by that configuration. Instead those shortcuts are decided based on the more or less random order in which the profiles have been created. Perhaps if the profile numbering was exposed in the "New Tab Menu" section, actual profile order would not matter anymore?
Author
Owner

@carlos-zamora commented on GitHub (Dec 3, 2025):

I find it very confusing that there is now a "New Tab Menu" section in the Settings, but the order of the ctrl-shift-# shortcuts is not affected by that configuration.

Honestly, that's probably the last thing we should fix before closing this issue out, right? The New Tab Menu page allows for profile reordering already as well as adding folders, separators, and profile matchers.

Instead those shortcuts are decided based on the more or less random order in which the profiles have been created.

Pretty much. The way it works is that the "index" parameter for the "newTab" action targets the profile in the profile list in the JSON. This worked great at first, but once new tab menu customization was added, this got left behind and now the index doesn't match up with the order in the new tab menu.

An open question that I'd like feedback on is, how is the indexing expected to work with folders, a profile matcher entry, and the remaining profiles entry? Consider the following scenarios for a new tab menu:

Remaining Profiles & Profile Matcher:

┟ Profile A
┟ Profile B
┖ Remaining Profiles (or Profile Matcher): assume profiles C, D, E are added

Folders:

┟ Profile A
┟ Profile B
┟ Folder
┃┟ Profile C
┃┖ Profile D
┟ Profile E
┖ Profile F

Combination of both:

┟ Profile A
┟ Profile B
┟ Folder
┃┖ Profile Matcher for WSL
┟ Folder
┃┖ Remaining Profiles
┖ Profile C

For these scenarios, consider these questions:

  • What does each value for newTab.index do?
    • 1 --> Profile A; 2 --> Profile B; But should 3 --> open the folder? or open the first profile in the folder? Or target the first profile not in a folder?
  • What happens when profiles are dynamically added/removed by the profile matcher or remaining profiles?
  • What if folder.inline is enabled (the folder is replaced with a single profile when there is only one profile in the folder)?

Perhaps if the profile numbering was exposed in the "New Tab Menu" section, actual profile order would not matter anymore?

Oooh. I like that. It makes it less ambiguous. Maybe the way we can display that in the settings UI is just like it's shown in the dropdown? Add in a "Ctrl+Shift+#" in the list view to make it clear what keybinding is associated.

@carlos-zamora commented on GitHub (Dec 3, 2025): > I find it very confusing that there is now a "New Tab Menu" section in the Settings, but the order of the ctrl-shift-# shortcuts is not affected by that configuration. Honestly, that's probably the last thing we should fix before closing this issue out, right? The New Tab Menu page allows for profile reordering already as well as adding folders, separators, and profile matchers. > Instead those shortcuts are decided based on the more or less random order in which the profiles have been created. Pretty much. The way it works is that the `"index"` parameter for the `"newTab"` action targets the profile in the profile list in the JSON. This worked great at first, but once new tab menu customization was added, this got left behind and now the index doesn't match up with the order in the new tab menu. An open question that I'd like feedback on is, how is the indexing expected to work with folders, a profile matcher entry, and the remaining profiles entry? Consider the following scenarios for a new tab menu: Remaining Profiles & Profile Matcher: ``` ┟ Profile A ┟ Profile B ┖ Remaining Profiles (or Profile Matcher): assume profiles C, D, E are added ``` Folders: ``` ┟ Profile A ┟ Profile B ┟ Folder ┃┟ Profile C ┃┖ Profile D ┟ Profile E ┖ Profile F ``` Combination of both: ``` ┟ Profile A ┟ Profile B ┟ Folder ┃┖ Profile Matcher for WSL ┟ Folder ┃┖ Remaining Profiles ┖ Profile C ``` For these scenarios, consider these questions: - What does each value for `newTab.index` do? - 1 --> Profile A; 2 --> Profile B; But should 3 --> open the folder? or open the first profile in the folder? Or target the first profile not in a folder? - What happens when profiles are dynamically added/removed by the profile matcher or remaining profiles? - What if `folder.inline` is enabled (the folder is replaced with a single profile when there is only one profile in the folder)? > Perhaps if the profile numbering was exposed in the "New Tab Menu" section, actual profile order would not matter anymore? Oooh. I like that. It makes it less ambiguous. Maybe the way we can display that in the settings UI is just like it's shown in the dropdown? Add in a "_Ctrl+Shift+#_" in the list view to make it clear what keybinding is associated.
Author
Owner

@FaffeF commented on GitHub (Dec 5, 2025):

I think the first case is clear cut: A1 B2 C3 D4 E5

If the profiles in the folder case are all manually added I would default to the order they appear in the New Tab Menu, i.e. the profiles in the folder are invisible. Tack them to the end if any numbers are left: A1 B2 E3 F4 C5 D6

Last case, "remaining" always go at the end: A1 B2 C3 WSL[4-x] Remaining

Though I would much prefer if this is just the default: expose the shortcuts in the New Tab Menu and let us decide. I have ctrl-shift-4 in muscle memory for WSL ubuntu, and Kali at ctrl-shift-5. If I installed another computer with only Kali, I would prefer it could be set to 5 whether Ubuntu is installed or not.

@FaffeF commented on GitHub (Dec 5, 2025): I think the first case is clear cut: A1 B2 C3 D4 E5 If the profiles in the folder case are all manually added I would default to the order they appear in the New Tab Menu, i.e. the profiles in the folder are invisible. Tack them to the end if any numbers are left: A1 B2 E3 F4 C5 D6 Last case, "remaining" always go at the end: A1 B2 C3 WSL[4-x] Remaining Though I would much prefer if this is just the default: expose the shortcuts in the New Tab Menu and let us decide. I have ctrl-shift-4 in muscle memory for WSL ubuntu, and Kali at ctrl-shift-5. If I installed another computer with only Kali, I would prefer it could be set to 5 whether Ubuntu is installed or not.
Author
Owner

@DHowett commented on GitHub (Dec 5, 2025):

Begone, spam bot

@DHowett commented on GitHub (Dec 5, 2025): Begone, spam bot
Author
Owner

@DHowett commented on GitHub (Dec 5, 2025):

If I installed another computer with only Kali, I would prefer it could be set to 5 whether Ubuntu is installed or not.

So, you can. It may not reflect properly in the UI, but if you add this to settings.json in the actions section:

        {
            "command": 
            {
                "action": "newTab",
                "profile": "Kali"
            },
            "keys": "ctrl+shift+5"
        }

it will override the built-in binding for ctrl+shift+5 and always launch Kali.

@DHowett commented on GitHub (Dec 5, 2025): > If I installed another computer with only Kali, I would prefer it could be set to 5 whether Ubuntu is installed or not. So, you can. It may not reflect properly in the UI, but if you add this to `settings.json` in the `actions` section: ```json { "command": { "action": "newTab", "profile": "Kali" }, "keys": "ctrl+shift+5" } ``` it will override the built-in binding for <kbd>ctrl+shift+5</kbd> and always launch Kali.
Author
Owner

@FaffeF commented on GitHub (Dec 5, 2025):

Sure, but this was in the context of the settings GUI. I could do all of this in notepad years ago I guess, but it's not convenient.

@FaffeF commented on GitHub (Dec 5, 2025): Sure, but this was in the context of the settings GUI. I could do all of this in notepad years ago I guess, but it's not convenient.
Author
Owner

@DHowett commented on GitHub (Dec 5, 2025):

Yeah, that's fair. Often I'll take a minor inconvenience over waiting even an hour for something, so I tend to lean more towards "get done now, find the right way to do it later." 🙂

@DHowett commented on GitHub (Dec 5, 2025): Yeah, that's fair. Often I'll take a minor inconvenience over waiting even an hour for something, so I tend to lean more towards "get done now, find the right way to do it later." 🙂
Author
Owner

@nikhil-swamix commented on GitHub (Dec 8, 2025):

whats the ETA for > Profile reordering for Settings UI ?

@nikhil-swamix commented on GitHub (Dec 8, 2025): whats the ETA for > Profile reordering for Settings UI ?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#12227