Skip to content

[Feature]: Close the active right-panel tab with Cmd+W #4147

Description

@caezium

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I am describing a concrete problem or use case, not just a vague idea.

Area

apps/web

Problem or use case

When keyboard focus is inside a Files, Diff, Browser, Plan, or Terminal surface in the right panel, pressing Cmd+W closes the T3 Code app window instead of closing the active panel tab.

T3 Code already binds mod+w to close a focused terminal, but there is no corresponding command or focus context for non-terminal right-panel surfaces. This is surprising for a tabbed interface and makes a common tab-closing shortcut destructive.

Proposed solution

Add a configurable rightPanel.closeActiveSurface command with a default mod+w binding gated by right-panel focus.

  • Close only the active right-panel surface.
  • Reuse the existing surface cleanup path so Browser and Terminal resources are disposed correctly.
  • If another surface remains, activate the existing fallback surface.
  • If the last surface closes, close the panel as it does today.
  • Preserve the native window-close behavior when the right panel does not own focus.
  • Ensure embedded Browser surfaces forward the shortcut to the app consistently.

Why this matters

Cmd+W is a standard close-tab shortcut. Applying it to the focused panel tab prevents accidental app-window closure and makes right-panel tabs behave consistently with terminal tabs and other desktop tabbed interfaces.

Smallest useful scope

Introduce one keybinding command and a right-panel focus context, then route it to the existing active-surface close callback. No new panel state, confirmation dialog, or queue of close actions.

Alternatives considered

  • Add a hard-coded keydown listener in the tab component. This bypasses T3 Code's configurable keybinding system and creates conflicts with the existing terminal binding.
  • Always intercept Cmd+W whenever the panel is visible. That would close a panel tab even when the user is actively typing in the chat composer.
  • Keep native window close behavior. This remains surprising and risks losing the user's current window layout.

Risks or tradeoffs

  • Focus detection must distinguish the right-panel terminal from the bottom terminal drawer.
  • The new binding overlaps terminal.close; right-panel focus must take precedence for a terminal hosted as a panel surface while drawer terminals keep their current behavior.
  • Electron's native close accelerator and embedded Browser shortcut forwarding need to respect the renderer's handled state.

Examples or references

Related discoverability issue: #4146.

Contribution

  • I would be open to helping implement this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions