Feature Request: Focus Next Bell Tab - Navigate to tabs with bell indicators #24003

Open
opened 2026-01-31 08:58:46 +00:00 by claunia · 4 comments
Owner

Originally created by @shanselman on GitHub (Jan 26, 2026).

Feature Request: Focus Next Bell Tab

The Problem

When multiple tabs have bell indicators, there's no way to quickly navigate to them.

Windows Terminal already shows a 🔔 icon on tabs when processes output a bell character (\a). However, with many tabs open, users must visually scan all tabs to find which ones are signaling for attention.

Why This Matters: Background Processes & AI Agents

Modern terminal workflows involve running multiple background processes:

Scenario Bell Usage
Long-running builds Bell on completion
Test suites Bell on pass/fail
AI coding agents Bell when task finishes
SSH sessions Bell on disconnect/alert
Package installs Bell when done

When 3 different tabs bell while you're focused elsewhere, you need a quick way to cycle through them.

Prior Art

tmux

# Jump to window with bell
tmux select-window -t :!  # Most recent bell

iTerm2

  • Has "Jump to next bell" in menu
  • Configurable keybinding

VS Code Terminal

  • Bell icon clickable to focus that terminal

Proposed Solution

Add a new action focusBellTab that:

  1. Finds the next tab (by index) with BellIndicator == true
  2. Wraps around to the beginning if needed
  3. Cycles through on repeated presses
  4. Does nothing if no bells are active

Usage

// Keybinding (suggested default: Ctrl+Shift+B)
{ "keys": "ctrl+shift+b", "command": "focusBellTab" }

Or via Command Palette: "Focus next bell tab"

Use Case Flow

┌─────────────────────────────────────────────────────────────┐
│  Tab 1: npm build     (running)                             │
│  Tab 2: pytest        (🔔 finished!)                        │
│  Tab 3: Claude Code   (🔔 finished!)                        │
│  Tab 4: ssh server    (focused)                             │
│                                                             │
│  User presses Ctrl+Shift+B                                  │
│  → Jumps to Tab 2 (first bell after current)               │
│                                                             │
│  User presses Ctrl+Shift+B again                            │
│  → Jumps to Tab 3 (next bell)                              │
│                                                             │
│  User presses Ctrl+Shift+B again                            │
│  → Wraps to Tab 2 (no more bells ahead)                    │
└─────────────────────────────────────────────────────────────┘

Implementation

I have a working implementation ready (~40 lines of code):

  • New action FocusBellTab in AllShortcutActions.h
  • Handler in AppActionHandlers.cpp iterates tabs checking TabStatus().BellIndicator()
  • Default keybinding Ctrl+Shift+B in defaults.json
  • Command palette entry via Resources.resw

PR incoming - will link shortly.

  • Bell indicator feature already exists (just no navigation to it)
  • Complements nextTab/prevTab actions
  • Similar to #19783 (focus tab by session) - both improve tab navigation

Environment: Windows 11, Windows Terminal 1.21+

Originally created by @shanselman on GitHub (Jan 26, 2026). # Feature Request: Focus Next Bell Tab ## The Problem **When multiple tabs have bell indicators, there's no way to quickly navigate to them.** Windows Terminal already shows a 🔔 icon on tabs when processes output a bell character (`\a`). However, with many tabs open, users must visually scan all tabs to find which ones are signaling for attention. ## Why This Matters: Background Processes & AI Agents Modern terminal workflows involve running multiple background processes: | Scenario | Bell Usage | |----------|-----------| | **Long-running builds** | Bell on completion | | **Test suites** | Bell on pass/fail | | **AI coding agents** | Bell when task finishes | | **SSH sessions** | Bell on disconnect/alert | | **Package installs** | Bell when done | When 3 different tabs bell while you're focused elsewhere, you need a quick way to cycle through them. ## Prior Art ### tmux ```bash # Jump to window with bell tmux select-window -t :! # Most recent bell ``` ### iTerm2 - Has "Jump to next bell" in menu - Configurable keybinding ### VS Code Terminal - Bell icon clickable to focus that terminal ## Proposed Solution Add a new action `focusBellTab` that: 1. **Finds the next tab** (by index) with `BellIndicator == true` 2. **Wraps around** to the beginning if needed 3. **Cycles through** on repeated presses 4. **Does nothing** if no bells are active ### Usage ```json // Keybinding (suggested default: Ctrl+Shift+B) { "keys": "ctrl+shift+b", "command": "focusBellTab" } ``` Or via Command Palette: **"Focus next bell tab"** ## Use Case Flow ``` ┌─────────────────────────────────────────────────────────────┐ │ Tab 1: npm build (running) │ │ Tab 2: pytest (🔔 finished!) │ │ Tab 3: Claude Code (🔔 finished!) │ │ Tab 4: ssh server (focused) │ │ │ │ User presses Ctrl+Shift+B │ │ → Jumps to Tab 2 (first bell after current) │ │ │ │ User presses Ctrl+Shift+B again │ │ → Jumps to Tab 3 (next bell) │ │ │ │ User presses Ctrl+Shift+B again │ │ → Wraps to Tab 2 (no more bells ahead) │ └─────────────────────────────────────────────────────────────┘ ``` ## Implementation I have a working implementation ready (~40 lines of code): - New action `FocusBellTab` in `AllShortcutActions.h` - Handler in `AppActionHandlers.cpp` iterates tabs checking `TabStatus().BellIndicator()` - Default keybinding `Ctrl+Shift+B` in `defaults.json` - Command palette entry via `Resources.resw` **PR incoming** - will link shortly. ## Related - Bell indicator feature already exists (just no navigation to it) - Complements `nextTab`/`prevTab` actions - Similar to #19783 (focus tab by session) - both improve tab navigation --- **Environment**: Windows 11, Windows Terminal 1.21+
Author
Owner

@carlos-zamora commented on GitHub (Jan 26, 2026):

This also has an accessibility benefit. Means that screen reader users won't have to cycle through the tabs to figure out which tab fired a bell notification. We should tag this up for the Inclusion Backlog.

@carlos-zamora commented on GitHub (Jan 26, 2026): This also has an accessibility benefit. Means that screen reader users won't have to cycle through the tabs to figure out which tab fired a bell notification. We should tag this up for the Inclusion Backlog.
Author
Owner

@carlos-zamora commented on GitHub (Jan 26, 2026):

We should also consider other windows and panes

@carlos-zamora commented on GitHub (Jan 26, 2026): We should also consider other windows and panes
Author
Owner

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

quick other thoughts from sync:

  • Is this best as an action like this, or is this more use in something like the tab switcher? Point being: you might want to ctrl+shift+b,b,b to iterate through the bell'd panes till you find the one you're looking for, WITHOUT dismissing the bell on each pane as you iterate.
  • Should this be scoped just to bell'd panes, or should it also cover things like "tabs in an error progress state"? "things with progress"? (we may also want to comport this with https://github.com/microsoft/terminal/issues/7955#issuecomment-1303740796 so that we can have things set themselves into a "command completed" state automatically)
@zadjii-msft commented on GitHub (Jan 26, 2026): quick other thoughts from sync: * Is this best as an action like this, or is this more use in something like the tab switcher? Point being: you might want to `ctrl+shift+b`,`b`,`b` to iterate through the bell'd panes till you find the one you're looking for, WITHOUT dismissing the bell on each pane as you iterate. * Should this be scoped just to bell'd panes, or should it also cover things like "tabs in an error progress state"? "things with progress"? (we may also want to comport this with https://github.com/microsoft/terminal/issues/7955#issuecomment-1303740796 so that we can have things set themselves into a "command completed" state automatically)
Author
Owner

@DHowett commented on GitHub (Jan 28, 2026):

Definitely firing in the right direction. Would love your thoughts, Scott, about the other proposals.

@DHowett commented on GitHub (Jan 28, 2026): Definitely firing in the right direction. Would love your thoughts, Scott, about the other proposals.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#24003