初始提交:terminalX 可运行态(M0/M1/M1.5 已真机验证)
- M0: libghostty SSH 终端(渲染/输入/连接)+ 白屏修复(OutputGate) + 会话状态机/自动重连 - M1: tsnet 用户态组网 + SSH-over-tsnet(fd 桥),shell 级真机验证;R5(Go+gvisor+C+++Swift 同进程) retire - M1.5: tmux -CC 原生 tab(MVP) - 结构: packages/(TXCore·TXTransport), apps/TerminalX, vendor/(libghostty-spm/libssh2/mbedtls/tsnet-bridge), artifacts/ - 文档: CLAUDE.md + docs/HANDOFF.md(新会话入口) - 环境: 认证代理→依赖 vendor 本地化;Go 在 ~/.local/go;仅模拟器/未签名 - 待续: M2 mosh, tmux 多 pane, M4 安全(host key/SE) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
48
vendor/libghostty-spm/Sources/GhosttyTerminal/Surface/TerminalSurfaceOptions.swift
vendored
Normal file
48
vendor/libghostty-spm/Sources/GhosttyTerminal/Surface/TerminalSurfaceOptions.swift
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
//
|
||||
// TerminalSurfaceOptions.swift
|
||||
// libghostty-spm
|
||||
//
|
||||
// Created by Lakr233 on 2026/3/16.
|
||||
//
|
||||
|
||||
import GhosttyKit
|
||||
|
||||
public struct TerminalSurfaceOptions: Sendable {
|
||||
public var backend: TerminalSessionBackend
|
||||
public var fontSize: Float?
|
||||
public var workingDirectory: String?
|
||||
/// Extra environment variables set in the child process spawned for this
|
||||
/// surface (exec backend). Passed through `ghostty_surface_config_s.env_vars`;
|
||||
/// every process launched from the surface's shell inherits them, which lets
|
||||
/// embedding hosts tag a surface (e.g. `MYAPP_PANE=<uuid>`) and correlate
|
||||
/// externally observed processes back to it.
|
||||
public var envVars: [String: String]
|
||||
public var context: TerminalSurfaceContext
|
||||
|
||||
public init(
|
||||
backend: TerminalSessionBackend = .exec,
|
||||
fontSize: Float? = nil,
|
||||
workingDirectory: String? = nil,
|
||||
envVars: [String: String] = [:],
|
||||
context: TerminalSurfaceContext = .window
|
||||
) {
|
||||
self.backend = backend
|
||||
self.fontSize = fontSize
|
||||
self.workingDirectory = workingDirectory
|
||||
self.envVars = envVars
|
||||
self.context = context
|
||||
}
|
||||
|
||||
func isEquivalent(to other: TerminalSurfaceOptions) -> Bool {
|
||||
fontSize == other.fontSize
|
||||
&& workingDirectory == other.workingDirectory
|
||||
&& envVars == other.envVars
|
||||
&& context == other.context
|
||||
&& backend.isEquivalent(to: other.backend)
|
||||
}
|
||||
|
||||
var inMemorySession: InMemoryTerminalSession? {
|
||||
guard case let .inMemory(session) = backend else { return nil }
|
||||
return session
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user