Skip to content

feat(linux): switch to a recently shown tab with Ctrl+E - #3883

Open
sedax90 wants to merge 7 commits into
TableProApp:mainfrom
sedax90:feat/linux-recent-tab-switcher
Open

sedax90 wants to merge 7 commits into
TableProApp:mainfrom
sedax90:feat/linux-recent-tab-switcher

Conversation

@sedax90

@sedax90 sedax90 commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Ctrl+E shows the tab shown before this one. Hold Ctrl and press E again to go further back; the tab bar shows where you are. Letting go of Ctrl keeps that tab, Escape goes back to the tab you started on.
  • The order covers every session's tabs in the window, drops closed and moved tabs, and puts tabs never shown after the shown ones, in bar order. Tabs passed during a walk are not recorded.
  • Ctrl+Shift+O opens the tab overview, as in GNOME Web and Console. Typing searches the tabs by title and connection.
  • The walk ends when Ctrl is let go anywhere in the window, a dialog or popover included, when another shortcut runs, or when the window loses focus.
  • Ctrl+E is off with one tab, so the key goes on to the editor. View Open Tabs is off with no tab, since the overview cannot open then.
  • Ctrl+Tab stays the next tab, as across GNOME.
  • Both keys are in the shortcuts dialog.
  • Replaces the first version's Recent Tabs dialog and its tab overview menu item: the overview is the stock list of tabs.

Screenshots

Three editor tabs, shown in the order 1, 3, 2.

Light Dark
Before: Ctrl+E Before, light Before, dark
After: Ctrl held, E pressed twice After walk, light After walk, dark
After: Ctrl+Shift+O, typed "query 3" After overview, light After overview, dark
After: shortcuts dialog After shortcuts, light After shortcuts, dark

Test plan

  • ui::workspace::recent_tabs: recency order, never-shown tabs last, closed tabs dropped, a walk records only where it ends, Escape returns to the start, the window's key controller goes with the shell.
  • recent_tabs::tests::real_keys (XTEST): hold Ctrl and press E twice, then let go; Escape mid-walk; Ctrl+T mid-walk; letting go of Ctrl inside a dialog.
  • tests::shell::show_tabs_opens_and_closes_the_overview_while_a_tab_is_open, workspace_actions, application::accelerators, tab_view_freed_after_teardown.
  • verify.sh build and lint (rustfmt, clippy with and without default features).

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants