More complete tab sizing configurations #855

Open
opened 2026-01-30 22:06:47 +00:00 by claunia · 13 comments
Owner

Originally created by @Californ1a on GitHub (May 8, 2019).

Initially brought up in #444, the ability to enable/disable a configurable min-width for tabs when you have many of them, similar to:

If disabled, it would be chrome-like with tabs getting ever smaller, and if enabled, it would be firefox-like with a user-defined min-width before it starts either scrolling or being paginated.

Originally created by @Californ1a on GitHub (May 8, 2019). Initially brought up in #444, the ability to enable/disable a configurable min-width for tabs when you have many of them, similar to: ![](https://i.imgur.com/UYtiZE3.png) If disabled, it would be chrome-like with tabs getting ever smaller, and if enabled, it would be firefox-like with a user-defined min-width before it starts either scrolling or being paginated.
claunia added the Issue-FeatureProduct-TerminalArea-UserInterface labels 2026-01-30 22:06:47 +00:00
Author
Owner

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

I think allowing scrolling on the tab strip would be better, but I can see why pagination might be desired by some too... 🤷🏻‍♂️

@kumarharsh commented on GitHub (May 9, 2019): I think allowing scrolling on the tab strip would be better, but I can see why pagination might be desired by some too... 🤷🏻‍♂️
Author
Owner

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

Any changes to the tab view, should be synced with the TabView control being added into the Windows UI Library, to avoid lack of consistency

@mdtauk commented on GitHub (May 9, 2019): Any changes to the tab view, should be synced with the TabView control being added into the Windows UI Library, to avoid lack of consistency
Author
Owner

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

Fortunately, the tab view is the TabView control in the Windows UI library!

af7316c130/src/cascadia/TerminalApp/App.cpp (L85)

@DHowett-MSFT commented on GitHub (May 9, 2019): Fortunately, the tab view _is_ the TabView control in the Windows UI library! https://github.com/microsoft/Terminal/blob/af7316c130059ba15fe16ff0d13608d956a2b449/src/cascadia/TerminalApp/App.cpp#L85
Author
Owner

@driver1998 commented on GitHub (Jun 20, 2019):

I guess the problem is not the minimum width (scrolling or paging are both fine), but the maximum width.
It is a pain to have a tab bar that can only show 2 tabs...
Maybe display a truncated title on the tab, and show the full one on mouse hover, like most web browsers and the Windows taskbar.

无标题

@driver1998 commented on GitHub (Jun 20, 2019): I guess the problem is not the minimum width (scrolling or paging are both fine), but the maximum width. It is a pain to have a tab bar that can only show 2 tabs... Maybe display a truncated title on the tab, and show the full one on mouse hover, like most web browsers and the Windows taskbar. ![无标题](https://user-images.githubusercontent.com/22699485/59832099-bcd45700-9375-11e9-83b8-5c2beb1ea356.png)
Author
Owner

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

Maybe display a truncated title on the tab, and show the full one on mouse hover, like most web browsers

This 💯 IMO this is how most users expect tabs to work given that everybody uses a web browser and that is how a web browser handles tabs. If anyone wants something different then that should be an opt-in setting.

@rkeithhill commented on GitHub (Jun 23, 2019): > Maybe display a truncated title on the tab, and show the full one on mouse hover, like most web browsers This 💯 IMO this is how most users expect tabs to work given that everybody uses a web browser and that is how a web browser handles tabs. If anyone wants something different then that should be an opt-in setting.
Author
Owner

@keithn commented on GitHub (Jun 24, 2019):

just a general comment, any mouse only based scrolling of horizontal tabs would be a fail. This is terminal, so should be 100% simply driven by the keyboard.

@keithn commented on GitHub (Jun 24, 2019): just a general comment, any mouse only based scrolling of horizontal tabs would be a fail. This is terminal, so should be 100% simply driven by the keyboard.
Author
Owner

@rkeithhill commented on GitHub (Jun 24, 2019):

You currently can use ctrl+tab to switch between tabs and alt+<1-9> to directly select one of the first 9 tabs.

My main beef with the current design is that I can't see any tabs beyond the first two I create. That is a real bummer.

@rkeithhill commented on GitHub (Jun 24, 2019): You currently can use <kbd>ctrl+tab</kbd> to switch between tabs and <kbd>alt+<1-9></kbd> to directly select one of the first 9 tabs. My main beef with the current design is that I can't see any tabs beyond the first two I create. That is a real bummer.
Author
Owner

@keithn commented on GitHub (Jun 24, 2019):

I know you can swap to a tab via keyboard, but I don't want to have to cycle through tabs to find them, on the issue I raised I have drastically shrunk my powershell tabs, but the others are a problem

@keithn commented on GitHub (Jun 24, 2019): I know you can swap to a tab via keyboard, but I don't want to have to cycle through tabs to find them, on the issue I raised I have drastically shrunk my powershell tabs, but the others are a problem
Author
Owner

@LatinSuD commented on GitHub (Apr 29, 2020):

Tab titles are informative and important to me:

image

I'd be glad if we could use more space for the text.

Ok, I found out I can remove icons in the settings file by setting "icon": "" in the entry of the profile.

@LatinSuD commented on GitHub (Apr 29, 2020): Tab titles are informative and important to me: ![image](https://user-images.githubusercontent.com/451487/80613694-e6521a80-8a3d-11ea-9697-bd537b61939c.png) I'd be glad if we could use more space for the text. Ok, I found out I can remove icons in the settings file by setting `"icon": ""` in the entry of the profile.
Author
Owner

@DHowett-MSFT commented on GitHub (Apr 29, 2020):

@latinsud you should try setting tabWidthMode!

@DHowett-MSFT commented on GitHub (Apr 29, 2020): @latinsud you should try setting `tabWidthMode`!
Author
Owner

@zadjii-msft commented on GitHub (Mar 3, 2022):

From @warpdesign in #12611

I wish there was an option for tabs to have all the same size but also expand so that they cover the whole window width.

Proposed technical implementation details (optional)

image

@zadjii-msft commented on GitHub (Mar 3, 2022): _From @warpdesign in #12611_ > I wish there was an option for tabs to have all the `same size` but also expand so that they cover the `whole window width`. > > # Proposed technical implementation details (optional) > ![image](https://user-images.githubusercontent.com/199648/156389395-4b119acc-9175-48cc-9ef8-735053c08341.png)
Author
Owner

@marcelwgn commented on GitHub (Jan 8, 2023):

Is this issue still accurate given that there is tab width mode now?

Screenshot of Tab width mode and the available options: Equal, Title Length and Compact

@marcelwgn commented on GitHub (Jan 8, 2023): Is this issue still accurate given that there is tab width mode now? ![Screenshot of Tab width mode and the available options: Equal, Title Length and Compact](https://user-images.githubusercontent.com/16122379/211202850-e834753b-5ac2-4f3e-be93-2877bbf3d601.png)
Author
Owner

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

@chingucoding Sorry I missed that! Yea, this is still relevant. This issue's tracking more settings on top of those three. Something like tabWidth: { min: 15, max: 200 }, or tabWidth: splitAvailableSpace.

What we need is for someone to go through the requests we've had in this space and x-ref them with #4104, then validate how technically possible they'd be. There were some notes already in

I think the "splitAvailableSpace" mode from #12611 isn't really encapsulated in that spec. Plus, some time after writing that spec, we realized we could overload json properties with a string OR object, so IMO, we should just overload tabWidthMode with special meaning if you give it an object rather than introducing two new settings.

That's my initial thoughts at least. I haven't thought too much on this in the last few years since that spec merged.

@zadjii-msft commented on GitHub (Apr 20, 2023): @chingucoding Sorry I missed that! Yea, this is still relevant. This issue's tracking _more_ settings on top of those three. Something like `tabWidth: { min: 15, max: 200 }`, or `tabWidth: splitAvailableSpace`. What we need is for someone to go through the requests we've had in this space and x-ref them with #4104, then validate how technically possible they'd be. There were some notes already in * https://github.com/microsoft/terminal/pull/3876#pullrequestreview-328985430 * https://github.com/microsoft/terminal/pull/4104 -> [Tab Sizing.md](https://github.com/microsoft/terminal/blob/main/doc/specs/%23597%20-%20Tab%20Sizing.md) I think the "splitAvailableSpace" mode from #12611 isn't really encapsulated in that spec. Plus, some time after writing that spec, we realized we could overload json properties with a string OR object, so IMO, we should just overload `tabWidthMode` with special meaning if you give it an object rather than introducing two new settings. That's my initial thoughts at least. I haven't thought too much on this in the last few years since that spec merged.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#855