Skip to content

feat(tabs): add "Show tab numbers" setting (horizontal + vertical tabs)#11597

Open
ultramcu wants to merge 3 commits into
warpdotdev:masterfrom
ultramcu:feat-show-tab-numbers
Open

feat(tabs): add "Show tab numbers" setting (horizontal + vertical tabs)#11597
ultramcu wants to merge 3 commits into
warpdotdev:masterfrom
ultramcu:feat-show-tab-numbers

Conversation

@ultramcu
Copy link
Copy Markdown

@ultramcu ultramcu commented May 23, 2026

Description

Adds an optional "Show tab numbers" setting (Settings → Appearance → Tabs; default off) that prefixes each tab with its 1‑based position number, making the Cmd+1..9 tab‑switch shortcuts discoverable at a glance. The number is presentation‑only — it is never written into stored tab titles, copied text, or search text.

Works in both layouts:

  • Horizontal tabsTabComponent::render_tab_content prefixes the title ("{n} {title}").
  • Vertical tabs — a new tab_number: Option<usize> on PaneProps, set on each tab's representative (first) row only, rendered via a small render_tab_number_label element before the icon. Covers all three view modes (Expanded, Compact, Summary).

The numbering is consistent with the shortcut: tab tabs[0] shows 1 and Cmd+1 activates it (ActivateTabByNumber(n)tabs[n-1]).

Files

  • app/src/workspace/tab_settings.rs — new show_tab_numbers bool (appearance.tabs.show_tab_numbers).
  • app/src/tab.rs — horizontal tab rendering.
  • app/src/settings_view/appearance_page.rs — Settings UI toggle (mirrors "Show tab indicators").
  • app/src/workspace/view.rsTabSettingsChangedEvent::ShowTabNumbers handler.
  • app/src/workspace/view/vertical_tabs.rs — vertical tab rendering.
  • specs/GH4028/ — product + tech spec.

Linked Issue

Closes #4028 ("Show Tab number on tabs").

Note for maintainers: #4028 is currently labeled enhancement, triaged but not yet ready-to-spec/ready-to-implement. I've added a product + tech spec under specs/GH4028/ to support the spec flow described in CONTRIBUTING.md. Happy to adjust scope or split the spec into its own PR if you'd prefer — flagging proactively so this can be triaged.

  • The linked issue is labeled ready-to-spec or ready-to-implement.

Testing

  • Manually tested locally — built an OSS debug bundle, enabled the setting, and confirmed the 1‑based number renders on each vertical tab (and horizontal tabs) and lines up with Cmd+N. The number does not leak into copied tab titles or tab search.

Automated:

  • cargo check -p warp — clean.
  • cargo test -p warp tab_settings — passing.
  • cargo fmt / cargo clippy -p warp --all-targets — clean.

Screenshots / Videos

Agent Mode

  • Warp Agent Mode - This PR was created via Warp's AI Agent Mode

CHANGELOG-IMPROVEMENT: Add a "Show tab numbers" setting (Appearance → Tabs) that labels each tab with its Cmd+N switch position, for both horizontal and vertical tabs.

ultramcu added 2 commits May 23, 2026 15:25
Add an optional setting that prefixes each tab title with its 1-based
position number, making the Cmd+1..9 tab-switch shortcuts discoverable
at a glance.

- New TabSettings bool 'show_tab_numbers' (default off),
  toml_path appearance.tabs.show_tab_numbers
- TabComponent prepends '{n}  {title}' when enabled
- Clickable toggle under Settings -> Appearance -> Tabs
- Notify-only handler for the new TabSettingsChangedEvent variant
The initial setting only affected the horizontal tab bar. Render the
same 1-based number on each vertical tab's representative row (expanded,
compact, and summary view modes) so it works regardless of tab layout.
@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 23, 2026

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have the users @ultramcu on file. In order for us to review and merge your code, each contributor must visit https://cla.warp.dev to read and agree to our CLA. Once you have done so, please comment @cla-bot check to trigger another check.

@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented May 23, 2026

@ultramcu

This PR is not linked to an issue that is marked with ready-to-implement.

Issue-state enforcement details:

  • Associated same-repo issues checked: none

  • Required readiness label: ready-to-implement

To continue, link this PR to a same-repo issue such as Closes #123 in the PR description, and make sure that issue has ready-to-implement.

Powered by Oz

@github-actions github-actions Bot added the external-contributor Indicates that a PR has been opened by someone outside the Warp team. label May 23, 2026
Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ultramcu

This PR is not linked to an issue that is marked with ready-to-implement.

Issue-state enforcement details:

  • Associated same-repo issues checked: none

  • Required readiness label: ready-to-implement

To continue, link this PR to a same-repo issue such as Closes #123 in the PR description, and make sure that issue has ready-to-implement.

Powered by Oz

@ultramcu
Copy link
Copy Markdown
Author

@cla-bot check

1 similar comment
@ultramcu
Copy link
Copy Markdown
Author

@cla-bot check

@cla-bot cla-bot Bot added the cla-signed label May 23, 2026
@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 23, 2026

The cla-bot has been summoned, and re-checked this pull request!

@ultramcu
Copy link
Copy Markdown
Author

@oss-maintainers This PR implements #4028 ("Show Tab number on tabs"), which is currently labeled enhancement, triaged but not yet ready-to-spec/ready-to-implement.

To support the spec flow in CONTRIBUTING.md, I've added a product + tech spec under specs/GH4028/ describing the behavior invariants and implementation. The change is small and self-contained (opt-in setting, default off, presentation-only), and works for both horizontal and vertical tabs.

Could you take a look and, if it's a direction you're open to, move #4028 to ready-to-spec (for spec review) or ready-to-implement? I'll run /oz-review once the readiness label is in place so I don't burn re-reviews while it's still gated. Happy to split the spec into its own PR or adjust scope if you prefer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed external-contributor Indicates that a PR has been opened by someone outside the Warp team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Show Tab number on tabs

1 participant