Skip to content

Add embedded terminal tabs - #624

Open
ph10w wants to merge 3 commits into
derceg:masterfrom
ph10w:codex/embedded-terminal-tab
Open

Add embedded terminal tabs#624
ph10w wants to merge 3 commits into
derceg:masterfrom
ph10w:codex/embedded-terminal-tab

Conversation

@ph10w

@ph10w ph10w commented Jul 28, 2026

Copy link
Copy Markdown

Overview

The standard Open Command Prompt action now opens cmd.exe in an Explorer++ tab. The elevated action remains external, and Explorer++ falls back to the existing external command prompt when the terminal control or ConPTY is unavailable.

Architecture

  • Hosts Microsoft's HwndTerminal control inside the tab content area and connects it to cmd.exe through ConPTY.
  • Loads the version-pinned Microsoft.Terminal.Control.dll from the Explorer++ application directory without adding a hard startup dependency.
  • Includes the DLL in the portable packages and MSI, with the corresponding third-party attribution.

Behavior

  • Starts the terminal in the active folder and updates the tab title and tooltip after cd by handling the Windows Terminal OSC 9;9 working-directory sequence.
  • Uses a dedicated static command-line tab icon with theme-specific 16, 24, 32, and 48 pixel resources.
  • Uses Cascadia Mono with the centrally configured Explorer++ font size, including live updates for open terminal tabs.
  • Provides a native vertical scrollbar and mouse-wheel scrolling for terminal scrollback.
  • Sends Tab and Shift+Tab to the terminal for completion while retaining Ctrl+Tab for Explorer++ tab switching.
  • Integrates terminal tabs with focus handling, layout updates, and taskbar previews.
  • Opens .bat and .cmd files activated in Explorer++ in a new terminal tab and keeps the prompt open after completion.

Checks performed

  • Built Explorer++ in Release|x64.
  • Built TestExplorer++ in Release|x64.
  • Passed all 70 related command-controller and tab tests.
  • Opened an embedded HwndTerminalClass tab from the release executable and confirmed a clean process exit.
  • Activated an isolated .cmd file from the Explorer++ file list and confirmed that it created a terminal tab and executed successfully.
  • Attempted the complete 781-test suite: 744 passed; the remaining 37 are environment-dependent failures caused by denied test-registry access and the decimal separator.
  • Validated the MSI XML and terminal DLL source path. A local MSI build was not possible because WiX Toolset 3.11 is not installed.

@ph10w
ph10w marked this pull request as ready for review July 29, 2026 09:00
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.

1 participant