Skip to content

Render alternate-screen apps in Warp TUI#13666

Draft
warp-dev-github-integration[bot] wants to merge 1 commit into
masterfrom
oz-agent/tui-alt-screen-independent
Draft

Render alternate-screen apps in Warp TUI#13666
warp-dev-github-integration[bot] wants to merge 1 commit into
masterfrom
oz-agent/tui-alt-screen-independent

Conversation

@warp-dev-github-integration

Copy link
Copy Markdown
Contributor

Description

Render the terminal model's alternate-screen grid as a full-frame TUI surface while an alternate-screen application is active, then restore the transcript/input UI when it exits.

This also:

  • bypasses Warp keybindings for the focused raw terminal surface and forwards key input to the PTY
  • preserves complete crossterm mouse button/release/drag/motion events and SGR modifier bits
  • supports terminal-aware named keys, Ctrl-letter C0 bytes, mouse reporting, and alternate scrolling
  • initializes the PTY from the host TUI's measured cell dimensions instead of a fixed 120×24 size

Linked Issue

  • The linked issue is labeled ready-to-spec or ready-to-implement.
  • Where appropriate, screenshots or a short video of the implementation are included below (especially for user-visible or UI changes).

Testing

  • cargo build -p warp_tui --bin warp-tui-oss

  • ./script/format --check

  • cargo test -p warp_tui --lib alt_screen::tests (4 passed)

  • cargo test -p warpui_core --features tui raw_input_view_bypasses_keymap_bindings

  • cargo test -p warp_terminal test_keystroke_to_c0_control_code

  • cargo test -p warp_terminal test_mouse_actions_to_escape_sequence

  • Changed-crate library Clippy passed during implementation. The repository-prescribed workspace/all-target Clippy was also attempted, but current master is blocked by unrelated missing FeatureFlag::PRCommentsSlashCommand references and missing Delegate::get_cursor_shape implementations; subsequent reruns exhausted the sandbox's 30 GB filesystem.

  • Live PTY verification was attempted. The OSS channel ignored the inherited API key and stopped at device login, while the pinned internal channel-config repository was inaccessible from the sandbox, so Vim/top could not be exercised end to end here.

  • I have manually tested my changes locally with ./script/run

Agent Mode

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

CHANGELOG-BUG-FIX: Render and forward input to alternate-screen applications in the headless Warp TUI.

Co-Authored-By: Oz oz-agent@warp.dev

Conversation: https://staging.warp.dev/conversation/81b0adc6-8aa1-42cf-a5b1-52a7ae3f8e81
Run: https://oz.staging.warp.dev/runs/019f5c9d-ea43-7489-8913-e09aac36be82

This PR was generated with Oz.

Co-Authored-By: Oz <oz-agent@warp.dev>
@cla-bot cla-bot Bot added the cla-signed label Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant