Files
ClaudeDo/src/ClaudeDo.Ui/Views/InteractiveTerminalView.axaml.cs
T
mika kuns 5f740c05d8 feat(interactive): embedded ConPTY terminal host in UI
Adds a self-contained terminal host: PtyTerminalSession drives a Porta.Pty child
directly (custom env) and pumps it through Iciclecreek's XTerm.NET renderer via
TerminalControl.Terminal, bypassing LaunchProcess() so a fully-populated
environment can be passed. InteractiveTerminalView/ViewModel host it with an
order-independent attach/start. Adds Iciclecreek.Avalonia.Terminal 2.0.3.
Sets Process="" to suppress the control's auto-launch of a stray shell.
2026-07-23 16:47:15 +02:00

29 lines
777 B
C#

using System;
using Avalonia.Controls;
using Avalonia.Interactivity;
using ClaudeDo.Ui.ViewModels;
namespace ClaudeDo.Ui.Views;
public partial class InteractiveTerminalView : UserControl
{
public InteractiveTerminalView()
{
InitializeComponent();
TerminalHost.Loaded += OnTerminalHostLoaded;
DataContextChanged += OnDataContextChanged;
}
private void OnDataContextChanged(object? sender, EventArgs e)
{
if (DataContext is InteractiveTerminalViewModel vm && TerminalHost.IsLoaded)
vm.AttachControl(TerminalHost);
}
private void OnTerminalHostLoaded(object? sender, RoutedEventArgs e)
{
if (DataContext is InteractiveTerminalViewModel vm)
vm.AttachControl(TerminalHost);
}
}