Files
terminalX/docs/design/terminalX-iPadOS.dc.html
kid 28e9cfc207 feat: UI 商业化改造 + 连接前 tmux 会话选择(真机验证)
按 Claude Design 定稿(归档在 docs/design/)重做 UI,并把 tmux 从
「从不自动进」修成「连接前探测 → 让用户选会话」。

设计令牌与导航地基
- Theme 拆三层:TXAccent(恒定 blurple) / TXChrome(中性阶×4 表) / TXFlavor(Catppuccin 终端)
- vendor JetBrains Mono 四权重(附 OFL 许可)
- AppRouter + SessionManager:多会话并存,路由与会话生命周期解耦
- SessionCanvas 常驻挂载会话 surface(摘除即丢内容,也是缩回动画的前提)

按设计稿落地的屏
- 沉浸轨道页:56pt 轨道 + 浮起标题/状态胶囊 + 侧边栏三态(遮罩不 resize、Pin 各一次)
- 首页:活动会话卡(readViewportText 文本镜像)+ 主机网格 + 筛选 chips
- 关闭二次确认(tmux 仅断开 / 原生窗口两套文案)、分屏菜单、pane 拖拽条
- 空状态:首次运行 / 无会话 / 搜索无命中 / 连接中·失败·已关闭

tmux 真实链路(真机查出并修掉 4 个 bug)
- 全代码库从来没人发起 attach → 连接前探测 + 会话选择器(接回 / 新建 / 原生终端)
- format 分隔符 tab 经 PTY 变成下划线 → 改用 |:|
- controller 变化不冒泡到 session → Combine 转发(否则数据解析对了 UI 不刷新)
- 当前会话名不能靠 session_attached 反推 → 改用 display-message

传输层:SSH connect 加超时(原来阻塞到系统 TCP 超时 75s+)
无头验证设施:假会话 fixture · terminalx://ui/* 驱动 · 横屏截图脚本 · 对拍走查法
TXCore 45 tests 绿(新增 5 个会话探测单测)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-25 22:59:35 +08:00

811 lines
212 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="./support.js"></script>
</head>
<body>
<x-dc>
<helmet data-dc-atomics><meta name="design_doc_mode" content="canvas">
<!-- Nocturne design-system bundle omitted from this handoff copy; all values are inline hex (see README Design Tokens) -->
<link rel="stylesheet" href="https://unpkg.com/@phosphor-icons/web@2.1.1/src/regular/style.css">
<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap">
<style>
body{margin:0;background:#0e0f18;font-family:'JetBrains Mono',ui-monospace,monospace;color:#e9e9ed}
a{color:#b5abfc}a:hover{color:#d2cefd}
.dv-turn{padding:48px 52px 40px;border-bottom:1px solid rgba(233,233,237,.09);scroll-margin-top:16px}
.dv-thd{display:flex;align-items:baseline;gap:10px;margin:0 0 24px}
.dv-tid{font:600 10px ui-monospace,Menlo,monospace;padding:3px 7px;background:#e9e9ed;color:#161826;border-radius:4px;text-decoration:none}
.dv-tname{font:500 14px/1.2 'JetBrains Mono',monospace;color:#e9e9ed}
.dv-opts{display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start}
.dv-opt{flex:none;display:flex;flex-direction:column;gap:10px;scroll-margin-top:16px}
.dv-oid{font:600 10.5px ui-monospace,Menlo,monospace;padding:3px 7px;background:rgba(233,233,237,.12);color:#e9e9ed;border-radius:5px;text-decoration:none}
.dv-olabel{display:flex;align-items:baseline;gap:9px;font:400 12px/1.4 'JetBrains Mono',monospace;color:rgba(233,233,237,.55);max-width:760px}
.dv-card{max-width:100%;border-radius:18px;overflow:hidden;box-shadow:0 0 0 1px #3f424d,0 22px 60px rgba(0,0,0,.65)}
.dv-opt:target .dv-oid{background:#9184d9;color:#161826}
.dv-next{margin:26px 0 0;font:12px/1.6 'JetBrains Mono',monospace;color:rgba(233,233,237,.5)}
</style></helmet>
<section class="dv-turn" id="t3">
<div class="dv-thd"><a class="dv-tid" href="#t3">3</a><span class="dv-tname">去掉跨主机分屏 · 新建分屏交互 · 会话标题 · 首页与关闭/最小化</span></div>
<div style="max-width:1180px;margin:0 0 34px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px">
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:16px 18px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:9px">跨主机分屏已移除</div><div style="font:400 12px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">分屏只发生在同一台主机内,层级回到「主机 → 会话 → window → pane」四层。要同时看两台机器用轨道或侧边栏一键切换。第 2 轮的 2b 稿已作废删除。</div></div>
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:16px 18px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:9px">新建分屏</div><div style="font:400 12px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">不问方向(竖分/横分本就是两个按钮),只列这台主机的 tmux 会话,末尾追加「原生窗口」,选完立即分屏。见 <a class="dv-oid" href="#3b">3b</a></div></div>
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:16px 18px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:9px">tmux 会话标题</div><div style="font:400 12px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">会话行第二行显示当前 window titlewindow 行显示各自 title仍是默认 zsh 时退回 cwd不新增层级。见 <a class="dv-oid" href="#3a">3a</a></div></div>
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:16px 18px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:9px">首页入口</div><div style="font:400 12px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">默认遮罩态288pt 面板盖住轨道(非并排,故无两套入口),点终端即收起;点 Pin 才钉在左侧、终端变窄。栏内仍是上「活动会话」下「TMUX」两段。见 <a class="dv-oid" href="#3a">3a</a></div></div>
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:16px 18px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:9px">关闭 / 最小化</div><div style="font:400 12px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">沿用 macOS 红黄圆点黄点最小化不确认红点关闭才确认tmux 默认仅断开,原生窗口明说进程会结束。见 <a class="dv-oid" href="#3c">3c</a></div></div>
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:16px 18px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:9px">对你方案的两点修改</div><div style="font:400 12px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">① 最小化后落地页卡片置顶并标「最小化中」,配缩回动画,否则用户不知道东西去哪了;② 关闭的确认按主机能力分成两套文案tmux 不默认 kill只有次要按钮才是 kill。见 <a class="dv-oid" href="#3d">3d</a></div></div>
</div>
<div class="dv-opts">
<div class="dv-opt" id="3a">
<div class="dv-olabel"><a class="dv-oid" href="#3a">3a</a><span><b style="color:#e9e9ed;font-weight:500">侧边栏:遮罩态与 Pin 态</b> 折叠与展开只是同一条栏的两个状态,元素不增不减:折叠 56pt 收成图标(搜索 / 首页 / 主机 / TMUX / 设置 / 展开键),展开 288pt 显示完整标题。左上角 <span style="color:#a29ac8"></span> 是 App logo不可点开合只有一枚按钮——折叠态是轨道底部的 <span style="color:#cfd3e5">»</span>,展开态是标题右侧的 <span style="color:#cfd3e5">«</span>,方向相反不歧义。<b style="color:#b2b6ca;font-weight:400">左=默认遮罩态</b>288pt 面板盖住 56pt 轨道(不是并排,因此没有两套入口),右侧压一层遮罩,点终端任意处即收起。<b style="color:#b2b6ca;font-weight:400">右=点 Pin 之后</b>:面板钉在左侧、遮罩消失、终端变窄并只 resize 一次;再点一次 Pin 回到遮罩态。栏内布局沿用轨道的分区上半「活动会话」下半「TMUX当前主机的 window 列表)」。</span></div>
<div style="display:flex;gap:22px;align-items:flex-start">
<div class="dv-card" style="width:1366px">
<div data-screen-label="3a 侧边栏-遮罩态" style="width:1366px;height:1024px;background:#11121c;display:flex;position:relative;font-family:'JetBrains Mono',ui-monospace,monospace">
<div style="width:56px;flex:none;background:#1b1d2b;border-right:1px solid #2c2f3d;display:flex;flex-direction:column;align-items:center;padding:22px 0 12px;gap:8px">
<div style="width:34px;height:34px;border-radius:11px;background:#232532;box-shadow:inset 0 0 0 1px #3f424d;display:flex;align-items:center;justify-content:center;font:700 16px 'JetBrains Mono',monospace;color:#b5abfc"></div>
<div style="width:38px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:16px"><i class="ph ph-magnifying-glass"></i></div>
<div style="width:38px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:16px"><i class="ph ph-house"></i></div>
<div style="width:24px;height:1px;background:#2c2f3d;margin:4px 0"></div>
<div style="position:relative;width:38px;height:38px;border-radius:11px;background:#2b2741;box-shadow:inset 0 0 0 1px #5d5294;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#d2cefd">ms<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="position:relative;width:38px;height:38px;border-radius:11px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#9397ab">u2<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="position:relative;width:38px;height:38px;border-radius:11px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#9397ab">nh<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#fab387;box-shadow:0 0 0 2px #1b1d2b"></span></div>
<div style="width:38px;height:38px;border-radius:11px;border:1px dashed #3f424d;display:flex;align-items:center;justify-content:center;font-size:16px;color:#5d5294"><i class="ph ph-plus"></i></div>
<div style="width:24px;height:1px;background:#2c2f3d;margin:6px 0"></div>
<div style="font:600 9px 'JetBrains Mono',monospace;letter-spacing:.1em;color:#5d5294;margin-bottom:2px">TMUX</div>
<div style="width:34px;height:30px;border-radius:9px;background:#232532;box-shadow:inset 0 0 0 1px #4a4d5e;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#e9e9ed">0</div><div style="width:34px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#75798c">1</div><div style="width:34px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#75798c">2</div>
<div style="margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:7px">
<div style="width:8px;height:8px;border-radius:4px;background:#a6e3a1;margin:2px 0"></div>
<div style="width:34px;height:34px;border-radius:10px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;color:#b2b6ca;font-size:13px"><i class="ph ph-caret-double-right"></i></div>
<div style="width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#75798c;font-size:15px"><i class="ph ph-gear-six"></i></div>
</div>
</div>
<div style="flex:1;position:relative;display:flex;flex-direction:column;min-width:0;background:#11121c">
<div style="flex:1;display:flex;flex-direction:column;padding:2px;min-height:0">
<div style="flex:1.7;display:flex;flex-direction:column;background:#1e1e2e;border-radius:8px;outline:1px solid #6c5f9e;min-height:0">
<div style="flex:1;padding:86px 20px 12px;font:400 13.5px/1.55 'JetBrains Mono',monospace;color:#cdd6f4;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git fetch --all --prune</div><div><span style="color:#6c7086">Fetching origin … done</span></div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift build -c release --arch arm64</div><div><span style="color:#6c7086">[142/142] Compiling TXCore</span></div><div><span style="color:#6c7086">[ 8/8 ] Linking TerminalX</span></div><div><span style="color:#a6e3a1">✓ build complete (14.2s)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift test --package-path packages/TXCore</div><div><span style="color:#a6e3a1">◇ Test run started.</span></div><div> <span style="color:#a6e3a1"></span> parses %output escaped octal</div><div> <span style="color:#a6e3a1"></span> layout diff keeps pane identity</div><div> <span style="color:#a6e3a1"></span> DCS passthrough detected</div><div> <span style="color:#a6e3a1"></span> backoff caps at 30s</div><div> <span style="color:#a6e3a1"></span> mosh three-phase resume</div><div><span style="color:#a6e3a1">◇ 50 tests passed after 0.412s</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodegen generate --spec project.yml</div><div><span style="color:#a6e3a1">✅ Created TerminalX.xcodeproj</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git status --short</div><div> <span style="color:#f9e2af">M</span> apps/TerminalX/iOS/RailSidebar.swift</div><div><span style="color:#a6e3a1">??</span> docs/ui/sidebar-states.md</div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git fetch --all --prune</div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> <span style="background:#cdd6f4;color:#1e1e2e"> </span></div></div></div>
</div>
<div style="height:12px;flex:none;display:flex;align-items:center;justify-content:center"><div style="width:44px;height:3px;border-radius:2px;background:#3f424d"></div></div>
<div style="flex:1;display:flex;flex-direction:column;background:#1e1e2e;border-radius:8px;min-height:0">
<div style="height:26px;flex:none;display:flex;align-items:center;padding:0 14px;font:500 11px 'JetBrains Mono',monospace;color:#6c7086">0.1 · 日志 · log stream --style compact<span style="margin-left:auto;color:#585b70">168×17</span></div>
<div style="flex:1;padding:2px 20px 12px;font:400 12px/1.5 'JetBrains Mono',monospace;color:#a6adc8;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms</div><div><span style="color:#6c7086">12:03:41</span> terminalx: tmux %layout-change</div><div><span style="color:#6c7086">12:04:02</span> terminalx: <span style="color:#a6e3a1">session dev attached</span></div><div><span style="color:#6c7086">12:04:31</span> terminalx: <span style="color:#f9e2af">link degraded, rtt 210ms</span></div><div><span style="color:#6c7086">12:04:33</span> terminalx: <span style="color:#a6e3a1">mosh resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> terminalx: scrollback trimmed 4k</div><div><span style="color:#6c7086">12:05:44</span> terminalx: pasteboard bridge ok</div><div><span style="color:#6c7086">12:06:20</span> terminalx: window title → "运行测试"</div><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms</div><div><span style="color:#6c7086">12:03:41</span> terminalx: tmux %layout-change</div><div><span style="color:#6c7086">12:04:02</span> terminalx: <span style="color:#a6e3a1">session dev attached</span></div><div><span style="color:#6c7086">12:04:31</span> terminalx: <span style="color:#f9e2af">link degraded, rtt 210ms</span></div><div><span style="color:#6c7086">12:04:33</span> terminalx: <span style="color:#a6e3a1">mosh resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> terminalx: scrollback trimmed 4k</div><div><span style="color:#6c7086">12:05:44</span> terminalx: pasteboard bridge ok</div><div><span style="color:#6c7086">12:06:20</span> terminalx: window title → "运行测试"</div><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms<span style="background:#a6adc8;color:#1e1e2e"> </span></div></div></div>
</div>
</div>
<div style="position:absolute;top:14px;right:16px;display:flex;align-items:center;background:rgba(27,29,43,.86);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:11px;padding:5px 6px;box-shadow:0 10px 30px rgba(0,0,0,.55)">
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#b2b6ca"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>tsnet</div>
<div style="width:1px;height:16px;background:#3f424d"></div>
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#b2b6ca">mosh<span style="color:#a6e3a1">41ms</span></div>
<div style="width:1px;height:16px;background:#3f424d"></div>
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#d2cefd">tmux<span>dev</span></div>
</div>
<div style="position:absolute;top:14px;left:16px;display:flex;align-items:center;gap:10px;background:rgba(27,29,43,.9);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:11px;padding:7px 13px 7px 11px;box-shadow:0 10px 30px rgba(0,0,0,.55)">
<div style="display:flex;align-items:center;gap:7px"><div style="width:13px;height:13px;border-radius:7px;background:#ff5f57;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.25)"></div><div style="width:13px;height:13px;border-radius:7px;background:#febc2e;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.25)"></div></div>
<div style="width:1px;height:18px;background:#3f424d"></div>
<span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>
<span style="font:500 12.5px 'JetBrains Mono',monospace;color:#e9e9ed">mac-studio</span>
<span style="font:400 11.5px 'JetBrains Mono',monospace;color:#75798c">运行测试 · ~/src/terminalx</span>
</div>
<div style="height:34px;flex:none;display:flex;align-items:center;gap:16px;padding:0 18px;background:#161826;border-top:1px solid #2c2f3d;font:400 11.5px 'JetBrains Mono',monospace;color:#75798c"><span>遮罩态 · 点终端任意处收起</span><span style="margin-left:auto;display:flex;gap:14px"><span><b style="color:#b2b6ca">⌘\</b> 收起</span><span><b style="color:#b2b6ca">Pin</b> 钉在左侧</span><span><b style="color:#b2b6ca">⌘⇧H</b> 回首页</span><span><b style="color:#b2b6ca"></b> 切换会话</span></span></div>
<div style="height:14px;flex:none;display:flex;align-items:center;justify-content:center;background:#161826"><div style="width:200px;height:4px;border-radius:2px;background:#3f424d"></div></div>
</div>
<div style="position:absolute;inset:0;left:288px;background:rgba(10,11,18,.5)"></div>
<div style="position:absolute;top:0;bottom:0;left:0;width:288px;background:#1b1d2b;border-right:1px solid #3f424d;box-shadow:24px 0 60px rgba(0,0,0,.55);display:flex;flex-direction:column;padding-top:16px">
<div style="padding:0 12px 10px;display:flex;align-items:center;gap:8px">
<div style="width:30px;height:30px;border-radius:10px;background:#232532;box-shadow:inset 0 0 0 1px #3f424d;display:flex;align-items:center;justify-content:center;font:700 15px 'JetBrains Mono',monospace;color:#b5abfc"></div>
<span style="font:500 14px 'JetBrains Mono',monospace;color:#e9e9ed">terminalX</span>
<div style="margin-left:auto;display:flex;gap:6px">
<div style="width:30px;height:30px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:13px"><i class="ph ph-push-pin"></i></div>
<div style="width:30px;height:30px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;color:#b2b6ca;font-size:13px"><i class="ph ph-caret-double-left"></i></div>
</div>
</div>
<div style="padding:0 12px 8px"><div style="height:32px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;gap:7px;padding:0 10px;font:400 12.5px 'JetBrains Mono',monospace;color:#75798c"><i class="ph ph-magnifying-glass"></i> 搜索主机 · 会话</div></div>
<div style="padding:0 8px 2px"><div style="display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:9px"><span style="width:26px;text-align:center;color:#b5abfc;font-size:15px"><i class="ph ph-house"></i></span><span style="font:500 13px 'JetBrains Mono',monospace;color:#e9e9ed">首页</span><span style="margin-left:auto;font:400 10.5px 'JetBrains Mono',monospace;color:#5d5294">⌘⇧H</span></div></div>
<div style="padding:10px 16px 5px;display:flex;align-items:baseline"><span style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#75798c">活动会话</span><span style="margin-left:auto;font:400 10px 'JetBrains Mono',monospace;color:#5d5294">3</span></div>
<div style="padding:0 8px;display:flex;flex-direction:column;gap:2px">
<div style="display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:9px;background:#2b2741;box-shadow:inset 0 0 0 1px #423a6a;"><div style="position:relative;width:26px;height:26px;flex:none;border-radius:8px;background:#2b2741;box-shadow:inset 0 0 0 1px #5d5294;display:flex;align-items:center;justify-content:center;font:600 11px 'JetBrains Mono',monospace;color:#d2cefd">ms<span style="position:absolute;right:-2px;top:-2px;width:7px;height:7px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="flex:1;min-width:0"><div style="font:500 13px 'JetBrains Mono',monospace;color:#e9e9ed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">mac-studio · dev</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">运行测试 · 3 windows</div></div><span style="font:500 10px 'JetBrains Mono',monospace;color:#75798c;flex:none"> 41ms</span></div>
<div style="display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:9px;"><div style="position:relative;width:26px;height:26px;flex:none;border-radius:8px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 11px 'JetBrains Mono',monospace;color:#9397ab">u2<span style="position:absolute;right:-2px;top:-2px;width:7px;height:7px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="flex:1;min-width:0"><div style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">ubuntu-cn2 · build</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">集成测试 · 1 window</div></div><span style="font:500 10px 'JetBrains Mono',monospace;color:#75798c;flex:none">186ms</span></div>
<div style="display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:9px;"><div style="position:relative;width:26px;height:26px;flex:none;border-radius:8px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 11px 'JetBrains Mono',monospace;color:#9397ab">nh<span style="position:absolute;right:-2px;top:-2px;width:7px;height:7px;border-radius:4px;background:#fab387;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="flex:1;min-width:0"><div style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">nas-home</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">原生窗口 · ~</div></div><span style="font:500 10px 'JetBrains Mono',monospace;color:#fab387;flex:none">重连中</span></div>
<div style="display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:9px"><span style="width:26px;text-align:center;color:#5d5294;font-size:14px"><i class="ph ph-plus"></i></span><span style="font:400 12.5px 'JetBrains Mono',monospace;color:#75798c">连接新主机…</span></div>
</div>
<div style="height:1px;margin:12px 16px;background:linear-gradient(to right,transparent,#2c2f3d 20px,#2c2f3d calc(100% - 20px),transparent)"></div>
<div style="padding:0 16px 5px;display:flex;align-items:baseline"><span style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#75798c">TMUX · mac-studio · dev</span></div>
<div style="padding:0 8px;display:flex;flex-direction:column;gap:2px">
<div style="display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:9px;background:#232532;box-shadow:inset 0 0 0 1px #4a4d5e;"><span style="width:26px;height:22px;flex:none;border-radius:7px;background:#2b2741;display:flex;align-items:center;justify-content:center;font:500 10.5px 'JetBrains Mono',monospace;color:#d2cefd">0</span><div style="flex:1;min-width:0"><div style="font:500 12.5px 'JetBrains Mono',monospace;color:#e9e9ed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">运行测试</div><div style="font:400 10px 'JetBrains Mono',monospace;color:#75798c">~/src/terminalx · 2 panes</div></div><span style="width:5px;height:5px;border-radius:3px;background:#a6e3a1;flex:none"></span></div>
<div style="display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:9px;"><span style="width:26px;height:22px;flex:none;border-radius:7px;background:#1e1f2c;display:flex;align-items:center;justify-content:center;font:500 10.5px 'JetBrains Mono',monospace;color:#5d5294">1</span><div style="flex:1;min-width:0"><div style="font:400 12.5px 'JetBrains Mono',monospace;color:#cfd3e5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">日志</div><div style="font:400 10px 'JetBrains Mono',monospace;color:#75798c">~/src/terminalx</div></div></div>
<div style="display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:9px;"><span style="width:26px;height:22px;flex:none;border-radius:7px;background:#1e1f2c;display:flex;align-items:center;justify-content:center;font:500 10.5px 'JetBrains Mono',monospace;color:#5d5294">2</span><div style="flex:1;min-width:0"><div style="font:400 12.5px 'JetBrains Mono',monospace;color:#cfd3e5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">nvim Theme.swift</div><div style="font:400 10px 'JetBrains Mono',monospace;color:#75798c">packages/TXCore</div></div></div>
<div style="display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:9px"><span style="width:22px;text-align:center;color:#5d5294;font-size:13px"><i class="ph ph-plus"></i></span><span style="font:400 12.5px 'JetBrains Mono',monospace;color:#75798c">新建 window ⌘T</span></div>
</div>
<div style="margin-top:auto;border-top:1px solid #2c2f3d;padding:9px 12px;display:flex;align-items:center;gap:9px"><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span><div style="flex:1"><div style="font:500 11.5px 'JetBrains Mono',monospace;color:#cfd3e5">Tailscale 已连接</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c">ipad-pro · 100.92.14.7</div></div><span style="color:#75798c;font-size:13px"><i class="ph ph-gear-six"></i></span></div>
</div>
</div>
</div>
<div class="dv-card" style="width:1366px">
<div data-screen-label="3a 侧边栏-Pin 态" style="width:1366px;height:1024px;background:#11121c;display:flex;font-family:'JetBrains Mono',ui-monospace,monospace">
<div style="width:288px;flex:none;background:#1b1d2b;border-right:1px solid #2c2f3d;display:flex;flex-direction:column;padding-top:16px">
<div style="padding:0 12px 10px;display:flex;align-items:center;gap:8px">
<div style="width:30px;height:30px;border-radius:10px;background:#232532;box-shadow:inset 0 0 0 1px #3f424d;display:flex;align-items:center;justify-content:center;font:700 15px 'JetBrains Mono',monospace;color:#b5abfc"></div>
<span style="font:500 14px 'JetBrains Mono',monospace;color:#e9e9ed">terminalX</span>
<div style="margin-left:auto;display:flex;gap:6px">
<div style="width:30px;height:30px;border-radius:8px;background:#2b2741;border:1px solid #5d5294;display:flex;align-items:center;justify-content:center;color:#d2cefd;font-size:13px"><i class="ph ph-push-pin"></i></div>
<div style="width:30px;height:30px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;color:#b2b6ca;font-size:13px"><i class="ph ph-caret-double-left"></i></div>
</div>
</div>
<div style="padding:0 12px 8px"><div style="height:32px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;gap:7px;padding:0 10px;font:400 12.5px 'JetBrains Mono',monospace;color:#75798c"><i class="ph ph-magnifying-glass"></i> 搜索主机 · 会话</div></div>
<div style="padding:0 8px 2px"><div style="display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:9px"><span style="width:26px;text-align:center;color:#b5abfc;font-size:15px"><i class="ph ph-house"></i></span><span style="font:500 13px 'JetBrains Mono',monospace;color:#e9e9ed">首页</span><span style="margin-left:auto;font:400 10.5px 'JetBrains Mono',monospace;color:#5d5294">⌘⇧H</span></div></div>
<div style="padding:10px 16px 5px;display:flex;align-items:baseline"><span style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#75798c">活动会话</span><span style="margin-left:auto;font:400 10px 'JetBrains Mono',monospace;color:#5d5294">3</span></div>
<div style="padding:0 8px;display:flex;flex-direction:column;gap:2px">
<div style="display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:9px;background:#2b2741;box-shadow:inset 0 0 0 1px #423a6a;"><div style="position:relative;width:26px;height:26px;flex:none;border-radius:8px;background:#2b2741;box-shadow:inset 0 0 0 1px #5d5294;display:flex;align-items:center;justify-content:center;font:600 11px 'JetBrains Mono',monospace;color:#d2cefd">ms<span style="position:absolute;right:-2px;top:-2px;width:7px;height:7px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="flex:1;min-width:0"><div style="font:500 13px 'JetBrains Mono',monospace;color:#e9e9ed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">mac-studio · dev</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">运行测试 · 3 windows</div></div><span style="font:500 10px 'JetBrains Mono',monospace;color:#75798c;flex:none"> 41ms</span></div>
<div style="display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:9px;"><div style="position:relative;width:26px;height:26px;flex:none;border-radius:8px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 11px 'JetBrains Mono',monospace;color:#9397ab">u2<span style="position:absolute;right:-2px;top:-2px;width:7px;height:7px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="flex:1;min-width:0"><div style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">ubuntu-cn2 · build</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">集成测试 · 1 window</div></div><span style="font:500 10px 'JetBrains Mono',monospace;color:#75798c;flex:none">186ms</span></div>
<div style="display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:9px;"><div style="position:relative;width:26px;height:26px;flex:none;border-radius:8px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 11px 'JetBrains Mono',monospace;color:#9397ab">nh<span style="position:absolute;right:-2px;top:-2px;width:7px;height:7px;border-radius:4px;background:#fab387;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="flex:1;min-width:0"><div style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">nas-home</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">原生窗口 · ~</div></div><span style="font:500 10px 'JetBrains Mono',monospace;color:#fab387;flex:none">重连中</span></div>
<div style="display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:9px"><span style="width:26px;text-align:center;color:#5d5294;font-size:14px"><i class="ph ph-plus"></i></span><span style="font:400 12.5px 'JetBrains Mono',monospace;color:#75798c">连接新主机…</span></div>
</div>
<div style="height:1px;margin:12px 16px;background:linear-gradient(to right,transparent,#2c2f3d 20px,#2c2f3d calc(100% - 20px),transparent)"></div>
<div style="padding:0 16px 5px;display:flex;align-items:baseline"><span style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#75798c">TMUX · mac-studio · dev</span></div>
<div style="padding:0 8px;display:flex;flex-direction:column;gap:2px">
<div style="display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:9px;background:#232532;box-shadow:inset 0 0 0 1px #4a4d5e;"><span style="width:26px;height:22px;flex:none;border-radius:7px;background:#2b2741;display:flex;align-items:center;justify-content:center;font:500 10.5px 'JetBrains Mono',monospace;color:#d2cefd">0</span><div style="flex:1;min-width:0"><div style="font:500 12.5px 'JetBrains Mono',monospace;color:#e9e9ed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">运行测试</div><div style="font:400 10px 'JetBrains Mono',monospace;color:#75798c">~/src/terminalx · 2 panes</div></div><span style="width:5px;height:5px;border-radius:3px;background:#a6e3a1;flex:none"></span></div>
<div style="display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:9px;"><span style="width:26px;height:22px;flex:none;border-radius:7px;background:#1e1f2c;display:flex;align-items:center;justify-content:center;font:500 10.5px 'JetBrains Mono',monospace;color:#5d5294">1</span><div style="flex:1;min-width:0"><div style="font:400 12.5px 'JetBrains Mono',monospace;color:#cfd3e5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">日志</div><div style="font:400 10px 'JetBrains Mono',monospace;color:#75798c">~/src/terminalx</div></div></div>
<div style="display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:9px;"><span style="width:26px;height:22px;flex:none;border-radius:7px;background:#1e1f2c;display:flex;align-items:center;justify-content:center;font:500 10.5px 'JetBrains Mono',monospace;color:#5d5294">2</span><div style="flex:1;min-width:0"><div style="font:400 12.5px 'JetBrains Mono',monospace;color:#cfd3e5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis">nvim Theme.swift</div><div style="font:400 10px 'JetBrains Mono',monospace;color:#75798c">packages/TXCore</div></div></div>
<div style="display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:9px"><span style="width:22px;text-align:center;color:#5d5294;font-size:13px"><i class="ph ph-plus"></i></span><span style="font:400 12.5px 'JetBrains Mono',monospace;color:#75798c">新建 window ⌘T</span></div>
</div>
<div style="margin-top:auto;border-top:1px solid #2c2f3d;padding:9px 12px;display:flex;align-items:center;gap:9px"><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span><div style="flex:1"><div style="font:500 11.5px 'JetBrains Mono',monospace;color:#cfd3e5">Tailscale 已连接</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c">ipad-pro · 100.92.14.7</div></div><span style="color:#75798c;font-size:13px"><i class="ph ph-gear-six"></i></span></div>
</div>
<div style="flex:1;position:relative;display:flex;flex-direction:column;min-width:0;background:#11121c">
<div style="flex:1;display:flex;flex-direction:column;padding:2px;min-height:0">
<div style="flex:1.7;display:flex;flex-direction:column;background:#1e1e2e;border-radius:8px;outline:1px solid #6c5f9e;min-height:0">
<div style="flex:1;padding:86px 20px 12px;font:400 13.5px/1.55 'JetBrains Mono',monospace;color:#cdd6f4;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git fetch --all --prune</div><div><span style="color:#6c7086">Fetching origin … done</span></div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift build -c release --arch arm64</div><div><span style="color:#6c7086">[142/142] Compiling TXCore</span></div><div><span style="color:#6c7086">[ 8/8 ] Linking TerminalX</span></div><div><span style="color:#a6e3a1">✓ build complete (14.2s)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift test --package-path packages/TXCore</div><div><span style="color:#a6e3a1">◇ Test run started.</span></div><div> <span style="color:#a6e3a1"></span> parses %output escaped octal</div><div> <span style="color:#a6e3a1"></span> layout diff keeps pane identity</div><div> <span style="color:#a6e3a1"></span> DCS passthrough detected</div><div> <span style="color:#a6e3a1"></span> backoff caps at 30s</div><div> <span style="color:#a6e3a1"></span> mosh three-phase resume</div><div><span style="color:#a6e3a1">◇ 50 tests passed after 0.412s</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodegen generate --spec project.yml</div><div><span style="color:#a6e3a1">✅ Created TerminalX.xcodeproj</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git status --short</div><div> <span style="color:#f9e2af">M</span> apps/TerminalX/iOS/RailSidebar.swift</div><div><span style="color:#a6e3a1">??</span> docs/ui/sidebar-states.md</div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git fetch --all --prune</div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> <span style="background:#cdd6f4;color:#1e1e2e"> </span></div></div></div>
</div>
<div style="height:12px;flex:none;display:flex;align-items:center;justify-content:center"><div style="width:44px;height:3px;border-radius:2px;background:#3f424d"></div></div>
<div style="flex:1;display:flex;flex-direction:column;background:#1e1e2e;border-radius:8px;min-height:0">
<div style="height:26px;flex:none;display:flex;align-items:center;padding:0 14px;font:500 11px 'JetBrains Mono',monospace;color:#6c7086">0.1 · 日志 · log stream --style compact<span style="margin-left:auto;color:#585b70">132×17</span></div>
<div style="flex:1;padding:2px 20px 12px;font:400 12px/1.5 'JetBrains Mono',monospace;color:#a6adc8;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms</div><div><span style="color:#6c7086">12:03:41</span> terminalx: tmux %layout-change</div><div><span style="color:#6c7086">12:04:02</span> terminalx: <span style="color:#a6e3a1">session dev attached</span></div><div><span style="color:#6c7086">12:04:31</span> terminalx: <span style="color:#f9e2af">link degraded, rtt 210ms</span></div><div><span style="color:#6c7086">12:04:33</span> terminalx: <span style="color:#a6e3a1">mosh resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> terminalx: scrollback trimmed 4k</div><div><span style="color:#6c7086">12:05:44</span> terminalx: pasteboard bridge ok</div><div><span style="color:#6c7086">12:06:20</span> terminalx: window title → "运行测试"</div><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms</div><div><span style="color:#6c7086">12:03:41</span> terminalx: tmux %layout-change</div><div><span style="color:#6c7086">12:04:02</span> terminalx: <span style="color:#a6e3a1">session dev attached</span></div><div><span style="color:#6c7086">12:04:31</span> terminalx: <span style="color:#f9e2af">link degraded, rtt 210ms</span></div><div><span style="color:#6c7086">12:04:33</span> terminalx: <span style="color:#a6e3a1">mosh resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> terminalx: scrollback trimmed 4k</div><div><span style="color:#6c7086">12:05:44</span> terminalx: pasteboard bridge ok</div><div><span style="color:#6c7086">12:06:20</span> terminalx: window title → "运行测试"</div><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms<span style="background:#a6adc8;color:#1e1e2e"> </span></div></div></div>
</div>
</div>
<div style="position:absolute;top:14px;right:16px;display:flex;align-items:center;background:rgba(27,29,43,.86);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:11px;padding:5px 6px;box-shadow:0 10px 30px rgba(0,0,0,.55)">
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#b2b6ca"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>tsnet</div>
<div style="width:1px;height:16px;background:#3f424d"></div>
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#b2b6ca">mosh<span style="color:#a6e3a1">41ms</span></div>
<div style="width:1px;height:16px;background:#3f424d"></div>
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#d2cefd">tmux<span>dev</span></div>
</div>
<div style="position:absolute;top:14px;left:16px;display:flex;align-items:center;gap:10px;background:rgba(27,29,43,.9);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:11px;padding:7px 13px 7px 11px;box-shadow:0 10px 30px rgba(0,0,0,.55)">
<div style="display:flex;align-items:center;gap:7px"><div style="width:13px;height:13px;border-radius:7px;background:#ff5f57;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.25)"></div><div style="width:13px;height:13px;border-radius:7px;background:#febc2e;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.25)"></div></div>
<div style="width:1px;height:18px;background:#3f424d"></div>
<span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>
<span style="font:500 12.5px 'JetBrains Mono',monospace;color:#e9e9ed">mac-studio</span>
<span style="font:400 11.5px 'JetBrains Mono',monospace;color:#75798c">运行测试 · ~/src/terminalx</span>
</div>
<div style="height:34px;flex:none;display:flex;align-items:center;gap:16px;padding:0 18px;background:#161826;border-top:1px solid #2c2f3d;font:400 11.5px 'JetBrains Mono',monospace;color:#75798c"><span>Pin 态 · 终端变窄,仅在钉住/解除时各 resize 一次</span><span style="margin-left:auto;display:flex;gap:14px"><span><b style="color:#b2b6ca">Pin</b> 解除钉住</span><span><b style="color:#b2b6ca">⌘\</b> 收起为轨道</span><span><b style="color:#b2b6ca">⌘⇧H</b> 回首页</span></span></div>
<div style="height:14px;flex:none;display:flex;align-items:center;justify-content:center;background:#161826"><div style="width:200px;height:4px;border-radius:2px;background:#3f424d"></div></div>
</div>
</div>
</div>
</div>
</div>
<div class="dv-opt" id="3b">
<div class="dv-olabel"><a class="dv-oid" href="#3b">3b</a><span><b style="color:#e9e9ed;font-weight:500">新建分屏:只问"分到哪个会话"</b> 竖分 / 横分本来就是两个不同的按钮⌘D / ⌘⇧D触控是轨道 + 的两枚小图标),所以菜单不再问方向。菜单只列出<b style="color:#b2b6ca;font-weight:400">这台主机上的 tmux 会话</b>(含当前会话、可接管的 detached 会话、新建会话),最后追加一项<b style="color:#b2b6ca;font-weight:400">原生窗口</b>。选完立即分屏——此稿右侧就是选中「dev当前会话」后竖分的结果。</span></div>
<div class="dv-card">
<div data-screen-label="3b 新建分屏菜单" style="width:1366px;height:1024px;background:#11121c;display:flex;position:relative;font-family:'JetBrains Mono',ui-monospace,monospace">
<div style="width:56px;flex:none;background:#1b1d2b;border-right:1px solid #2c2f3d;display:flex;flex-direction:column;align-items:center;padding:28px 0 12px;gap:8px">
<div style="width:34px;height:34px;border-radius:11px;background:#232532;box-shadow:inset 0 0 0 1px #3f424d;display:flex;align-items:center;justify-content:center;font:700 16px 'JetBrains Mono',monospace;color:#b5abfc"></div>
<div style="width:38px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:16px"><i class="ph ph-magnifying-glass"></i></div>
<div style="width:38px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:16px"><i class="ph ph-house"></i></div>
<div style="width:24px;height:1px;background:#2c2f3d;margin:6px 0"></div>
<div style="position:relative;width:38px;height:38px;border-radius:11px;background:#2b2741;box-shadow:inset 0 0 0 1px #5d5294;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#d2cefd">ms<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="position:relative;width:38px;height:38px;border-radius:11px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#9397ab">u2<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="position:relative;width:38px;height:38px;border-radius:11px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#9397ab">nh<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#fab387;box-shadow:0 0 0 2px #1b1d2b"></span></div>
<div style="width:38px;height:38px;border-radius:11px;border:1px dashed #796cbf;display:flex;align-items:center;justify-content:center;font-size:16px;color:#b5abfc"><i class="ph ph-plus"></i></div>
<div style="width:24px;height:1px;background:#2c2f3d;margin:8px 0"></div>
<div style="font:600 9px 'JetBrains Mono',monospace;letter-spacing:.1em;color:#5d5294;margin-bottom:2px">TMUX</div>
<div style="width:34px;height:30px;border-radius:9px;background:#232532;box-shadow:inset 0 0 0 1px #4a4d5e;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#e9e9ed">0</div><div style="width:34px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#75798c">1</div><div style="width:34px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#75798c">2</div>
<div style="margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:7px">
<div style="width:8px;height:8px;border-radius:4px;background:#a6e3a1;margin:3px 0"></div>
<div style="width:34px;height:34px;border-radius:10px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;color:#b2b6ca;font-size:13px"><i class="ph ph-caret-double-right"></i></div>
<div style="width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#75798c;font-size:15px"><i class="ph ph-gear-six"></i></div>
</div>
</div>
<div style="flex:1;position:relative;display:flex;flex-direction:column;min-width:0;background:#11121c">
<div style="flex:1;display:flex;gap:12px;padding:2px;min-height:0">
<div style="flex:1;display:flex;flex-direction:column;background:#1e1e2e;border-radius:8px;outline:1px solid #6c5f9e;min-width:0">
<div style="flex:1;padding:86px 18px 12px;font:400 13px/1.55 'JetBrains Mono',monospace;color:#cdd6f4;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift package resolve</div><div><span style="color:#6c7086">Fetching TXCore … resolved</span></div><div><span style="color:#6c7086">Fetching swift-log 1.6.1 … resolved</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodebuild -showsdks | head -2</div><div><span style="color:#6c7086">iOS SDKs: iOS 26.2 (iphoneos26.2)</span></div><div><span style="color:#6c7086">macOS SDKs: macOS 26.2 (macosx26.2)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git fetch --all --prune</div><div><span style="color:#6c7086">Fetching origin … done</span></div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swiftformat --lint Sources</div><div><span style="color:#a6e3a1">✓ 0 issues in 84 files</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcrun simctl list devices booted</div><div><span style="color:#6c7086">-- iOS 26.2 --</span></div><div><span style="color:#6c7086"> iPad Pro 13-inch (M4) (Booted)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift package resolve</div><div><span style="color:#6c7086">Fetching TXCore … resolved</span></div><div><span style="color:#6c7086">Fetching swift-log 1.6.1 … resolved</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodebuild -showsdks | head -2</div><div><span style="color:#6c7086">iOS SDKs: iOS 26.2 (iphoneos26.2)</span></div><div><span style="color:#6c7086">macOS SDKs: macOS 26.2 (macosx26.2)</span></div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git fetch --all --prune</div><div><span style="color:#6c7086">Fetching origin … done</span></div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift build -c release --arch arm64</div><div><span style="color:#6c7086">[142/142] Compiling TXCore</span></div><div><span style="color:#6c7086">[ 8/8 ] Linking TerminalX</span></div><div><span style="color:#a6e3a1">✓ build complete (14.2s)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift test --package-path packages/TXCore</div><div><span style="color:#a6e3a1">◇ Test run started.</span></div><div> <span style="color:#a6e3a1"></span> parses %output escaped octal</div><div> <span style="color:#a6e3a1"></span> layout diff keeps pane identity</div><div> <span style="color:#a6e3a1"></span> DCS passthrough detected</div><div> <span style="color:#a6e3a1"></span> backoff caps at 30s</div><div> <span style="color:#a6e3a1"></span> mosh three-phase resume</div><div><span style="color:#a6e3a1">◇ 50 tests passed after 0.412s</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodegen generate --spec project.yml</div><div><span style="color:#a6e3a1">✅ Created TerminalX.xcodeproj</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git status --short</div><div> <span style="color:#f9e2af">M</span> apps/TerminalX/iOS/RailSidebar.swift</div><div> <span style="color:#f9e2af">M</span> apps/TerminalX/iOS/SessionRouter.swift</div><div><span style="color:#a6e3a1">??</span> docs/ui/home-and-close.md</div><div>&nbsp;</div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> <span style="background:#cdd6f4;color:#1e1e2e"> </span></div></div></div>
</div>
<div style="width:1px;flex:none;background:linear-gradient(to bottom,transparent,#3f424d 12%,#3f424d 88%,transparent);position:relative;display:flex;align-items:center;justify-content:center"><div style="position:absolute;width:5px;height:56px;border-radius:3px;background:#4a4d5e"></div></div>
<div style="flex:1;display:flex;flex-direction:column;background:#1e1e2e;border-radius:8px;min-width:0">
<div style="height:26px;flex:none;display:flex;align-items:center;padding:0 14px;font:500 11px 'JetBrains Mono',monospace;color:#6c7086">0.1 · 日志 · log stream --style compact</div>
<div style="flex:1;padding:2px 18px 12px;font:400 12px/1.5 'JetBrains Mono',monospace;color:#a6adc8;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms</div><div><span style="color:#6c7086">12:03:41</span> terminalx: tmux %layout-change</div><div><span style="color:#6c7086">12:04:02</span> terminalx: <span style="color:#a6e3a1">session dev attached</span></div><div><span style="color:#6c7086">12:04:31</span> terminalx: <span style="color:#f9e2af">link degraded, rtt 210ms</span></div><div><span style="color:#6c7086">12:04:33</span> terminalx: <span style="color:#a6e3a1">mosh resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> terminalx: scrollback trimmed 4k</div><div><span style="color:#6c7086">12:05:44</span> terminalx: pasteboard bridge ok</div><div><span style="color:#6c7086">12:06:20</span> terminalx: window title → "运行测试"</div><div><span style="color:#6c7086">12:06:41</span> terminalx: tmux %window-renamed 0</div><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms</div><div><span style="color:#6c7086">12:03:41</span> terminalx: tmux %layout-change</div><div><span style="color:#6c7086">12:04:02</span> terminalx: <span style="color:#a6e3a1">session dev attached</span></div><div><span style="color:#6c7086">12:04:31</span> terminalx: <span style="color:#f9e2af">link degraded, rtt 210ms</span></div><div><span style="color:#6c7086">12:04:33</span> terminalx: <span style="color:#a6e3a1">mosh resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> terminalx: scrollback trimmed 4k</div><div><span style="color:#6c7086">12:05:44</span> terminalx: pasteboard bridge ok</div><div><span style="color:#6c7086">12:06:20</span> terminalx: window title → "运行测试"</div><div><span style="color:#6c7086">12:06:41</span> terminalx: tmux %window-renamed 0</div><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms</div><div><span style="color:#6c7086">12:03:41</span> terminalx: tmux %layout-change</div><div><span style="color:#6c7086">12:04:02</span> terminalx: <span style="color:#a6e3a1">session dev attached</span></div><div><span style="color:#6c7086">12:04:31</span> terminalx: <span style="color:#f9e2af">link degraded, rtt 210ms</span></div><div><span style="color:#6c7086">12:04:33</span> terminalx: <span style="color:#a6e3a1">mosh resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> terminalx: scrollback trimmed 4k</div><div><span style="color:#6c7086">12:05:44</span> terminalx: pasteboard bridge ok</div><div><span style="color:#6c7086">12:06:20</span> terminalx: window title → "运行测试"</div><div><span style="color:#6c7086">12:06:41</span> terminalx: tmux %window-renamed 0</div><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms</div><div><span style="color:#6c7086">12:03:41</span> terminalx: tmux %layout-change</div><div><span style="color:#6c7086">12:04:02</span> terminalx: <span style="color:#a6e3a1">session dev attached</span></div><div><span style="color:#6c7086">12:04:31</span> terminalx: <span style="color:#f9e2af">link degraded, rtt 210ms</span></div><div><span style="color:#6c7086">12:04:33</span> terminalx: <span style="color:#a6e3a1">mosh resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> terminalx: scrollback trimmed 4k</div><div><span style="color:#6c7086">12:05:44</span> terminalx: pasteboard bridge ok</div><div><span style="color:#6c7086">12:06:20</span> terminalx: window title → "运行测试"</div><div><span style="color:#6c7086">12:06:41</span> terminalx: tmux %window-renamed 0</div><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms</div><div><span style="color:#6c7086">12:03:41</span> terminalx: tmux %layout-change</div><div><span style="color:#6c7086">12:04:02</span> terminalx: <span style="color:#a6e3a1">session dev attached</span></div><div><span style="color:#6c7086">12:04:31</span> terminalx: <span style="color:#f9e2af">link degraded, rtt 210ms</span></div><div><span style="color:#6c7086">12:04:33</span> terminalx: <span style="color:#a6e3a1">mosh resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> terminalx: scrollback trimmed 4k</div><div><span style="color:#6c7086">12:05:44</span> terminalx: pasteboard bridge ok</div><div><span style="color:#6c7086">12:06:20</span> terminalx: window title → "运行测试"<span style="background:#a6adc8;color:#1e1e2e"> </span></div></div></div>
</div>
</div>
<div style="position:absolute;top:14px;right:16px;display:flex;align-items:center;background:rgba(27,29,43,.86);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:11px;padding:5px 6px;box-shadow:0 10px 30px rgba(0,0,0,.55)">
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#b2b6ca"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>tsnet</div>
<div style="width:1px;height:16px;background:#3f424d"></div>
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#b2b6ca">mosh<span style="color:#a6e3a1">41ms</span></div>
<div style="width:1px;height:16px;background:#3f424d"></div>
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#d2cefd">tmux<span>dev</span></div>
</div>
<div style="position:absolute;top:14px;left:16px;display:flex;align-items:center;gap:10px;background:rgba(27,29,43,.9);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:11px;padding:7px 13px 7px 11px;box-shadow:0 10px 30px rgba(0,0,0,.55);">
<div style="display:flex;align-items:center;gap:7px"><div style="width:13px;height:13px;border-radius:7px;background:#ff5f57;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;font:700 8px 'JetBrains Mono',monospace;color:transparent"></div><div style="width:13px;height:13px;border-radius:7px;background:#febc2e;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;font:700 8px 'JetBrains Mono',monospace;color:transparent"></div></div>
<div style="width:1px;height:18px;background:#3f424d"></div>
<span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>
<span style="font:500 12.5px 'JetBrains Mono',monospace;color:#e9e9ed">mac-studio</span>
<span style="font:400 11.5px 'JetBrains Mono',monospace;color:#75798c">运行测试 · ~/src/terminalx</span>
</div>
<div style="height:34px;flex:none;display:flex;align-items:center;gap:16px;padding:0 18px;background:#161826;border-top:1px solid #2c2f3d;font:400 11.5px 'JetBrains Mono',monospace;color:#75798c"><span>竖分屏 · 选择分到哪个会话</span><span style="margin-left:auto;display:flex;gap:14px"><span><b style="color:#b2b6ca">⌘D</b> 竖分</span><span><b style="color:#b2b6ca">⌘⇧D</b> 横分</span><span><b style="color:#b2b6ca">↑↓</b> 移动</span><span><b style="color:#b2b6ca"></b> 立即分屏</span></span></div>
<div style="height:14px;flex:none;display:flex;align-items:center;justify-content:center;background:#161826"><div style="width:200px;height:4px;border-radius:2px;background:#3f424d"></div></div>
<div style="position:absolute;inset:0;background:rgba(10,11,18,.42)"></div>
<div style="position:absolute;left:20px;top:150px;width:360px;background:#1b1d2b;border:1px solid #595d6c;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.7);overflow:hidden">
<div style="padding:12px 14px;border-bottom:1px solid #2c2f3d;display:flex;align-items:center;gap:9px"><span style="color:#b5abfc;font-size:14px"><i class="ph ph-columns"></i></span><span style="font:500 12.5px 'JetBrains Mono',monospace;color:#e9e9ed">竖分屏到…</span><span style="margin-left:auto;font:400 10.5px 'JetBrains Mono',monospace;color:#5d5294">mac-studio</span></div>
<div style="padding:6px">
<div style="padding:6px 12px 4px;font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#5d5294">tmux 会话</div>
<div style="display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:9px;background:#2b2741;">
<span style="width:20px;flex:none;display:flex;align-items:center;justify-content:center"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span></span>
<div style="flex:1;min-width:0"><div style="font:500 13px 'JetBrains Mono',monospace;color:#e9e9ed">dev</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c">运行测试 · 3 windows · 4 panes</div></div>
<span style="font:400 10.5px 'JetBrains Mono',monospace;color:#5d5294">当前</span>
</div>
<div style="display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:9px;">
<span style="width:20px;flex:none;display:flex;align-items:center;justify-content:center"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span></span>
<div style="flex:1;min-width:0"><div style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5">scratch</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c">zsh · 1 window · detached</div></div>
<span style="font:400 10.5px 'JetBrains Mono',monospace;color:#5d5294">3 天前</span>
</div>
<div style="display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:9px;">
<span style="width:20px;flex:none;display:flex;align-items:center;justify-content:center"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span></span>
<div style="flex:1;min-width:0"><div style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5">deploy</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c">部署脚本 · 2 windows · detached</div></div>
<span style="font:400 10.5px 'JetBrains Mono',monospace;color:#5d5294">昨天</span>
</div>
<div style="display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:9px"><span style="width:20px;text-align:center;color:#75798c;font-size:13px"><i class="ph ph-plus"></i></span><div style="flex:1;font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5">新建 tmux 会话…</div></div>
<div style="height:1px;margin:6px 12px;background:#2c2f3d"></div>
<div style="display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:9px"><span style="width:20px;text-align:center;color:#75798c;font-size:13px"><i class="ph ph-terminal-window"></i></span><div style="flex:1;min-width:0"><div style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5">原生窗口</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c">不经 tmux · 关 App 即结束</div></div></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="dv-opt" id="3c">
<div class="dv-olabel"><a class="dv-oid" href="#3c">3c</a><span><b style="color:#e9e9ed;font-weight:500">关闭 / 最小化:红黄两枚圆点</b> 标题胶囊左侧沿用 macOS 语汇:<span style="color:#ff8b85"></span> = 关闭,<span style="color:#ffd479"></span> = 最小化,悬停/触摸才显出符号。黄点<b style="color:#b2b6ca;font-weight:400">不确认</b>直接回首页、会话继续跑卡片置顶标「最小化中」。红点弹一次确认tmux 默认<span style="color:#cfd3e5">仅断开</span>,结束会话是次要按钮;原生窗口的文案换成"前台进程会结束"。</span></div>
<div class="dv-card">
<div data-screen-label="3c 关闭确认" style="width:1366px;height:1024px;background:#11121c;display:flex;position:relative;font-family:'JetBrains Mono',ui-monospace,monospace">
<div style="width:56px;flex:none;background:#1b1d2b;border-right:1px solid #2c2f3d;display:flex;flex-direction:column;align-items:center;padding:28px 0 12px;gap:8px">
<div style="width:34px;height:34px;border-radius:11px;background:#232532;box-shadow:inset 0 0 0 1px #3f424d;display:flex;align-items:center;justify-content:center;font:700 16px 'JetBrains Mono',monospace;color:#b5abfc"></div>
<div style="width:38px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:16px"><i class="ph ph-magnifying-glass"></i></div>
<div style="width:38px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:16px"><i class="ph ph-house"></i></div>
<div style="width:24px;height:1px;background:#2c2f3d;margin:6px 0"></div>
<div style="position:relative;width:38px;height:38px;border-radius:11px;background:#2b2741;box-shadow:inset 0 0 0 1px #5d5294;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#d2cefd">ms<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="position:relative;width:38px;height:38px;border-radius:11px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#9397ab">u2<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="position:relative;width:38px;height:38px;border-radius:11px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#9397ab">nh<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#fab387;box-shadow:0 0 0 2px #1b1d2b"></span></div>
<div style="width:38px;height:38px;border-radius:11px;border:1px dashed #3f424d;display:flex;align-items:center;justify-content:center;font-size:16px;color:#5d5294"><i class="ph ph-plus"></i></div>
<div style="width:24px;height:1px;background:#2c2f3d;margin:8px 0"></div>
<div style="font:600 9px 'JetBrains Mono',monospace;letter-spacing:.1em;color:#5d5294;margin-bottom:2px">TMUX</div>
<div style="width:34px;height:30px;border-radius:9px;background:#232532;box-shadow:inset 0 0 0 1px #4a4d5e;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#e9e9ed">0</div><div style="width:34px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#75798c">1</div><div style="width:34px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#75798c">2</div>
<div style="margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:7px">
<div style="width:8px;height:8px;border-radius:4px;background:#a6e3a1;margin:3px 0"></div>
<div style="width:34px;height:34px;border-radius:10px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;color:#b2b6ca;font-size:13px"><i class="ph ph-caret-double-right"></i></div>
<div style="width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#75798c;font-size:15px"><i class="ph ph-gear-six"></i></div>
</div>
</div>
<div style="flex:1;position:relative;display:flex;flex-direction:column;min-width:0;background:#11121c">
<div style="flex:1;display:flex;flex-direction:column;padding:2px;min-height:0">
<div style="flex:1.7;display:flex;flex-direction:column;background:#1e1e2e;border-radius:8px;outline:1px solid #6c5f9e;min-height:0">
<div style="flex:1;padding:86px 20px 12px;font:400 13.5px/1.55 'JetBrains Mono',monospace;color:#cdd6f4;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git fetch --all --prune</div><div><span style="color:#6c7086">Fetching origin … done</span></div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift build -c release --arch arm64</div><div><span style="color:#6c7086">[142/142] Compiling TXCore</span></div><div><span style="color:#6c7086">[ 8/8 ] Linking TerminalX</span></div><div><span style="color:#a6e3a1">✓ build complete (14.2s)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift test --package-path packages/TXCore</div><div><span style="color:#a6e3a1">◇ Test run started.</span></div><div> <span style="color:#a6e3a1"></span> parses %output escaped octal</div><div> <span style="color:#a6e3a1"></span> layout diff keeps pane identity</div><div> <span style="color:#a6e3a1"></span> DCS passthrough detected</div><div> <span style="color:#a6e3a1"></span> backoff caps at 30s</div><div> <span style="color:#a6e3a1"></span> mosh three-phase resume</div><div><span style="color:#a6e3a1">◇ 50 tests passed after 0.412s</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodegen generate --spec project.yml</div><div><span style="color:#a6e3a1">✅ Created TerminalX.xcodeproj</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git status --short</div><div> <span style="color:#f9e2af">M</span> apps/TerminalX/iOS/RailSidebar.swift</div><div> <span style="color:#f9e2af">M</span> apps/TerminalX/iOS/SessionRouter.swift</div><div><span style="color:#a6e3a1">??</span> docs/ui/home-and-close.md</div><div>&nbsp;</div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> <span style="background:#cdd6f4;color:#1e1e2e"> </span></div></div></div>
</div>
<div style="height:12px;flex:none;display:flex;align-items:center;justify-content:center"><div style="width:44px;height:3px;border-radius:2px;background:#3f424d"></div></div>
<div style="flex:1;display:flex;flex-direction:column;background:#1e1e2e;border-radius:8px;min-height:0">
<div style="height:26px;flex:none;display:flex;align-items:center;padding:0 14px;font:500 11px 'JetBrains Mono',monospace;color:#6c7086">0.1 · 日志 · log stream --style compact<span style="margin-left:auto;color:#585b70">80×17</span></div>
<div style="flex:1;padding:2px 20px 12px;font:400 12px/1.5 'JetBrains Mono',monospace;color:#a6adc8;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms</div><div><span style="color:#6c7086">12:03:41</span> terminalx: tmux %layout-change</div><div><span style="color:#6c7086">12:04:02</span> terminalx: <span style="color:#a6e3a1">session dev attached</span></div><div><span style="color:#6c7086">12:04:31</span> terminalx: <span style="color:#f9e2af">link degraded, rtt 210ms</span></div><div><span style="color:#6c7086">12:04:33</span> terminalx: <span style="color:#a6e3a1">mosh resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> terminalx: scrollback trimmed 4k</div><div><span style="color:#6c7086">12:05:44</span> terminalx: pasteboard bridge ok</div><div><span style="color:#6c7086">12:06:20</span> terminalx: window title → "运行测试"</div><div><span style="color:#6c7086">12:06:41</span> terminalx: tmux %window-renamed 0</div><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms</div><div><span style="color:#6c7086">12:03:41</span> terminalx: tmux %layout-change</div><div><span style="color:#6c7086">12:04:02</span> terminalx: <span style="color:#a6e3a1">session dev attached</span></div><div><span style="color:#6c7086">12:04:31</span> terminalx: <span style="color:#f9e2af">link degraded, rtt 210ms</span></div><div><span style="color:#6c7086">12:04:33</span> terminalx: <span style="color:#a6e3a1">mosh resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> terminalx: scrollback trimmed 4k</div><div><span style="color:#6c7086">12:05:44</span> terminalx: pasteboard bridge ok</div><div><span style="color:#6c7086">12:06:20</span> terminalx: window title → "运行测试"<span style="background:#a6adc8;color:#1e1e2e"> </span></div></div></div>
</div>
</div>
<div style="position:absolute;top:14px;right:16px;display:flex;align-items:center;background:rgba(27,29,43,.86);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:11px;padding:5px 6px;box-shadow:0 10px 30px rgba(0,0,0,.55)">
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#b2b6ca"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>tsnet</div>
<div style="width:1px;height:16px;background:#3f424d"></div>
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#b2b6ca">mosh<span style="color:#a6e3a1">41ms</span></div>
<div style="width:1px;height:16px;background:#3f424d"></div>
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#d2cefd">tmux<span>dev</span></div>
</div>
<div style="position:absolute;top:14px;left:16px;display:flex;align-items:center;gap:10px;background:rgba(27,29,43,.9);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:11px;padding:7px 13px 7px 11px;box-shadow:0 10px 30px rgba(0,0,0,.55);z-index:4;">
<div style="display:flex;align-items:center;gap:7px"><div style="width:13px;height:13px;border-radius:7px;background:#ff5f57;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;font:700 8px 'JetBrains Mono',monospace;color:rgba(0,0,0,.55)"></div><div style="width:13px;height:13px;border-radius:7px;background:#febc2e;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;font:700 8px 'JetBrains Mono',monospace;color:transparent"></div></div>
<div style="width:1px;height:18px;background:#3f424d"></div>
<span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>
<span style="font:500 12.5px 'JetBrains Mono',monospace;color:#e9e9ed">mac-studio</span>
<span style="font:400 11.5px 'JetBrains Mono',monospace;color:#75798c">运行测试 · ~/src/terminalx</span>
</div>
<div style="height:34px;flex:none;display:flex;align-items:center;gap:16px;padding:0 18px;background:#161826;border-top:1px solid #2c2f3d;font:400 11.5px 'JetBrains Mono',monospace;color:#75798c"><span>关闭当前会话 · 等待确认</span><span style="margin-left:auto;display:flex;gap:14px"><span><b style="color:#b2b6ca">⌘W</b> 关闭</span><span><b style="color:#b2b6ca">⌘M</b> 最小化</span><span><b style="color:#b2b6ca"></b> 仅断开</span><span><b style="color:#b2b6ca">esc</b> 取消</span></span></div>
<div style="height:14px;flex:none;display:flex;align-items:center;justify-content:center;background:#161826"><div style="width:200px;height:4px;border-radius:2px;background:#3f424d"></div></div>
<div style="position:absolute;inset:0;background:rgba(10,11,18,.5);z-index:2"></div>
<div style="position:absolute;left:20px;top:62px;width:436px;background:#1b1d2b;border:1px solid #595d6c;border-radius:15px;box-shadow:0 30px 80px rgba(0,0,0,.7);overflow:hidden;z-index:4">
<div style="padding:17px 18px 14px">
<div style="font:500 14.5px 'JetBrains Mono',monospace;color:#e9e9ed;margin-bottom:6px">关闭 mac-studio · dev</div>
<div style="font:400 11.5px/1.65 'JetBrains Mono',monospace;color:#9397ab">tmux 会话3 windows / 4 panes。仅断开后服务端继续跑下次原样接回。</div>
</div>
<div style="padding:0 14px 14px;display:flex;align-items:center;gap:8px">
<span style="font:400 11.5px 'JetBrains Mono',monospace;color:#f5a0ac">结束会话</span>
<div style="margin-left:auto;display:flex;gap:8px">
<span style="padding:7px 14px;border-radius:8px;border:1px solid #3f424d;font:400 12px 'JetBrains Mono',monospace;color:#9397ab">取消</span>
<span style="padding:7px 16px;border-radius:8px;border:1px solid #796cbf;background:rgba(145,132,217,.12);font:500 12px 'JetBrains Mono',monospace;color:#d2cefd">仅断开 ⏎</span>
</div>
</div>
</div>
<div style="position:absolute;left:480px;top:62px;width:404px;background:#1b1d2b;border:1px solid #3f424d;border-radius:15px;box-shadow:0 24px 60px rgba(0,0,0,.6);overflow:hidden;z-index:4">
<div style="padding:10px 15px;border-bottom:1px solid #2c2f3d;display:flex;align-items:center;gap:9px"><span style="padding:2px 8px;border-radius:5px;background:#232532;font:400 10px 'JetBrains Mono',monospace;color:#9397ab">对照</span><span style="font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">原生窗口(无 tmux</span></div>
<div style="padding:15px 16px 14px">
<div style="font:500 13.5px 'JetBrains Mono',monospace;color:#e9e9ed;margin-bottom:6px">关闭 nas-home · 窗口 1</div>
<div style="display:flex;gap:9px;align-items:flex-start"><span style="color:#fab387;font-size:13px;margin-top:1px"><i class="ph ph-warning"></i></span><div style="font:400 11.5px/1.65 'JetBrains Mono',monospace;color:#9397ab">没有 tmux 兜底,<span style="color:#f5c99b">前台进程会随之结束</span>。想留着就点黄点最小化。</div></div>
</div>
<div style="padding:0 16px 14px;display:flex;gap:8px;justify-content:flex-end">
<span style="padding:7px 14px;border-radius:8px;border:1px solid #3f424d;font:400 12px 'JetBrains Mono',monospace;color:#9397ab">取消</span>
<span style="padding:7px 16px;border-radius:8px;border:1px solid #8d5560;background:rgba(92,58,63,.35);font:500 12px 'JetBrains Mono',monospace;color:#f5a0ac">关闭窗口</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="dv-opt" id="3d">
<div class="dv-olabel"><a class="dv-oid" href="#3d">3d</a><span><b style="color:#e9e9ed;font-weight:500">首页 ⇄ 终端:四条路径与返回规则</b> 把两屏之间所有出入口画在一起。<b style="color:#b2b6ca;font-weight:400">进入</b>只有两种(恢复已有会话 / 新建会话),<b style="color:#b2b6ca;font-weight:400">离开</b>有三种(首页键、最小化、关闭),三者都落到同一张落地页——差别只在会话的去向:继续跑 / 后台 detach / 结束。换会话不必回首页,侧边栏里点一下即可。</span></div>
<div class="dv-card">
<div data-screen-label="3d 页面跳转关系" style="width:1366px;height:1024px;background:#11121c;display:flex;flex-direction:column;padding:34px 40px;gap:20px;font-family:'JetBrains Mono',ui-monospace,monospace">
<div>
<h2 style="margin:0 0 4px;font:500 24px 'JetBrains Mono',monospace;letter-spacing:-.02em;color:#e9e9ed">首页(主机管理) ⇄ 终端主界面</h2>
<div style="font:400 12.5px 'JetBrains Mono',monospace;color:#75798c">App 冷启动永远落在首页;终端是"进入某个会话"的结果,不是独立 tab。</div>
</div>
<div style="flex:1;min-height:0;display:flex;gap:18px;align-items:stretch">
<div style="flex:1;min-width:0;background:#161826;border:1px solid #423a6a;border-radius:13px;overflow:hidden;display:flex;flex-direction:column">
<div style="height:32px;flex:none;display:flex;align-items:center;gap:8px;padding:0 13px;border-bottom:1px solid #2c2f3d;background:#1b1d2b"><span style="width:6px;height:6px;border-radius:3px;background:#968ae0"></span><span style="font:500 12px 'JetBrains Mono',monospace;color:#e9e9ed">首页 · 主机管理(落地页)</span></div>
<div style="flex:1;padding:12px 13px;display:flex;flex-direction:column;gap:8px"><div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:9px;padding:9px 11px"><div style="font:500 11.5px 'JetBrains Mono',monospace;color:#cfd3e5;margin-bottom:3px">活动会话(最上排)</div><div style="font:400 10.5px/1.5 'JetBrains Mono',monospace;color:#75798c">三张缩略卡:前台运行 / 后台 detach / 重连中,点卡片即进终端</div></div><div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:9px;padding:9px 11px"><div style="font:500 11.5px 'JetBrains Mono',monospace;color:#cfd3e5;margin-bottom:3px">全部主机(下排)</div><div style="font:400 10.5px/1.5 'JetBrains Mono',monospace;color:#75798c">点主机 → 若有会话则列出可接管的,否则直接新建</div></div><div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:9px;padding:9px 11px"><div style="font:500 11.5px 'JetBrains Mono',monospace;color:#cfd3e5;margin-bottom:3px">从最小化回来</div><div style="font:400 10.5px/1.5 'JetBrains Mono',monospace;color:#75798c">卡片右上角标「最小化中」,点一下瞬间恢复,光标位置不变</div></div><div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:9px;padding:9px 11px"><div style="font:500 11.5px 'JetBrains Mono',monospace;color:#cfd3e5;margin-bottom:3px">冷启动 / ⌘⇧H</div><div style="font:400 10.5px/1.5 'JetBrains Mono',monospace;color:#75798c">都停在这里,不自动进任何会话</div></div></div>
</div>
<div style="width:300px;flex:none;display:flex;flex-direction:column;gap:9px;justify-content:center">
<div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#75798c;padding-left:2px">进入终端</div>
<div style="display:flex;align-items:flex-start;gap:11px;padding:11px 13px;background:#1b1d2b;border:1px solid #423a6a;border-radius:10px">
<span style="font-size:15px;color:#b5abfc;margin-top:1px"><i class="ph ph-arrow-right"></i></span>
<div style="flex:1"><div style="font:500 12px 'JetBrains Mono',monospace;color:#e9e9ed;margin-bottom:3px">恢复已有会话</div><div style="font:400 10.5px/1.55 'JetBrains Mono',monospace;color:#9397ab">点活动会话卡 / 主机下的会话行 → 直接进终端,恢复到上一个焦点 pane</div></div>
</div>
<div style="display:flex;align-items:flex-start;gap:11px;padding:11px 13px;background:#1b1d2b;border:1px solid #423a6a;border-radius:10px">
<span style="font-size:15px;color:#b5abfc;margin-top:1px"><i class="ph ph-arrow-right"></i></span>
<div style="flex:1"><div style="font:500 12px 'JetBrains Mono',monospace;color:#e9e9ed;margin-bottom:3px">新建会话</div><div style="font:400 10.5px/1.55 'JetBrains Mono',monospace;color:#9397ab">点「新建连接」或主机上的 + → 建好即进终端,侧边栏同步出现该会话</div></div>
</div>
<div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#75798c;padding-left:2px;margin-top:6px">离开终端</div>
<div style="display:flex;align-items:flex-start;gap:11px;padding:11px 13px;background:#1b1d2b;border:1px solid #2c2f3d;border-radius:10px">
<span style="font-size:15px;color:#75798c;margin-top:1px"><i class="ph ph-arrow-left"></i></span>
<div style="flex:1"><div style="font:500 12px 'JetBrains Mono',monospace;color:#e9e9ed;margin-bottom:3px">首页键(侧边栏第一行)</div><div style="font:400 10.5px/1.55 'JetBrains Mono',monospace;color:#9397ab">会话完全不动,随时切回;用于"去看看别的主机"</div></div>
</div>
<div style="display:flex;align-items:flex-start;gap:11px;padding:11px 13px;background:#1b1d2b;border:1px solid #2c2f3d;border-radius:10px">
<span style="font-size:15px;color:#75798c;margin-top:1px"><i class="ph ph-arrow-left"></i></span>
<div style="flex:1"><div style="font:500 12px 'JetBrains Mono',monospace;color:#e9e9ed;margin-bottom:3px">最小化(黄点)</div><div style="font:400 10.5px/1.55 'JetBrains Mono',monospace;color:#9397ab">等同首页键,但明确表达"我待会儿还回来",卡片置顶并标记</div></div>
</div>
<div style="display:flex;align-items:flex-start;gap:11px;padding:11px 13px;background:#1b1d2b;border:1px solid #5c4a35;border-radius:10px">
<span style="font-size:15px;color:#fab387;margin-top:1px"><i class="ph ph-arrow-left"></i></span>
<div style="flex:1"><div style="font:500 12px 'JetBrains Mono',monospace;color:#e9e9ed;margin-bottom:3px">关闭(红点)· 二次确认</div><div style="font:400 10.5px/1.55 'JetBrains Mono',monospace;color:#9397ab">tmux 默认 detach后台跑原生窗口会结束进程文案单独写</div></div>
</div>
</div>
<div style="flex:1;min-width:0;background:#161826;border:1px solid #2c2f3d;border-radius:13px;overflow:hidden;display:flex;flex-direction:column">
<div style="height:32px;flex:none;display:flex;align-items:center;gap:8px;padding:0 13px;border-bottom:1px solid #2c2f3d;background:#1b1d2b"><span style="width:6px;height:6px;border-radius:3px;background:#75798c"></span><span style="font:500 12px 'JetBrains Mono',monospace;color:#e9e9ed">终端主界面 · 沉浸轨道</span></div>
<div style="flex:1;padding:12px 13px;display:flex;flex-direction:column;gap:8px"><div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:9px;padding:9px 11px"><div style="font:500 11.5px 'JetBrains Mono',monospace;color:#cfd3e5;margin-bottom:3px">侧边栏第一行:首页</div><div style="font:400 10.5px/1.5 'JetBrains Mono',monospace;color:#75798c">折叠态显示为图标展开态显示完整标题同一条栏、同一个位置⌘⇧H 随时可用</div></div><div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:9px;padding:9px 11px"><div style="font:500 11.5px 'JetBrains Mono',monospace;color:#cfd3e5;margin-bottom:3px">标题胶囊左侧:红点 / 黄点</div><div style="font:400 10.5px/1.5 'JetBrains Mono',monospace;color:#75798c">红点关闭需二次确认后回首页;黄点最小化不确认,直接回首页、会话继续</div></div><div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:9px;padding:9px 11px"><div style="font:500 11.5px 'JetBrains Mono',monospace;color:#cfd3e5;margin-bottom:3px">活动会话就在侧边栏</div><div style="font:400 10.5px/1.5 'JetBrains Mono',monospace;color:#75798c">切会话不必回首页,回首页是"换任务"而不是"切窗口"</div></div><div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:9px;padding:9px 11px"><div style="font:500 11.5px 'JetBrains Mono',monospace;color:#cfd3e5;margin-bottom:3px">Pin 后常驻</div><div style="font:400 10.5px/1.5 'JetBrains Mono',monospace;color:#75798c">侧边栏钉在左侧时,切会话与看终端可同时进行,无需任何中间层</div></div></div>
</div>
</div>
<div style="flex:none;display:flex;gap:14px">
<div style="flex:1;background:#1b1d2b;border:1px solid #2c2f3d;border-radius:11px;padding:13px 15px;display:flex;gap:11px">
<span style="color:#b5abfc;font-size:14px;margin-top:1px"><i class="ph ph-lightbulb"></i></span>
<div style="font:400 11.5px/1.65 'JetBrains Mono',monospace;color:#9397ab"><b style="color:#e9e9ed;font-weight:500">建议一:</b>"最小化"在 iPad 上没有 Dock 承接,容易被理解成"藏起来找不到了"。仍保留这枚按钮,但把落点讲清楚——回到首页后该卡片<span style="color:#cfd3e5">置顶并标记「最小化中」</span>,动画从终端缩回卡片,用户就知道东西去哪了。</div>
</div>
<div style="flex:1;background:#1b1d2b;border:1px solid #2c2f3d;border-radius:11px;padding:13px 15px;display:flex;gap:11px">
<span style="color:#b5abfc;font-size:14px;margin-top:1px"><i class="ph ph-lightbulb"></i></span>
<div style="font:400 11.5px/1.65 'JetBrains Mono',monospace;color:#9397ab"><b style="color:#e9e9ed;font-weight:500">建议二:</b>"关闭"对 tmux 与原生窗口的后果完全不同别用同一句确认。tmux 默认 <span style="color:#cfd3e5">detach 而非 kill</span>,把 kill 放在第二项;原生窗口则明说"进程会结束"。另外给最小化配下滑手势、关闭配 ⌘W二次确认支持 ⏎ 直接选推荐项。</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="dv-turn" id="t2">
<div class="dv-thd"><a class="dv-tid" href="#t2">2</a><span class="dv-tname">沉浸轨道深化 · 无 tmux 主机 / 竖屏降级(跨主机分屏、浮层侧边栏、会话总览三稿已作废)</span></div>
<div style="max-width:1180px;margin:0 0 34px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px">
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:16px 18px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:9px">展开策略(已更新)</div><div style="font:400 12px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">原「浮层压在轨道旁」的方案已作废会出现两套入口。现行方案遮罩态面板盖住轨道Pin 后才推挤终端。见第 3 轮 <a class="dv-oid" href="#3a">3a</a></div></div>
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:16px 18px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:9px">分屏模型(已更新)</div><div style="font:400 12px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">跨主机分屏已取消分屏只在同一台主机内tmux pane 由服务端持有、断线保持;原生窗口不经 tmux。新建交互见第 3 轮 <a class="dv-oid" href="#3b">3b</a></div></div>
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:16px 18px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:9px">无 tmux 主机</div><div style="font:400 12px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">轨道隐藏 TMUX 段,换成客户端「窗口」段;胶囊第三格写"无 tmux"。可随时新建与 tmux 无关的窗口。见 <a class="dv-oid" href="#2c">2c</a></div></div>
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:16px 18px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:9px">竖屏降级</div><div style="font:400 12px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">iPad 竖屏:轨道 48ptpane 改上下堆叠最多两层多余折成段控。iPhone轨道下沉为底部主机条单 pane + 轻扫。见 <a class="dv-oid" href="#2d">2d</a></div></div>
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:16px 18px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:9px">会话总览(已取消)</div><div style="font:400 12px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">「⌘O 缩放成卡片」的总览层已去掉,轨道底部相应按钮也移除。切会话直接用侧边栏,换任务用「首页」。跳转关系见第 3 轮 <a class="dv-oid" href="#3d">3d</a></div></div>
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:16px 18px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:9px">保持不变</div><div style="font:400 12px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">状态徽标顺序tsnet → mosh RTT → tmux/窗口、Nocturne chrome + Catppuccin 终端、硬件键盘时附加行自动收起——五张新稿全部沿用。</div></div>
</div>
<div class="dv-opts">
<div class="dv-opt" id="2c">
<div class="dv-olabel"><a class="dv-oid" href="#2c">2c</a><span><b style="color:#e9e9ed;font-weight:500">主机没有 tmux轨道收起 TMUX 段</b> 轨道下半段不再显示 tmux window 数字条,改为客户端「窗口」段(每个窗口 = 一条独立 SSH channel / mosh 会话),可随意新建。状态胶囊第三格显示「无 tmux」而不是报错。若探测到装了 tmux 但没会话,才在终端顶部给一条可忽略的行内提示——不弹窗、不强推。</span></div>
<div class="dv-card">
<div data-screen-label="2c 无 tmux 主机" style="width:1366px;height:1024px;background:#11121c;display:flex;font-family:'JetBrains Mono',ui-monospace,monospace">
<div style="width:56px;flex:none;background:#1b1d2b;border-right:1px solid #2c2f3d;display:flex;flex-direction:column;align-items:center;padding:28px 0 12px;gap:8px">
<div style="width:34px;height:34px;border-radius:11px;background:#232532;box-shadow:inset 0 0 0 1px #3f424d;display:flex;align-items:center;justify-content:center;font:700 16px 'JetBrains Mono',monospace;color:#b5abfc"></div>
<div style="width:38px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:16px"><i class="ph ph-magnifying-glass"></i></div>
<div style="width:38px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:16px"><i class="ph ph-house"></i></div>
<div style="width:24px;height:1px;background:#2c2f3d;margin:6px 0"></div>
<div style="position:relative;width:38px;height:38px;border-radius:11px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#9397ab">ms<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="position:relative;width:38px;height:38px;border-radius:11px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#9397ab">u2<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="position:relative;width:38px;height:38px;border-radius:11px;background:#2b2741;box-shadow:inset 0 0 0 1px #5d5294;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#d2cefd">nh<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#fab387;box-shadow:0 0 0 2px #1b1d2b"></span></div>
<div style="width:38px;height:38px;border-radius:11px;border:1px dashed #3f424d;display:flex;align-items:center;justify-content:center;font-size:16px;color:#5d5294"><i class="ph ph-plus"></i></div>
<div style="width:24px;height:1px;background:#2c2f3d;margin:8px 0"></div>
<div style="font:600 9px 'JetBrains Mono',monospace;letter-spacing:.1em;color:#5d5294;margin-bottom:2px">窗口</div><div style="width:34px;height:30px;border-radius:9px;background:#232532;box-shadow:inset 0 0 0 1px #4a4d5e;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#e9e9ed">1</div><div style="width:34px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#75798c">2</div><div style="width:34px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#4a4d5e;font-size:13px"><i class="ph ph-plus"></i></div>
<div style="margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:7px">
<div style="width:8px;height:8px;border-radius:4px;background:#a6e3a1;margin:3px 0"></div>
<div style="width:34px;height:34px;border-radius:10px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;color:#b2b6ca;font-size:13px"><i class="ph ph-caret-double-right"></i></div>
<div style="width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#75798c;font-size:15px"><i class="ph ph-gear-six"></i></div>
</div>
</div>
<div style="flex:1;position:relative;display:flex;flex-direction:column;min-width:0">
<div style="flex:1;display:flex;flex-direction:column;padding:2px;min-height:0">
<div style="flex:1;display:flex;flex-direction:column;background:#1e1e2e;border-radius:8px;outline:1px solid #6c5f9e;min-height:0">
<div style="flex:1;padding:122px 20px 12px;font:400 13.5px/1.55 'JetBrains Mono',monospace;color:#cdd6f4;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> zfs get compressratio tank</div><div><span style="color:#6c7086">tank compressratio 1.34x</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> docker stats --no-stream | head -3</div><div><span style="color:#6c7086">NAME CPU % MEM USAGE</span></div><div><span style="color:#6c7086">plex 4.10% 1.21GiB</span></div><div><span style="color:#6c7086">syncthing 0.80% 312MiB</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> zfs get compressratio tank</div><div><span style="color:#6c7086">tank compressratio 1.34x</span></div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> uname -sr</div><div><span style="color:#6c7086">Linux 6.12.9-truenas</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> docker ps --format 'table <span>{</span>{.Names}}'</div><div><span style="color:#6c7086">NAMES STATUS</span></div><div><span style="color:#6c7086">plex Up 6 days</span></div><div><span style="color:#6c7086">syncthing Up 6 days</span></div><div><span style="color:#6c7086">caddy Up 12 hours</span></div><div><span style="color:#6c7086">postgres Up 6 days (healthy)</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> zpool status -x</div><div><span style="color:#6c7086"> all pools are healthy</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> df -h /tank</div><div><span style="color:#6c7086">Filesystem Size Used Avail Use%</span></div><div><span style="color:#6c7086">tank 18T 11T 7.0T 62%</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> zfs list -t snapshot | tail -3</div><div><span style="color:#6c7086">tank/photos@auto-2026-07-24 1.2G</span></div><div><span style="color:#6c7086">tank/docs@auto-2026-07-24 84M</span></div><div><span style="color:#6c7086">tank/vm@auto-2026-07-24 3.4G</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> tail -4 /var/log/syncthing.log</div><div><span style="color:#6c7086"> folder "photos" sync complete</span></div><div><span style="color:#6c7086"> folder "docs" idle</span></div><div><span style="color:#6c7086"> puller: 0 conflicts</span></div><div><span style="color:#6c7086"> scanner: 12,418 files ok</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> smbstatus --shares | head -3</div><div><span style="color:#6c7086">Service pid Machine</span></div><div><span style="color:#6c7086">media 4412 100.92.14.7</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> uptime</div><div><span style="color:#6c7086"> 12:08:03 up 41 days, 3:22, 1 user</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> uname -sr</div><div><span style="color:#6c7086">Linux 6.12.9-truenas</span></div><div>&nbsp;</div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> <span style="background:#cdd6f4;color:#1e1e2e"> </span></div></div></div>
</div>
</div>
<div style="position:absolute;top:62px;left:16px;right:16px;display:flex;align-items:center;gap:11px;background:rgba(35,37,50,.92);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:10px;padding:9px 13px">
<span style="color:#b5abfc;font-size:13px"><i class="ph ph-info"></i></span>
<div style="flex:1;font:400 11.5px 'JetBrains Mono',monospace;color:#9397ab">这台主机上没有 tmux。窗口由 terminalX 客户端维持mosh 负责断线续传;<span style="color:#cfd3e5">但关掉 App 后不会像 tmux 那样在服务端继续跑</span></div>
<div style="padding:5px 12px;border-radius:7px;border:1px solid #796cbf;font:500 11.5px 'JetBrains Mono',monospace;color:#b5abfc">安装并启用 tmux</div>
<span style="color:#5d5294;font-size:13px"><i class="ph ph-x"></i></span>
</div>
<div style="position:absolute;top:14px;right:16px;display:flex;align-items:center;background:rgba(27,29,43,.86);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:11px;padding:5px 6px;box-shadow:0 10px 30px rgba(0,0,0,.55)">
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#b2b6ca"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>tsnet</div>
<div style="width:1px;height:16px;background:#3f424d"></div>
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#b2b6ca">mosh<span style="color:#a6e3a1">88ms</span></div>
<div style="width:1px;height:16px;background:#3f424d"></div>
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#75798c">无 tmux · 客户端窗口</div>
</div>
<div style="position:absolute;top:14px;left:16px;display:flex;align-items:center;gap:9px;background:rgba(27,29,43,.86);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:11px;padding:6px 12px;box-shadow:0 10px 30px rgba(0,0,0,.55)"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span><span style="font:500 12.5px 'JetBrains Mono',monospace;color:#e9e9ed">nas-home</span><span style="font:400 11.5px 'JetBrains Mono',monospace;color:#75798c">~ · 窗口 1 / 2 · 132×46</span></div>
<div style="height:34px;flex:none;display:flex;align-items:center;gap:16px;padding:0 18px;background:#161826;border-top:1px solid #2c2f3d;font:400 11.5px 'JetBrains Mono',monospace;color:#75798c"><span>客户端窗口模式 · 每个窗口一条独立通道</span><span style="margin-left:auto;display:flex;gap:14px"><span><b style="color:#b2b6ca">⌘T</b> 新建窗口</span><span><b style="color:#b2b6ca">⌘1…9</b> 切窗口</span><span><b style="color:#b2b6ca">⌘W</b> 关闭窗口</span><span><b style="color:#b2b6ca">⌘K</b> 命令面板</span></span></div>
<div style="height:14px;flex:none;display:flex;align-items:center;justify-content:center;background:#161826"><div style="width:200px;height:4px;border-radius:2px;background:#3f424d"></div></div>
</div>
</div>
</div>
</div>
<div class="dv-opt" id="2d">
<div class="dv-olabel"><a class="dv-oid" href="#2d">2d</a><span><b style="color:#e9e9ed;font-weight:500">竖屏 iPad 与 iPhone</b> 竖屏宽度不够并排,规则改为:轨道保留但降到 48pt拇指可达的左缘<b style="color:#b2b6ca;font-weight:400">pane 由左右平铺改为上下堆叠</b>,最多两层,第三个 pane 折成顶部段控。状态胶囊压缩成一枚。iPhone 再降一级:轨道变成底部主机条,单 pane 全屏pane 之间左右轻扫,下拉标题打开会话列表。</span></div>
<div style="display:flex;gap:22px;align-items:flex-start">
<div class="dv-card" style="width:1024px">
<div data-screen-label="2d iPad 竖屏" style="width:1024px;height:1366px;background:#11121c;display:flex;font-family:'JetBrains Mono',ui-monospace,monospace">
<div style="width:48px;flex:none;background:#1b1d2b;border-right:1px solid #2c2f3d;display:flex;flex-direction:column;align-items:center;padding:22px 0 10px;gap:7px">
<div style="width:30px;height:30px;border-radius:10px;background:#232532;box-shadow:inset 0 0 0 1px #3f424d;display:flex;align-items:center;justify-content:center;font:700 14px 'JetBrains Mono',monospace;color:#b5abfc"></div>
<div style="width:34px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:15px"><i class="ph ph-magnifying-glass"></i></div>
<div style="width:34px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:15px"><i class="ph ph-house"></i></div>
<div style="width:20px;height:1px;background:#2c2f3d;margin:4px 0"></div>
<div style="position:relative;width:34px;height:34px;border-radius:10px;background:#2b2741;box-shadow:inset 0 0 0 1px #5d5294;display:flex;align-items:center;justify-content:center;font:600 12px 'JetBrains Mono',monospace;color:#d2cefd">ms<span style="position:absolute;right:-1px;top:-1px;width:7px;height:7px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div>
<div style="position:relative;width:34px;height:34px;border-radius:10px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 12px 'JetBrains Mono',monospace;color:#9397ab">u2<span style="position:absolute;right:-1px;top:-1px;width:7px;height:7px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div>
<div style="position:relative;width:34px;height:34px;border-radius:10px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 12px 'JetBrains Mono',monospace;color:#9397ab">nh<span style="position:absolute;right:-1px;top:-1px;width:7px;height:7px;border-radius:4px;background:#fab387;box-shadow:0 0 0 2px #1b1d2b"></span></div>
<div style="width:20px;height:1px;background:#2c2f3d;margin:5px 0"></div>
<div style="width:30px;height:26px;border-radius:8px;background:#232532;box-shadow:inset 0 0 0 1px #4a4d5e;display:flex;align-items:center;justify-content:center;font:500 11px 'JetBrains Mono',monospace;color:#e9e9ed">0</div>
<div style="width:30px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;font:500 11px 'JetBrains Mono',monospace;color:#75798c">1</div>
<div style="margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:8px"><div style="width:30px;height:30px;border-radius:9px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;color:#b2b6ca;font-size:12px"><i class="ph ph-caret-double-right"></i></div><div style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></div><div style="width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#75798c;font-size:14px"><i class="ph ph-gear-six"></i></div></div>
</div>
<div style="flex:1;position:relative;display:flex;flex-direction:column;min-width:0">
<div style="flex:1;display:flex;flex-direction:column;padding:2px;min-height:0">
<div style="flex:1.35;display:flex;flex-direction:column;background:#1e1e2e;border-radius:8px;outline:1px solid #6c5f9e;min-height:0">
<div style="flex:1;padding:58px 16px 10px;font:400 12.5px/1.55 'JetBrains Mono',monospace;color:#cdd6f4;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git fetch --all --prune</div><div><span style="color:#6c7086">Fetching origin … done</span></div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swiftformat --lint Sources</div><div><span style="color:#a6e3a1">✓ 0 issues in 84 files</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodebuild -showsdks | head -2</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift build -c release --arch arm64</div><div><span style="color:#6c7086">[142/142] Compiling TXCore</span></div><div><span style="color:#6c7086">[ 8/8 ] Linking TerminalX</span></div><div><span style="color:#a6e3a1">✓ build complete (14.2s)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift test --package-path packages/TXCore</div><div><span style="color:#a6e3a1">◇ Test run started.</span></div><div><span style="color:#6c7086">↳ Suite "tmux control mode"</span></div><div> <span style="color:#a6e3a1"></span> parses %output escaped octal</div><div> <span style="color:#a6e3a1"></span> layout diff keeps pane identity</div><div> <span style="color:#a6e3a1"></span> DCS passthrough detected</div><div> <span style="color:#a6e3a1"></span> %window-add spawns pane tree</div><div><span style="color:#6c7086">↳ Suite "SessionMachine"</span></div><div> <span style="color:#a6e3a1"></span> backoff caps at 30s</div><div> <span style="color:#a6e3a1"></span> mosh three-phase resume</div><div> <span style="color:#a6e3a1"></span> host-key pin survives wipe</div><div><span style="color:#a6e3a1">◇ 50 tests passed after 0.412s</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodegen generate --spec project.yml</div><div><span style="color:#a6e3a1">✅ Created TerminalX.xcodeproj</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcrun simctl list devices booted</div><div><span style="color:#6c7086">-- iOS 26.2 --</span></div><div><span style="color:#6c7086"> iPad Pro 13-inch (M4) (Booted)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git pull --rebase</div><div><span style="color:#6c7086">From tsnet:athom/terminalx main</span></div><div><span style="color:#a6e3a1">Successfully rebased onto main.</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git status --short</div><div> <span style="color:#f9e2af">M</span> apps/TerminalX/iOS/ContentView.swift</div><div> <span style="color:#f9e2af">M</span> apps/TerminalX/iOS/Theme.swift</div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> <span style="background:#cdd6f4;color:#1e1e2e"> </span></div></div></div>
</div>
<div style="height:12px;flex:none;display:flex;align-items:center;justify-content:center"><div style="width:40px;height:3px;border-radius:2px;background:#3f424d"></div></div>
<div style="flex:1;display:flex;flex-direction:column;background:#1e1e2e;border-radius:8px;min-height:0">
<div style="height:24px;flex:none;display:flex;align-items:center;gap:8px;padding:0 12px;font:500 10.5px 'JetBrains Mono',monospace;color:#6c7086">0.1 · log stream --style compact<span style="margin-left:auto;color:#585b70">2/3 pane · 第 3 个已折叠</span></div>
<div style="flex:1;padding:2px 16px 10px;font:400 11px/1.5 'JetBrains Mono',monospace;color:#a6adc8;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#6c7086">12:02:31</span> terminalx: tsnet peer refresh (7)</div><div><span style="color:#6c7086">12:02:58</span> terminalx: mosh heartbeat 38ms</div><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms</div><div><span style="color:#6c7086">12:03:41</span> terminalx: tmux %layout-change</div><div><span style="color:#6c7086">12:04:02</span> terminalx: <span style="color:#a6e3a1">session dev attached</span></div><div><span style="color:#6c7086">12:04:31</span> terminalx: <span style="color:#f9e2af">link degraded, rtt 210ms</span></div><div><span style="color:#6c7086">12:04:33</span> terminalx: <span style="color:#a6e3a1">mosh resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> terminalx: scrollback trimmed 4k</div><div><span style="color:#6c7086">12:05:44</span> terminalx: pasteboard bridge ok</div><div><span style="color:#6c7086">12:06:02</span> terminalx: ghostty frame 16.4ms</div><div><span style="color:#6c7086">12:06:20</span> terminalx: tsnet peer nas-home <span style="color:#f9e2af">down</span></div><div><span style="color:#6c7086">12:06:41</span> terminalx: retry scheduled in 8s</div><div><span style="color:#6c7086">12:07:03</span> terminalx: tmux %window-add 3</div><div><span style="color:#6c7086">12:01:02</span> terminalx: tmux %output window 0</div><div><span style="color:#6c7086">12:01:19</span> terminalx: mosh heartbeat 41ms</div><div><span style="color:#6c7086">12:01:44</span> terminalx: pane 0.1 resized 60x18</div><div><span style="color:#6c7086">12:02:03</span> terminalx: keychain read host-key</div><div><span style="color:#6c7086">12:02:31</span> terminalx: tsnet peer refresh (7)</div><div><span style="color:#6c7086">12:02:58</span> terminalx: mosh heartbeat 38ms</div><div><span style="color:#6c7086">12:03:12</span> terminalx: ghostty frame 16.7ms</div><div><span style="color:#6c7086">12:03:41</span> terminalx: tmux %layout-change</div><div><span style="color:#6c7086">12:04:02</span> terminalx: <span style="color:#a6e3a1">session dev attached</span></div><div><span style="color:#6c7086">12:04:31</span> terminalx: <span style="color:#f9e2af">link degraded, rtt 210ms</span></div><div><span style="color:#6c7086">12:04:33</span> terminalx: <span style="color:#a6e3a1">mosh resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> terminalx: scrollback trimmed 4k</div><div><span style="color:#6c7086">12:05:44</span> terminalx: pasteboard bridge ok</div><div><span style="color:#6c7086">12:06:02</span> terminalx: ghostty frame 16.4ms</div><div><span style="color:#6c7086">12:06:20</span> terminalx: tsnet peer nas-home <span style="color:#f9e2af">down</span></div><div><span style="color:#6c7086">12:06:41</span> terminalx: retry scheduled in 8s</div><div><span style="color:#6c7086">12:07:03</span> terminalx: tmux %window-add 3<span style="background:#a6adc8;color:#1e1e2e"> </span></div></div></div>
</div>
</div>
<div style="position:absolute;top:12px;left:12px;right:12px;display:flex;align-items:center;gap:8px">
<div style="display:flex;align-items:center;gap:8px;background:rgba(27,29,43,.88);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:10px;padding:5px 11px;font:500 11.5px 'JetBrains Mono',monospace;color:#e9e9ed"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>mac-studio<span style="font-weight:400;color:#75798c">dev</span></div>
<div style="margin-left:auto;display:flex;align-items:center;gap:6px;background:rgba(27,29,43,.88);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:10px;padding:5px 11px;font:500 11.5px 'JetBrains Mono',monospace;color:#b2b6ca"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>41ms</div>
</div>
<div style="flex:none;background:#1b1d2b;border-top:1px solid #2c2f3d;padding:8px 10px;display:flex;gap:6px">
<div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">esc</div><div style="flex:1;height:38px;border-radius:8px;background:#2b2741;box-shadow:inset 0 0 0 1px #423a6a;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#d2cefd">ctrl</div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">tab</div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">~</div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">/</div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">|</div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5"></div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5"></div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5"></div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5"></div>
</div>
<div style="height:20px;flex:none;display:flex;align-items:center;justify-content:center;background:#1b1d2b"><div style="width:160px;height:4px;border-radius:2px;background:#4a4d5e"></div></div>
</div>
</div>
</div>
<div class="dv-card" style="border-radius:38px;width:393px">
<div data-screen-label="2d iPhone 竖屏" style="width:393px;height:852px;background:#161826;display:flex;flex-direction:column;font-family:'JetBrains Mono',ui-monospace,monospace">
<div style="height:54px;flex:none;display:flex;align-items:flex-end;justify-content:space-between;padding:0 26px 8px;font:600 13px 'JetBrains Mono',monospace;color:#e9e9ed"><span>9:41</span><span style="display:flex;gap:5px;font-size:11px;color:#b2b6ca"><i class="ph ph-wifi-high"></i> <i class="ph ph-battery-high"></i> 78%</span></div>
<div style="height:40px;flex:none;display:flex;align-items:center;gap:9px;padding:0 14px;border-bottom:1px solid #2c2f3d">
<span style="color:#b5abfc;font-size:15px"><i class="ph ph-caret-down"></i></span>
<div style="flex:1;min-width:0"><div style="font:500 13.5px 'JetBrains Mono',monospace;color:#e9e9ed">mac-studio · dev</div></div>
<div style="display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:6px;background:#232532;border:1px solid #3f424d;font:500 11px 'JetBrains Mono',monospace;color:#b2b6ca"><span style="width:5px;height:5px;border-radius:3px;background:#a6e3a1"></span>41ms</div>
</div>
<div style="height:26px;flex:none;display:flex;align-items:center;gap:5px;padding:0 12px;background:#1b1d2b"><span style="width:16px;height:5px;border-radius:3px;background:#968ae0"></span><span style="width:16px;height:5px;border-radius:3px;background:#3f424d"></span><span style="width:16px;height:5px;border-radius:3px;background:#3f424d"></span><span style="margin-left:auto;font:400 10px 'JetBrains Mono',monospace;color:#5d5294">左右轻扫切 pane</span></div>
<div style="flex:1;min-height:0;background:#1e1e2e;padding:10px 12px;font:400 11.5px/1.5 'JetBrains Mono',monospace;color:#cdd6f4;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git fetch --all --prune</div><div><span style="color:#6c7086">Fetching origin … done</span></div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swiftformat --lint Sources</div><div><span style="color:#a6e3a1">✓ 0 issues in 84 files</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodebuild -showsdks | head -2</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift build -c release --arch arm64</div><div><span style="color:#6c7086">[142/142] Compiling TXCore</span></div><div><span style="color:#6c7086">[ 8/8 ] Linking TerminalX</span></div><div><span style="color:#a6e3a1">✓ build complete (14.2s)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift test --package-path packages/TXCore</div><div><span style="color:#a6e3a1">◇ Test run started.</span></div><div><span style="color:#6c7086">↳ Suite "tmux control mode"</span></div><div> <span style="color:#a6e3a1"></span> parses %output escaped octal</div><div> <span style="color:#a6e3a1"></span> layout diff keeps pane identity</div><div> <span style="color:#a6e3a1"></span> DCS passthrough detected</div><div> <span style="color:#a6e3a1"></span> %window-add spawns pane tree</div><div><span style="color:#6c7086">↳ Suite "SessionMachine"</span></div><div> <span style="color:#a6e3a1"></span> backoff caps at 30s</div><div> <span style="color:#a6e3a1"></span> mosh three-phase resume</div><div> <span style="color:#a6e3a1"></span> host-key pin survives wipe</div><div><span style="color:#a6e3a1">◇ 50 tests passed after 0.412s</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodegen generate --spec project.yml</div><div><span style="color:#a6e3a1">✅ Created TerminalX.xcodeproj</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcrun simctl list devices booted</div><div><span style="color:#6c7086">-- iOS 26.2 --</span></div><div><span style="color:#6c7086"> iPad Pro 13-inch (M4) (Booted)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git pull --rebase</div><div><span style="color:#6c7086">From tsnet:athom/terminalx main</span></div><div><span style="color:#a6e3a1">Successfully rebased onto main.</span></div><div>&nbsp;</div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> <span style="background:#cdd6f4;color:#1e1e2e"> </span></div></div></div>
<div style="flex:none;background:#1b1d2b;border-top:1px solid #2c2f3d;padding:8px 10px;display:flex;flex-direction:column;gap:6px">
<div style="display:flex;gap:6px"><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">esc</div><div style="flex:1;height:38px;border-radius:8px;background:#2b2741;box-shadow:inset 0 0 0 1px #423a6a;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#d2cefd">ctrl</div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">tab</div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">~</div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">/</div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">|</div></div>
<div style="display:flex;gap:6px"><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5"></div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5"></div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5"></div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5"></div><div style="flex:1.6;height:38px;border-radius:8px;border:1px solid #796cbf;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#b5abfc">⌘K</div></div>
</div>
<div style="height:52px;flex:none;display:flex;align-items:center;gap:8px;padding:0 14px;background:#161826;border-top:1px solid #2c2f3d">
<div style="display:flex;align-items:center;gap:7px;padding:5px 10px;border-radius:9px;background:#2b2741;box-shadow:inset 0 0 0 1px #423a6a;font:500 11.5px 'JetBrains Mono',monospace;color:#d2cefd"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>ms</div>
<div style="display:flex;align-items:center;gap:7px;padding:5px 10px;border-radius:9px;background:#232532;font:400 11.5px 'JetBrains Mono',monospace;color:#9397ab"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>u2</div>
<div style="display:flex;align-items:center;gap:7px;padding:5px 10px;border-radius:9px;background:#232532;font:400 11.5px 'JetBrains Mono',monospace;color:#9397ab"><span style="width:6px;height:6px;border-radius:3px;background:#fab387"></span>nh</div>
</div>
<div style="height:22px;flex:none;display:flex;align-items:center;justify-content:center"><div style="width:140px;height:5px;border-radius:3px;background:#4a4d5e"></div></div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="dv-turn" id="t1">
<div class="dv-thd"><a class="dv-tid" href="#t1">1</a><span class="dv-tname">terminalX · iPadOS 优先 · 选定方案1b 沉浸轨道终端 + 1e 会话缩略卡</span></div>
<div style="max-width:1080px;margin:0 0 40px;display:flex;flex-direction:column;gap:18px">
<div style="display:grid;grid-template-columns:repeat(3,1fr);gap:20px">
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:18px 20px">
<div style="font:600 10px/1 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:10px">设计前提</div>
<div style="font:400 12.5px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">画布尺寸 iPad Pro 13″ 横屏 1366×1024pt1:1。App chrome 全部走 Nocturne 令牌;终端内容区保留 Catppuccin Mocha与 chrome 通过同一深靛蓝底相接。文案简体中文技术术语mosh / tmux / tsnet保留英文。</div>
</div>
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:18px 20px">
<div style="font:600 10px/1 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:10px">分层状态徽标</div>
<div style="font:400 12.5px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">三层链路各占一枚徽标,从下到上:<b style="color:#e9e9ed;font-weight:500">tsnet</b>(网络可达)→ <b style="color:#e9e9ed;font-weight:500">mosh RTT</b>(传输健康,数字实时跳动,>200ms 转琥珀)→ <b style="color:#e9e9ed;font-weight:500">tmux 会话名</b>(复用层)。断哪层哪层变色,其余保持中性——避免"全红恐慌"。</div>
</div>
<div style="background:#1b1d2b;border:1px solid #3f424d;border-radius:12px;padding:18px 20px">
<div style="font:600 10px/1 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#968ae0;margin-bottom:10px">iPad 输入取舍</div>
<div style="font:400 12.5px/1.65 'JetBrains Mono',monospace;color:#b2b6ca">触控时底部常驻 44pt 键盘附加行Esc/Ctrl/方向/PgUp检测到硬件键盘则整行收起、只留一条 4pt 提示带把面积还给终端。pane 分隔线为 12pt 拖拽热区。</div>
</div>
</div>
</div>
<div style="display:flex;flex-direction:column;gap:52px">
<div><div style="display:flex;align-items:baseline;gap:12px;margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid rgba(233,233,237,.09)"><span style="font:600 11px 'JetBrains Mono',monospace;letter-spacing:.1em;padding:4px 9px;border-radius:6px;background:#2b2741;box-shadow:inset 0 0 0 1px #423a6a;color:#d2cefd">选定</span><span style="font:500 15px 'JetBrains Mono',monospace;color:#e9e9ed">终端主界面 · 沉浸轨道</span><span style="font:400 12px 'JetBrains Mono',monospace;color:rgba(233,233,237,.45)">1b — chrome 全部浮起,终端面积最大</span></div><div class="dv-opts">
<div class="dv-opt" id="1b">
<div class="dv-olabel"><a class="dv-oid" href="#1b">1b</a><span><b style="color:#e9e9ed;font-weight:500">终端 · 沉浸轨道</b> 边栏压成 56pt 图标轨道(搜索 · 首页 · 主机 · TMUX window · 设置 · 展开键一应俱全只是收成图标chrome 全部浮起为胶囊,终端面积最大。点轨道底部的展开键或 ⌘\ 变成 288pt 完整侧边栏,见 <a class="dv-oid" href="#3a">3a</a></span></div>
<div class="dv-card">
<div data-screen-label="1b 终端-沉浸轨道" style="width:1366px;height:1024px;background:#11121c;display:flex;font-family:'JetBrains Mono',ui-monospace,monospace">
<div style="width:56px;flex:none;background:#1b1d2b;border-right:1px solid #2c2f3d;display:flex;flex-direction:column;align-items:center;padding:28px 0 12px;gap:8px">
<div style="width:34px;height:34px;border-radius:11px;background:#232532;box-shadow:inset 0 0 0 1px #3f424d;display:flex;align-items:center;justify-content:center;font:700 16px 'JetBrains Mono',monospace;color:#b5abfc"></div>
<div style="width:38px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:16px"><i class="ph ph-magnifying-glass"></i></div>
<div style="width:38px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:16px"><i class="ph ph-house"></i></div>
<div style="width:24px;height:1px;background:#2c2f3d;margin:6px 0"></div>
<div style="position:relative;width:38px;height:38px;border-radius:11px;background:#2b2741;box-shadow:inset 0 0 0 1px #5d5294;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#d2cefd">ms<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="position:relative;width:38px;height:38px;border-radius:11px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#9397ab">u2<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#a6e3a1;box-shadow:0 0 0 2px #1b1d2b"></span></div><div style="position:relative;width:38px;height:38px;border-radius:11px;background:#232532;display:flex;align-items:center;justify-content:center;font:600 13px 'JetBrains Mono',monospace;color:#9397ab">nh<span style="position:absolute;right:-1px;top:-1px;width:8px;height:8px;border-radius:4px;background:#fab387;box-shadow:0 0 0 2px #1b1d2b"></span></div>
<div style="width:38px;height:38px;border-radius:11px;border:1px dashed #3f424d;display:flex;align-items:center;justify-content:center;font-size:16px;color:#5d5294"><i class="ph ph-plus"></i></div>
<div style="width:24px;height:1px;background:#2c2f3d;margin:8px 0"></div>
<div style="font:600 9px 'JetBrains Mono',monospace;letter-spacing:.1em;color:#5d5294;margin-bottom:2px">TMUX</div>
<div style="width:34px;height:30px;border-radius:9px;background:#232532;box-shadow:inset 0 0 0 1px #4a4d5e;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#e9e9ed">0</div><div style="width:34px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#75798c">1</div><div style="width:34px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#75798c">2</div>
<div style="margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:10px">
<div style="width:8px;height:8px;border-radius:4px;background:#a6e3a1"></div>
<div style="width:34px;height:34px;border-radius:10px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;color:#b2b6ca;font-size:13px"><i class="ph ph-caret-double-right"></i></div>
<div style="width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#75798c;font-size:15px"><i class="ph ph-gear-six"></i></div>
</div>
</div>
<div style="flex:1;position:relative;display:flex;flex-direction:column;min-width:0;background:#11121c">
<div style="flex:1;display:flex;flex-direction:column;padding:2px;min-height:0">
<div style="flex:1.7;display:flex;flex-direction:column;background:#1e1e2e;border-radius:8px;outline:1px solid #6c5f9e;min-height:0">
<div style="flex:1;padding:86px 20px 12px;font:400 13.5px/1.55 'JetBrains Mono',ui-monospace,monospace;color:#cdd6f4;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git fetch --all --prune</div><div><span style="color:#6c7086">Fetching origin … done</span></div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swiftformat --lint Sources</div><div><span style="color:#a6e3a1">✓ 0 issues in 84 files</span></div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift build -c release --arch arm64</div><div><span style="color:#6c7086">[142/142] Compiling TXCore</span></div><div><span style="color:#6c7086">[ 8/8 ] Linking TerminalX</span></div><div><span style="color:#a6e3a1">✓ build complete (14.2s)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift test --package-path packages/TXCore</div><div><span style="color:#a6e3a1">◇ Test run started.</span></div><div><span style="color:#6c7086">↳ Suite "tmux control mode"</span></div><div> <span style="color:#a6e3a1"></span> parses %output escaped octal</div><div> <span style="color:#a6e3a1"></span> layout diff keeps pane identity</div><div> <span style="color:#a6e3a1"></span> DCS passthrough detected</div><div> <span style="color:#a6e3a1"></span> %window-add spawns pane tree</div><div><span style="color:#6c7086">↳ Suite "SessionMachine"</span></div><div> <span style="color:#a6e3a1"></span> backoff caps at 30s</div><div> <span style="color:#a6e3a1"></span> mosh three-phase resume</div><div> <span style="color:#a6e3a1"></span> host-key pin survives wipe</div><div><span style="color:#a6e3a1">◇ 50 tests passed after 0.412s</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodegen generate --spec project.yml</div><div><span style="color:#a6e3a1">✅ Created TerminalX.xcodeproj</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcrun simctl list devices booted</div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> <span style="background:#cdd6f4;color:#1e1e2e"> </span></div></div></div>
</div>
<div style="height:12px;flex:none;display:flex;align-items:center;justify-content:center;cursor:row-resize"><div style="width:44px;height:3px;border-radius:2px;background:#3f424d"></div></div>
<div style="flex:1;display:flex;flex-direction:column;background:#1e1e2e;border-radius:8px;min-height:0">
<div style="height:26px;flex:none;display:flex;align-items:center;gap:8px;padding:0 14px;font:500 11px 'JetBrains Mono',monospace;color:#6c7086">0.1 · ubuntu-cn2 · journalctl -f<span style="margin-left:auto;color:#585b70">80×14</span></div>
<div style="flex:1;padding:2px 20px 12px;font:400 12px/1.5 'JetBrains Mono',monospace;color:#a6adc8;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#6c7086">12:01:19</span> cn2 mosh-server[891]: heartbeat 41ms</div><div><span style="color:#6c7086">12:01:44</span> cn2 build-runner: job 39 finished</div><div><span style="color:#6c7086">12:02:03</span> cn2 sshd[9931]: session opened for ci</div><div><span style="color:#6c7086">12:02:31</span> cn2 tailscaled: derp hkg 24ms</div><div><span style="color:#6c7086">12:02:58</span> cn2 mosh-server[891]: heartbeat 38ms</div><div><span style="color:#6c7086">12:03:12</span> cn2 systemd: rotated build.log</div><div><span style="color:#6c7086">12:03:41</span> cn2 ninja: 148/148 objects</div><div><span style="color:#6c7086">12:04:12</span> cn2 tailscaled: <span style="color:#a6e3a1">endpoint DIRECT (udp)</span></div><div><span style="color:#6c7086">12:04:31</span> cn2 kernel: <span style="color:#f9e2af">wlan0 rssi -74</span></div><div><span style="color:#6c7086">12:04:33</span> cn2 mosh-server: roaming → :51004</div><div><span style="color:#6c7086">12:04:33</span> cn2 mosh-server: <span style="color:#a6e3a1">resume ok, 0 lost</span></div><div><span style="color:#6c7086">12:05:02</span> cn2 systemd: Started build-runner@42</div><div><span style="color:#6c7086">12:05:44</span> cn2 sshd: Accepted publickey for ci</div><div><span style="color:#6c7086">12:06:02</span> cn2 runner: <span style="color:#a6e3a1">artifact 18.4 MB uploaded</span></div><div><span style="color:#6c7086">12:06:20</span> cn2 tailscaled: peer nas-home <span style="color:#f9e2af">offline</span></div><div><span style="color:#6c7086">12:06:41</span> cn2 cron: rotated /var/log/build.log</div><div><span style="color:#6c7086">12:07:03</span> cn2 systemd: build-runner@42 ok<span style="background:#a6adc8;color:#1e1e2e"> </span></div></div></div>
</div>
</div>
<div style="position:absolute;top:14px;right:16px;display:flex;align-items:center;background:rgba(27,29,43,.86);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:11px;padding:5px 6px;box-shadow:0 10px 30px rgba(0,0,0,.55)">
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#b2b6ca"><span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span>tsnet</div>
<div style="width:1px;height:16px;background:#3f424d"></div>
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#b2b6ca">mosh<span style="color:#a6e3a1">41ms</span><span style="display:flex;align-items:flex-end;gap:1px;height:10px"><i style="width:2px;height:4px;background:#5d5294;display:block"></i><i style="width:2px;height:7px;background:#796cbf;display:block"></i><i style="width:2px;height:5px;background:#5d5294;display:block"></i><i style="width:2px;height:9px;background:#968ae0;display:block"></i><i style="width:2px;height:6px;background:#796cbf;display:block"></i></span></div>
<div style="width:1px;height:16px;background:#3f424d"></div>
<div style="display:flex;align-items:center;gap:6px;padding:3px 10px;font:500 12px 'JetBrains Mono',monospace;color:#d2cefd">tmux<span>dev</span></div>
</div>
<div style="position:absolute;top:14px;left:16px;display:flex;align-items:center;gap:9px;background:rgba(27,29,43,.86);backdrop-filter:blur(20px);border:1px solid #3f424d;border-radius:11px;padding:6px 12px;box-shadow:0 10px 30px rgba(0,0,0,.55)">
<span style="width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span><span style="font:500 12.5px 'JetBrains Mono',monospace;color:#e9e9ed">mac-studio</span><span style="font:400 11.5px 'JetBrains Mono',monospace;color:#75798c">~/src/terminalx · 168×44</span>
</div>
<div style="height:34px;flex:none;display:flex;align-items:center;gap:16px;padding:0 18px;background:#161826;border-top:1px solid #2c2f3d;font:400 11.5px 'JetBrains Mono',monospace;color:#75798c">
<span>已连接妙控键盘 · 附加行已收起</span>
<span style="margin-left:auto;display:flex;gap:14px"><span><b style="color:#b2b6ca">⌘K</b> 命令面板</span><span><b style="color:#b2b6ca">⌘D</b> 竖分屏</span><span><b style="color:#b2b6ca">⌘⇧D</b> 横分屏</span><span><b style="color:#b2b6ca">⌃⇥</b> 切 window</span><span><b style="color:#b2b6ca">长按 ⌘</b> 全部快捷键</span></span>
</div>
<div style="height:14px;flex:none;display:flex;align-items:center;justify-content:center;background:#161826"><div style="width:200px;height:4px;border-radius:2px;background:#3f424d"></div></div>
</div>
</div>
</div>
</div>
</div></div>
<div><div style="display:flex;align-items:baseline;gap:12px;margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid rgba(233,233,237,.09)"><span style="font:600 11px 'JetBrains Mono',monospace;letter-spacing:.1em;padding:4px 9px;border-radius:6px;background:#2b2741;box-shadow:inset 0 0 0 1px #423a6a;color:#d2cefd">选定</span><span style="font:500 15px 'JetBrains Mono',monospace;color:#e9e9ed">主机管理 · 会话缩略卡</span><span style="font:400 12px 'JetBrains Mono',monospace;color:rgba(233,233,237,.45)">1e — 活动会话优先,回到刚才那个会话是首要动作</span></div><div class="dv-opts">
<div class="dv-opt" id="1e">
<div class="dv-olabel"><a class="dv-oid" href="#1e">1e</a><span><b style="color:#e9e9ed;font-weight:500">主机 · 会话缩略卡</b> 把「回到刚才那个会话」当作首要动作:上排是活着的会话(真实终端缩略图 + 最后一行输出),下排才是主机网格。适合 24 个并行会话来回跳。</span></div>
<div class="dv-card">
<div data-screen-label="1e 主机-会话卡" style="width:1366px;height:1024px;background:#161826;display:flex;flex-direction:column;font-family:'JetBrains Mono',ui-monospace,monospace">
<div style="height:24px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 22px;font:500 12px 'JetBrains Mono',monospace;color:#9397ab"><span>9:41 周五</span><span><i class="ph ph-wifi-high"></i> Wi-Fi · 78%</span></div>
<div style="padding:22px 40px 14px;display:flex;align-items:flex-end;gap:14px">
<div>
<h1 style="margin:0;font:500 34px 'JetBrains Mono',monospace;letter-spacing:-.025em">terminalX</h1>
<div style="font:400 13px 'JetBrains Mono',monospace;color:#75798c;margin-top:2px">3 个会话在跑 · 7 台主机 · Tailscale athom.ts.net</div>
</div>
<div style="margin-left:auto;display:flex;gap:8px">
<div style="height:36px;width:220px;border-radius:9px;background:#1b1d2b;border:1px solid #3f424d;display:flex;align-items:center;gap:8px;padding:0 12px;font:400 13px 'JetBrains Mono',monospace;color:#75798c"><i class="ph ph-magnifying-glass"></i> 搜索<span style="margin-left:auto;font-size:11px;color:#5d5294">⌘K</span></div>
<div style="height:36px;padding:0 16px;border-radius:9px;border:1px solid #796cbf;display:flex;align-items:center;gap:7px;font:500 13px 'JetBrains Mono',monospace;color:#b5abfc"><i class="ph ph-plus"></i> 新建连接</div>
<div style="width:36px;height:36px;border-radius:9px;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;color:#b2b6ca"><i class="ph ph-gear-six"></i></div>
</div>
</div>
<div style="padding:0 40px 6px;display:flex;align-items:baseline;gap:10px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#75798c">活动会话</div><div style="flex:1;height:1px;background:linear-gradient(to right,#2c2f3d,transparent)"></div></div>
<div style="flex:1;min-height:0;padding:12px 40px 26px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px">
<div style="background:#1b1d2b;border:1px solid #423a6a;border-radius:13px;overflow:hidden;display:flex;flex-direction:column">
<div style="height:36px;flex:none;display:flex;align-items:center;gap:9px;padding:0 13px;border-bottom:1px solid #2c2f3d"><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span><span style="font:500 13.5px 'JetBrains Mono',monospace;color:#e9e9ed">mac-studio</span><span style="font:400 11px 'JetBrains Mono',monospace;color:#75798c">tmux dev</span><span style="margin-left:auto;font:500 11px 'JetBrains Mono',monospace;color:#a6e3a1">41ms</span></div>
<div style="flex:1;min-height:0;position:relative;background:#1e1e2e;padding:10px 12px;font:400 11px/1.5 'JetBrains Mono',monospace;color:#a6adc8;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git fetch --all --prune</div><div><span style="color:#6c7086">Fetching origin … done</span></div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swiftformat --lint Sources</div><div><span style="color:#a6e3a1">✓ 0 issues in 84 files</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift build -c release --arch arm64</div><div><span style="color:#6c7086">[142/142] Compiling TXCore</span></div><div><span style="color:#6c7086">[ 8/8 ] Linking TerminalX</span></div><div><span style="color:#a6e3a1">✓ build complete (14.2s)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift test --package-path packages/TXCore</div><div><span style="color:#a6e3a1">◇ Test run started.</span></div><div><span style="color:#6c7086">↳ Suite "tmux control mode"</span></div><div> <span style="color:#a6e3a1"></span> parses %output escaped octal</div><div> <span style="color:#a6e3a1"></span> layout diff keeps pane identity</div><div> <span style="color:#a6e3a1"></span> DCS passthrough detected</div><div> <span style="color:#a6e3a1"></span> %window-add spawns pane tree</div><div><span style="color:#6c7086">↳ Suite "SessionMachine"</span></div><div> <span style="color:#a6e3a1"></span> backoff caps at 30s</div><div> <span style="color:#a6e3a1"></span> mosh three-phase resume</div><div> <span style="color:#a6e3a1"></span> host-key pin survives wipe</div><div><span style="color:#a6e3a1">◇ 50 tests passed after 0.412s</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodegen generate --spec project.yml</div><div><span style="color:#a6e3a1">✅ Created TerminalX.xcodeproj</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcrun simctl list devices booted</div><div><span style="color:#6c7086">-- iOS 26.2 --</span></div><div><span style="color:#6c7086"> iPad Pro 13-inch (M4) (Booted)</span></div><div>&nbsp;</div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> <span style="background:#cdd6f4;color:#1e1e2e"> </span></div></div></div>
<div style="height:38px;flex:none;display:flex;align-items:center;gap:8px;padding:0 13px;border-top:1px solid #2c2f3d"><span style="font:400 11.5px 'JetBrains Mono',monospace;color:#75798c">3 windows · 4 panes · 12 秒前</span><span style="margin-left:auto;display:flex;align-items:center;gap:8px"><span style="font:400 10.5px 'JetBrains Mono',monospace;color:#5d5294">⌘1</span><span style="font:500 12px 'JetBrains Mono',monospace;color:#b5abfc">回到会话 <i class="ph ph-arrow-right"></i></span></span></div>
</div>
<div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:13px;overflow:hidden;display:flex;flex-direction:column">
<div style="height:36px;flex:none;display:flex;align-items:center;gap:9px;padding:0 13px;border-bottom:1px solid #2c2f3d"><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span><span style="font:500 13.5px 'JetBrains Mono',monospace;color:#e9e9ed">ubuntu-cn2</span><span style="font:400 11px 'JetBrains Mono',monospace;color:#75798c">tmux build</span><span style="margin-left:auto;font:500 11px 'JetBrains Mono',monospace;color:#f9e2af">186ms</span></div>
<div style="flex:1;min-height:0;position:relative;background:#1e1e2e;padding:10px 12px;font:400 11px/1.5 'JetBrains Mono',monospace;color:#a6adc8;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">cn2</span> <span style="color:#cba6f7">~</span> journalctl -u build-runner -n 3 --no-pager</div><div><span style="color:#6c7086">12:05:02 Started build-runner@42</span></div><div><span style="color:#6c7086">12:06:02 build-runner@42 succeeded</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">cn2</span> <span style="color:#cba6f7">~</span> systemctl status build-runner --no-pager</div><div><span style="color:#a6e3a1">● build-runner.service — active (running)</span></div><div><span style="color:#6c7086"> since Fri 09:12:03 CST; 2h 54min ago</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">cn2</span> <span style="color:#cba6f7">~</span> ninja -C build -j 8</div><div><span style="color:#6c7086">[148/148] Linking libmosh-core.a</span></div><div><span style="color:#a6e3a1">✓ ninja: no work to do.</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">cn2</span> <span style="color:#cba6f7">~</span> ./run-integration.sh --tsnet</div><div><span style="color:#89b4fa">▸ joining tailnet as ci-runner…</span></div><div><span style="color:#a6e3a1">▸ peer enumeration: 7 nodes</span></div><div><span style="color:#89b4fa">▸ mosh relay loopback:60122 ↔ tsnet</span></div><div><span style="color:#a6e3a1">▸ handshake ok, AES-OCB session up</span></div><div><span style="color:#6c7086"> roaming: peer addr switched</span></div><div><span style="color:#a6e3a1"> resume ok in 1.8s, 0 bytes lost</span></div><div><span style="color:#6c7086"> suspend 90s → wake</span></div><div><span style="color:#a6e3a1"> resume ok in 2.4s</span></div><div><span style="color:#f9e2af">▸ 12/14 passed, 2 flaky (retrying)</span></div><div><span style="color:#6c7086"> ↻ tmux/resize-under-loss</span></div><div><span style="color:#6c7086"> ↻ tsnet/derp-failover</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">cn2</span> <span style="color:#cba6f7">~</span> tailscale netcheck | head -5</div><div><span style="color:#6c7086"> * UDP: true</span></div><div><span style="color:#6c7086"> * IPv4: yes, 203.0.113.9:41641</span></div><div><span style="color:#6c7086"> * Nearest DERP: Hong Kong</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">cn2</span> <span style="color:#cba6f7">~</span> <span style="background:#a6adc8;color:#1e1e2e"> </span></div></div></div>
<div style="height:38px;flex:none;display:flex;align-items:center;gap:8px;padding:0 13px;border-top:1px solid #2c2f3d"><span style="font:400 11.5px 'JetBrains Mono',monospace;color:#75798c">1 window · relay hkg · 4 分钟前</span><span style="margin-left:auto;display:flex;align-items:center;gap:8px"><span style="font:400 10.5px 'JetBrains Mono',monospace;color:#5d5294">⌘2</span><span style="font:500 12px 'JetBrains Mono',monospace;color:#9397ab">回到会话 <i class="ph ph-arrow-right"></i></span></span></div>
</div>
<div style="background:#1b1d2b;border:1px solid #5c4a35;border-radius:13px;overflow:hidden;display:flex;flex-direction:column">
<div style="height:36px;flex:none;display:flex;align-items:center;gap:9px;padding:0 13px;border-bottom:1px solid #2c2f3d"><span style="width:7px;height:7px;border-radius:4px;background:#fab387"></span><span style="font:500 13.5px 'JetBrains Mono',monospace;color:#e9e9ed">nas-home</span><span style="font:400 11px 'JetBrains Mono',monospace;color:#75798c"></span><span style="margin-left:auto;font:500 11px 'JetBrains Mono',monospace;color:#fab387">重连中</span></div>
<div style="flex:1;min-height:0;position:relative;background:#1e1e2e;padding:10px 12px;font:400 11px/1.5 'JetBrains Mono',monospace;color:#a6adc8;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> zfs get compressratio tank</div><div><span style="color:#6c7086">tank compressratio 1.34x</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> docker stats --no-stream | head -3</div><div><span style="color:#6c7086">NAME CPU % MEM USAGE</span></div><div><span style="color:#6c7086">plex 4.10% 1.21GiB</span></div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> uname -sr</div><div><span style="color:#6c7086">Linux 6.12.9-truenas</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> docker ps --format 'table <span>{</span>{.Names}}'</div><div><span style="color:#6c7086">NAMES STATUS</span></div><div><span style="color:#6c7086">plex Up 6 days</span></div><div><span style="color:#6c7086">syncthing Up 6 days</span></div><div><span style="color:#6c7086">caddy Up 12 hours</span></div><div><span style="color:#6c7086">postgres Up 6 days (healthy)</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> zpool status -x</div><div><span style="color:#6c7086"> all pools are healthy</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> df -h /tank</div><div><span style="color:#6c7086">Filesystem Size Used Avail Use%</span></div><div><span style="color:#6c7086">tank 18T 11T 7.0T 62%</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> zfs list -t snapshot | tail -3</div><div><span style="color:#6c7086">tank/photos@auto-2026-07-24 1.2G</span></div><div><span style="color:#6c7086">tank/docs@auto-2026-07-24 84M</span></div><div><span style="color:#6c7086">tank/vm@auto-2026-07-24 3.4G</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> tail -4 /var/log/syncthing.log</div><div><span style="color:#6c7086"> folder "photos" sync complete</span></div><div><span style="color:#6c7086"> folder "docs" idle</span></div><div>&nbsp;</div><div><span style="color:#94e2d5">nas</span><span style="color:#6c7086">:~$</span> <span style="background:#a6adc8;color:#1e1e2e"> </span></div></div><div style="position:absolute;inset:0;background:rgba(24,26,40,.72);backdrop-filter:blur(1.5px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px"><div style="width:26px;height:26px;border-radius:13px;border:2px solid #fab387;border-top-color:transparent"></div><div style="font:500 12.5px 'JetBrains Mono',monospace;color:#fab387">mosh 会话保活中8s 后第 3 次重连</div><div style="font:400 11px 'JetBrains Mono',monospace;color:#75798c">屏幕内容已缓存,恢复后原样接回</div></div></div>
<div style="height:38px;flex:none;display:flex;align-items:center;gap:8px;padding:0 13px;border-top:1px solid #2c2f3d"><span style="font:400 11.5px 'JetBrains Mono',monospace;color:#75798c">tsnet 节点离线 · 2 分钟前</span><span style="margin-left:auto;display:flex;align-items:center;gap:8px"><span style="font:400 10.5px 'JetBrains Mono',monospace;color:#5d5294">⌘3</span><span style="font:500 12px 'JetBrains Mono',monospace;color:#b2b6ca">立即重试</span></span></div>
</div>
</div>
<div style="padding:0 40px 6px;display:flex;align-items:baseline;gap:10px"><div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#75798c">全部主机</div><div style="flex:1;height:1px;background:linear-gradient(to right,#2c2f3d,transparent)"></div><div style="display:flex;gap:6px"><span style="padding:3px 10px;border-radius:6px;background:#2b2741;box-shadow:inset 0 0 0 1px #423a6a;font:500 11.5px 'JetBrains Mono',monospace;color:#d2cefd">全部</span><span style="padding:3px 10px;border-radius:6px;border:1px solid #3f424d;font:400 11.5px 'JetBrains Mono',monospace;color:#9397ab">生产</span><span style="padding:3px 10px;border-radius:6px;border:1px solid #3f424d;font:400 11.5px 'JetBrains Mono',monospace;color:#9397ab">家里</span><span style="padding:3px 10px;border-radius:6px;border:1px solid #3f424d;font:400 11.5px 'JetBrains Mono',monospace;color:#9397ab"></span></div></div>
<div style="flex:none;padding:10px 40px 24px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px">
<div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:12px;padding:15px 16px;display:flex;flex-direction:column;gap:12px">
<div style="display:flex;align-items:center;gap:10px"><span style="width:32px;height:32px;border-radius:9px;background:#232532;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:15px"><i class="ph ph-desktop-tower"></i></span><div style="flex:1"><div style="font:500 14px 'JetBrains Mono',monospace;color:#e9e9ed">mac-studio</div><div style="font:400 11px 'JetBrains Mono',monospace;color:#75798c">macOS · M4 Max</div></div><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span></div>
<div style="display:flex;gap:5px;flex-wrap:wrap"><span style="padding:2px 7px;border-radius:5px;background:#232532;font:400 10.5px 'JetBrains Mono',monospace;color:#9397ab">mosh</span><span style="padding:2px 7px;border-radius:5px;background:#232532;font:400 10.5px 'JetBrains Mono',monospace;color:#9397ab">tsnet</span><span style="padding:2px 7px;border-radius:5px;background:#2b2741;font:400 10.5px 'JetBrains Mono',monospace;color:#b5abfc">SE key</span></div>
</div>
<div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:12px;padding:15px 16px;display:flex;flex-direction:column;gap:12px">
<div style="display:flex;align-items:center;gap:10px"><span style="width:32px;height:32px;border-radius:9px;background:#232532;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:15px"><i class="ph ph-hard-drives"></i></span><div style="flex:1"><div style="font:500 14px 'JetBrains Mono',monospace;color:#e9e9ed">ubuntu-cn2</div><div style="font:400 11px 'JetBrains Mono',monospace;color:#75798c">Ubuntu 26.04</div></div><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span></div>
<div style="display:flex;gap:5px;flex-wrap:wrap"><span style="padding:2px 7px;border-radius:5px;background:#232532;font:400 10.5px 'JetBrains Mono',monospace;color:#9397ab">mosh</span><span style="padding:2px 7px;border-radius:5px;background:#232532;font:400 10.5px 'JetBrains Mono',monospace;color:#9397ab">tsnet</span></div>
</div>
<div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:12px;padding:15px 16px;display:flex;flex-direction:column;gap:12px">
<div style="display:flex;align-items:center;gap:10px"><span style="width:32px;height:32px;border-radius:9px;background:#232532;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:15px"><i class="ph ph-hard-drives"></i></span><div style="flex:1"><div style="font:500 14px 'JetBrains Mono',monospace;color:#e9e9ed">edge-sg1</div><div style="font:400 11px 'JetBrains Mono',monospace;color:#75798c">Debian 13</div></div><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span></div>
<div style="display:flex;gap:5px;flex-wrap:wrap"><span style="padding:2px 7px;border-radius:5px;background:#232532;font:400 10.5px 'JetBrains Mono',monospace;color:#9397ab">SSH</span><span style="padding:2px 7px;border-radius:5px;background:#232532;font:400 10.5px 'JetBrains Mono',monospace;color:#9397ab">tsnet</span></div>
</div>
<div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:12px;padding:15px 16px;display:flex;flex-direction:column;gap:12px;opacity:.55">
<div style="display:flex;align-items:center;gap:10px"><span style="width:32px;height:32px;border-radius:9px;background:#232532;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:15px"><i class="ph ph-hard-drives"></i></span><div style="flex:1"><div style="font:500 14px 'JetBrains Mono',monospace;color:#e9e9ed">edge-sg2</div><div style="font:400 11px 'JetBrains Mono',monospace;color:#75798c">离线 · 4 小时</div></div><span style="width:7px;height:7px;border-radius:4px;background:#75798c"></span></div>
<div style="display:flex;gap:5px;flex-wrap:wrap"><span style="padding:2px 7px;border-radius:5px;background:#232532;font:400 10.5px 'JetBrains Mono',monospace;color:#9397ab">SSH</span></div>
</div>
<div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:12px;padding:15px 16px;display:flex;flex-direction:column;gap:12px">
<div style="display:flex;align-items:center;gap:10px"><span style="width:32px;height:32px;border-radius:9px;background:#232532;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:15px"><i class="ph ph-desktop-tower"></i></span><div style="flex:1"><div style="font:500 14px 'JetBrains Mono',monospace;color:#e9e9ed">nas-home</div><div style="font:400 11px 'JetBrains Mono',monospace;color:#75798c">重连中</div></div><span style="width:7px;height:7px;border-radius:4px;background:#fab387"></span></div>
<div style="display:flex;gap:5px;flex-wrap:wrap"><span style="padding:2px 7px;border-radius:5px;background:#232532;font:400 10.5px 'JetBrains Mono',monospace;color:#9397ab">mosh</span></div>
</div>
<div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:12px;padding:15px 16px;display:flex;flex-direction:column;gap:12px">
<div style="display:flex;align-items:center;gap:10px"><span style="width:32px;height:32px;border-radius:9px;background:#232532;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:15px"><i class="ph ph-cpu"></i></span><div style="flex:1"><div style="font:500 14px 'JetBrains Mono',monospace;color:#e9e9ed">pi-lab</div><div style="font:400 11px 'JetBrains Mono',monospace;color:#75798c">Raspberry Pi OS</div></div><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span></div>
<div style="display:flex;gap:5px;flex-wrap:wrap"><span style="padding:2px 7px;border-radius:5px;background:#232532;font:400 10.5px 'JetBrains Mono',monospace;color:#9397ab">SSH</span></div>
</div>
<div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:12px;padding:15px 16px;display:flex;flex-direction:column;gap:12px">
<div style="display:flex;align-items:center;gap:10px"><span style="width:32px;height:32px;border-radius:9px;background:#232532;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:15px"><i class="ph ph-hard-drives"></i></span><div style="flex:1"><div style="font:500 14px 'JetBrains Mono',monospace;color:#e9e9ed">mosh-lab</div><div style="font:400 11px 'JetBrains Mono',monospace;color:#75798c">Fedora 44</div></div><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span></div>
<div style="display:flex;gap:5px;flex-wrap:wrap"><span style="padding:2px 7px;border-radius:5px;background:#232532;font:400 10.5px 'JetBrains Mono',monospace;color:#9397ab">mosh</span></div>
</div>
<div style="border:1px dashed #3f424d;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:96px;color:#5d5294"><span style="font-size:18px"><i class="ph ph-plus"></i></span><span style="font:500 12.5px 'JetBrains Mono',monospace">添加主机</span></div>
</div>
<div style="height:18px;flex:none;display:flex;align-items:center;justify-content:center"><div style="width:200px;height:4px;border-radius:2px;background:#3f424d"></div></div>
</div>
</div>
</div>
</div></div>
<div><div style="display:flex;align-items:baseline;gap:12px;margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid rgba(233,233,237,.09)"><span style="font:600 11px 'JetBrains Mono',monospace;letter-spacing:.1em;padding:4px 9px;border-radius:6px;background:#2b2741;box-shadow:inset 0 0 0 1px #423a6a;color:#d2cefd">共用屏</span><span style="font:500 15px 'JetBrains Mono',monospace;color:#e9e9ed">设置 · iPhone 对照</span><span style="font:400 12px 'JetBrains Mono',monospace;color:rgba(233,233,237,.45)">跟随选定方案</span></div><div class="dv-opts">
<!-- ══════════ 1g 设置 ══════════ -->
<div class="dv-opt" id="1g">
<div class="dv-olabel"><a class="dv-oid" href="#1g">1g</a><span><b style="color:#e9e9ed;font-weight:500">设置 · 外观</b> 左类别、右内容。核心是「app chrome 与终端同源换肤」:选一套 Catppuccinchrome 的中性阶跟着走Nocturne 的 blurple 始终作为唯一强调色不被覆盖。</span></div>
<div class="dv-card">
<div data-screen-label="1g 设置-外观" style="width:1366px;height:1024px;background:#161826;display:flex;flex-direction:column;font-family:'JetBrains Mono',ui-monospace,monospace">
<div style="height:24px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 22px;font:500 12px 'JetBrains Mono',monospace;color:#9397ab"><span>9:41 周五</span><span><i class="ph ph-wifi-high"></i> Wi-Fi · 78%</span></div>
<div style="flex:1;min-height:0;display:flex">
<div style="width:280px;flex:none;background:#1b1d2b;border-right:1px solid #2c2f3d;display:flex;flex-direction:column;padding:16px 0">
<div style="padding:0 20px 14px"><h3 style="margin:0;font:500 22px 'JetBrains Mono',monospace;letter-spacing:-.02em">设置</h3></div>
<div style="padding:0 10px;display:flex;flex-direction:column;gap:2px"><div style="display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;background:#2b2741;box-shadow:inset 0 0 0 1px #423a6a;"><span style="color:#b5abfc;width:18px;text-align:center"><i class="ph ph-paint-brush"></i></span><span style="font:500 13.5px 'JetBrains Mono',monospace;color:#e9e9ed">外观与主题</span></div><div style="display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;"><span style="color:#75798c;width:18px;text-align:center"><i class="ph ph-text-aa"></i></span><span style="font:400 13.5px 'JetBrains Mono',monospace;color:#cfd3e5">终端与字体</span></div><div style="display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;"><span style="color:#75798c;width:18px;text-align:center"><i class="ph ph-globe-hemisphere-west"></i></span><span style="font:400 13.5px 'JetBrains Mono',monospace;color:#cfd3e5">Tailscale</span><span style="margin-left:auto;width:6px;height:6px;border-radius:3px;background:#a6e3a1"></span></div><div style="display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;"><span style="color:#75798c;width:18px;text-align:center"><i class="ph ph-key"></i></span><span style="font:400 13.5px 'JetBrains Mono',monospace;color:#cfd3e5">密钥与安全</span></div><div style="display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;"><span style="color:#75798c;width:18px;text-align:center"><i class="ph ph-lightning"></i></span><span style="font:400 13.5px 'JetBrains Mono',monospace;color:#cfd3e5">mosh 与重连</span></div><div style="display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;"><span style="color:#75798c;width:18px;text-align:center"><i class="ph ph-columns"></i></span><span style="font:400 13.5px 'JetBrains Mono',monospace;color:#cfd3e5">tmux 集成</span></div><div style="display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;"><span style="color:#75798c;width:18px;text-align:center"><i class="ph ph-keyboard"></i></span><span style="font:400 13.5px 'JetBrains Mono',monospace;color:#cfd3e5">键盘与手势</span></div><div style="display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;"><span style="color:#75798c;width:18px;text-align:center"><i class="ph ph-export"></i></span><span style="font:400 13.5px 'JetBrains Mono',monospace;color:#cfd3e5">诊断日志</span></div></div>
<div style="margin-top:auto;padding:12px 20px;font:400 11px 'JetBrains Mono',monospace;color:#5d5294">terminalX 0.6 (M4) · libghostty · mosh 1.4 · tsnet</div>
</div>
<div style="flex:1;min-width:0;display:flex;flex-direction:column;gap:24px;padding:28px 40px;overflow:hidden">
<div>
<h2 style="margin:0 0 3px;font:500 26px 'JetBrains Mono',monospace;letter-spacing:-.02em">外观与主题</h2>
<div style="font:400 12.5px 'JetBrains Mono',monospace;color:#75798c">App chrome 与终端配色同源:切一次,两边一起变。强调色恒为 Nocturne blurple。</div>
</div>
<div>
<div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#75798c;margin-bottom:11px">Catppuccin 主题</div>
<div style="display:grid;grid-template-columns:repeat(4,1fr);gap:14px">
<div style="border:1px solid #796cbf;border-radius:12px;overflow:hidden;background:#1b1d2b">
<div style="height:88px;background:#1e1e2e;padding:10px;display:flex;flex-direction:column;justify-content:space-between">
<div style="font:400 9.5px/1.4 'JetBrains Mono',monospace;color:#cdd6f4"><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">~</span> git status<br><span style="color:#fab387">M</span> Theme.swift</div>
<div style="display:flex;gap:3px"><i style="width:12px;height:12px;border-radius:6px;background:#f38ba8;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#fab387;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#a6e3a1;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#89b4fa;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#cba6f7;display:block"></i></div>
</div>
<div style="padding:9px 12px;display:flex;align-items:center;gap:7px"><span style="font:500 13px 'JetBrains Mono',monospace;color:#e9e9ed">Mocha</span><span style="margin-left:auto;color:#b5abfc;font-size:13px"><i class="ph ph-check-circle"></i></span></div>
</div>
<div style="border:1px solid #2c2f3d;border-radius:12px;overflow:hidden;background:#1b1d2b">
<div style="height:88px;background:#24273a;padding:10px;display:flex;flex-direction:column;justify-content:space-between">
<div style="font:400 9.5px/1.4 'JetBrains Mono',monospace;color:#cad3f5"><span style="color:#a6da95"></span> <span style="color:#8aadf4">~</span> git status<br><span style="color:#f5a97f">M</span> Theme.swift</div>
<div style="display:flex;gap:3px"><i style="width:12px;height:12px;border-radius:6px;background:#ed8796;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#f5a97f;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#a6da95;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#8aadf4;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#c6a0f6;display:block"></i></div>
</div>
<div style="padding:9px 12px;display:flex;align-items:center;gap:7px"><span style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5">Macchiato</span></div>
</div>
<div style="border:1px solid #2c2f3d;border-radius:12px;overflow:hidden;background:#1b1d2b">
<div style="height:88px;background:#303446;padding:10px;display:flex;flex-direction:column;justify-content:space-between">
<div style="font:400 9.5px/1.4 'JetBrains Mono',monospace;color:#c6d0f5"><span style="color:#a6d189"></span> <span style="color:#8caaee">~</span> git status<br><span style="color:#ef9f76">M</span> Theme.swift</div>
<div style="display:flex;gap:3px"><i style="width:12px;height:12px;border-radius:6px;background:#e78284;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#ef9f76;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#a6d189;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#8caaee;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#ca9ee6;display:block"></i></div>
</div>
<div style="padding:9px 12px;display:flex;align-items:center;gap:7px"><span style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5">Frappé</span></div>
</div>
<div style="border:1px solid #2c2f3d;border-radius:12px;overflow:hidden;background:#1b1d2b">
<div style="height:88px;background:#eff1f5;padding:10px;display:flex;flex-direction:column;justify-content:space-between">
<div style="font:400 9.5px/1.4 'JetBrains Mono',monospace;color:#4c4f69"><span style="color:#40a02b"></span> <span style="color:#1e66f5">~</span> git status<br><span style="color:#fe640b">M</span> Theme.swift</div>
<div style="display:flex;gap:3px"><i style="width:12px;height:12px;border-radius:6px;background:#d20f39;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#fe640b;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#40a02b;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#1e66f5;display:block"></i><i style="width:12px;height:12px;border-radius:6px;background:#8839ef;display:block"></i></div>
</div>
<div style="padding:9px 12px;display:flex;align-items:center;gap:7px"><span style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5">Latte</span><span style="margin-left:auto;font:400 10.5px 'JetBrains Mono',monospace;color:#75798c">浅色</span></div>
</div>
</div>
</div>
<div style="flex:1;min-height:0;display:grid;grid-template-columns:1.25fr 1fr;gap:30px">
<div style="min-height:0;display:flex;flex-direction:column;gap:14px">
<div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#75798c">实时预览</div>
<div style="flex:1;min-height:0;border-radius:12px;background:#1e1e2e;border:1px solid #2c2f3d;padding:14px 16px;font:400 12.5px/1.6 'JetBrains Mono',monospace;color:#cdd6f4;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> ls -l packages</div><div><span style="color:#89b4fa">drwxr-xr-x</span> yz staff 192B TXCore</div><div><span style="color:#89b4fa">drwxr-xr-x</span> yz staff 256B TXTransport</div><div><span style="color:#6c7086">-rw-r--r--</span> yz staff 4.1K Package.swift</div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git diff --stat</div><div> SessionMachine.swift | <span style="color:#a6e3a1">++++++++</span><span style="color:#f38ba8">---</span></div><div> TmuxController.swift | <span style="color:#a6e3a1">+++++</span><span style="color:#f38ba8">-</span></div><div> <span style="color:#6c7086">2 files changed, 13(+), 4(-)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> 中文等宽对齐测试:终端渲染 CJK</div><div><span style="color:#cba6f7"></span> 宽字符占两格 <span style="color:#94e2d5"></span> emoji 归一 <span style="color:#94e2d5"></span></div><div><span style="color:#cba6f7"></span> 制表符对齐 <span style="color:#94e2d5"></span> 连字 -> ≠ <span style="color:#94e2d5"></span></div><div><span style="color:#cba6f7">└─</span> 行高 1.50 · 字号 13.5pt</div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift build 2>&1 | tail -4</div><div><span style="color:#f38ba8">error</span>: cannot find 'foo' in scope</div><div><span style="color:#f9e2af">warning</span>: unused variable 'gate'</div><div><span style="color:#6c7086">note: </span>add explicit <span style="color:#cba6f7">_ =</span> to silence</div><div><span style="color:#a6e3a1">✓ 编译完成 · 14.2s</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> tailscale status | head -3</div><div><span style="color:#a6e3a1">100.71.203.4</span> mac-studio <span style="color:#6c7086">direct</span></div><div><span style="color:#a6e3a1">100.88.9.61</span> ubuntu-cn2 <span style="color:#6c7086">relay hkg</span></div><div><span style="color:#f9e2af">100.104.2.18</span> nas-home <span style="color:#6c7086">offline</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> tmux list-panes</div><div><span style="color:#cba6f7">0.0</span> [124x38] <span style="color:#6c7086">zsh</span> <span style="color:#a6e3a1">(active)</span></div><div><span style="color:#cba6f7">0.1</span> [ 60x18] <span style="color:#6c7086">btop</span></div><div><span style="color:#cba6f7">0.2</span> [ 60x19] <span style="color:#6c7086">tail -f build.log</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> echo $TERM</div><div><span style="color:#f5c2e7">xterm-256color</span> · <span style="color:#f5c2e7">truecolor</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">terminalx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> <span style="background:#cdd6f4;color:#1e1e2e"> </span></div></div></div>
</div>
<div style="min-height:0;display:flex;flex-direction:column;gap:10px">
<div style="font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#75798c">排版</div>
<div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:11px;overflow:hidden">
<div style="display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid #2c2f3d"><div style="flex:1"><div style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5">终端字体</div></div><span style="font:400 12.5px 'JetBrains Mono',monospace;color:#9397ab">JetBrains Mono <i class="ph ph-caret-down"></i></span></div>
<div style="padding:12px 14px;border-bottom:1px solid #2c2f3d"><div style="display:flex;justify-content:space-between;font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5;margin-bottom:9px"><span>字号</span><span style="color:#9397ab">13.5pt</span></div><div style="height:4px;border-radius:2px;background:#3f424d;position:relative"><span style="position:absolute;left:0;top:0;bottom:0;width:46%;background:#796cbf;border-radius:2px"></span><span style="position:absolute;left:46%;top:-7px;width:18px;height:18px;border-radius:9px;background:#d2cefd;margin-left:-9px"></span></div></div>
<div style="padding:12px 14px;border-bottom:1px solid #2c2f3d"><div style="display:flex;justify-content:space-between;font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5;margin-bottom:9px"><span>行高</span><span style="color:#9397ab">1.50</span></div><div style="height:4px;border-radius:2px;background:#3f424d;position:relative"><span style="position:absolute;left:0;top:0;bottom:0;width:62%;background:#796cbf;border-radius:2px"></span><span style="position:absolute;left:62%;top:-7px;width:18px;height:18px;border-radius:9px;background:#d2cefd;margin-left:-9px"></span></div></div>
<div style="display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid #2c2f3d"><div style="flex:1"><div style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5">连字ligatures</div><div style="font:400 11px 'JetBrains Mono',monospace;color:#75798c">-> ≠ 合并显示</div></div><div style="width:38px;height:22px;border-radius:11px;background:#5d5294;padding:2px;display:flex;justify-content:flex-end"><span style="width:18px;height:18px;border-radius:9px;background:#d2cefd"></span></div></div>
<div style="display:flex;align-items:center;gap:12px;padding:12px 14px;"><div style="flex:1"><div style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5">CJK 等宽补偿</div><div style="font:400 11px 'JetBrains Mono',monospace;color:#75798c">宽字符严格占两格</div></div><div style="width:38px;height:22px;border-radius:11px;background:#5d5294;padding:2px;display:flex;justify-content:flex-end"><span style="width:18px;height:18px;border-radius:9px;background:#d2cefd"></span></div></div>
</div>
<div style="background:#1b1d2b;border:1px solid #2c2f3d;border-radius:11px;overflow:hidden">
<div style="display:flex;align-items:center;gap:12px;padding:12px 14px;"><div style="flex:1"><div style="font:400 13px 'JetBrains Mono',monospace;color:#cfd3e5">跟随系统浅/深色</div><div style="font:400 11px 'JetBrains Mono',monospace;color:#75798c">深色 Mocha ⇄ 浅色 Latte</div></div><div style="width:38px;height:22px;border-radius:11px;background:#3f424d;padding:2px;display:flex;"><span style="width:18px;height:18px;border-radius:9px;background:#9397ab"></span></div></div>
</div>
<div style="margin-top:auto;background:#1b1d2b;border:1px solid #2c2f3d;border-radius:11px;padding:12px 14px;display:flex;gap:10px;align-items:flex-start">
<span style="color:#b5abfc;font-size:13px;margin-top:1px"><i class="ph ph-info"></i></span>
<div style="font:400 11.5px/1.6 'JetBrains Mono',monospace;color:#9397ab">终端配色由 libghostty 渲染chrome 的中性阶与所选主题同源推导,强调色始终取 Nocturne blurple。</div>
</div>
</div>
</div>
</div>
</div>
<div style="height:18px;flex:none;display:flex;align-items:center;justify-content:center"><div style="width:200px;height:4px;border-radius:2px;background:#3f424d"></div></div>
</div>
</div>
</div>
<!-- ══════════ 1h iPhone ══════════ -->
<div class="dv-opt" id="1h">
<div class="dv-olabel"><a class="dv-oid" href="#1h">1h</a><span><b style="color:#e9e9ed;font-weight:500">iPhone 紧凑对照</b> 同一套令牌降级:边栏→底部 tabpane 平铺→单 pane + 顶部 pane 段控,附加行两行滚动。</span></div>
<div style="display:flex;gap:22px;align-items:flex-start">
<div class="dv-card" style="border-radius:38px;width:393px">
<div data-screen-label="1h iPhone-终端" style="width:393px;height:852px;background:#161826;display:flex;flex-direction:column;font-family:'JetBrains Mono',ui-monospace,monospace">
<div style="height:54px;flex:none;display:flex;align-items:flex-end;justify-content:space-between;padding:0 26px 8px;font:600 13px 'JetBrains Mono',monospace;color:#e9e9ed"><span>9:41</span><span style="display:flex;gap:5px;font-size:11px;color:#b2b6ca"><i class="ph ph-wifi-high"></i> <i class="ph ph-battery-high"></i> 78%</span></div>
<div style="height:44px;flex:none;display:flex;align-items:center;gap:9px;padding:0 14px;border-bottom:1px solid #2c2f3d">
<span style="color:#b5abfc;font-size:15px"><i class="ph ph-caret-left"></i></span>
<div style="flex:1;min-width:0"><div style="font:500 14px 'JetBrains Mono',monospace;color:#e9e9ed">mac-studio</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c">tmux dev · 0 build</div></div>
<div style="display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:6px;background:#232532;border:1px solid #3f424d;font:500 11px 'JetBrains Mono',monospace;color:#b2b6ca"><span style="width:5px;height:5px;border-radius:3px;background:#a6e3a1"></span>41ms</div>
<span style="color:#b2b6ca;font-size:15px"><i class="ph ph-columns"></i></span>
</div>
<div style="height:30px;flex:none;display:flex;align-items:center;gap:6px;padding:0 12px;background:#1b1d2b">
<div style="padding:3px 10px;border-radius:6px;background:#2b2741;font:500 11px 'JetBrains Mono',monospace;color:#d2cefd">0.0 zsh</div>
<div style="padding:3px 10px;border-radius:6px;font:400 11px 'JetBrains Mono',monospace;color:#75798c">0.1 btop</div>
<div style="padding:3px 10px;border-radius:6px;font:400 11px 'JetBrains Mono',monospace;color:#75798c">0.2 log</div>
<span style="margin-left:auto;font:400 10.5px 'JetBrains Mono',monospace;color:#5d5294">80×34</span>
</div>
<div style="flex:1;min-height:0;background:#1e1e2e;padding:10px 12px;font:400 10.5px/1.5 'JetBrains Mono',monospace;color:#cdd6f4;white-space:pre;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end"><div style="min-height:0;overflow:hidden"><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git fetch --all --prune</div><div><span style="color:#6c7086">Fetching origin … done</span></div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swiftformat --lint Sources</div><div><span style="color:#a6e3a1">✓ 0 issues in 84 files</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodebuild -showsdks | head -2</div><div><span style="color:#6c7086">iOS SDKs: iOS 26.2 (iphoneos26.2)</span></div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift build -c release --arch arm64</div><div><span style="color:#6c7086">[142/142] Compiling TXCore</span></div><div><span style="color:#6c7086">[ 8/8 ] Linking TerminalX</span></div><div><span style="color:#a6e3a1">✓ build complete (14.2s)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> swift test --package-path packages/TXCore</div><div><span style="color:#a6e3a1">◇ Test run started.</span></div><div><span style="color:#6c7086">↳ Suite "tmux control mode"</span></div><div> <span style="color:#a6e3a1"></span> parses %output escaped octal</div><div> <span style="color:#a6e3a1"></span> layout diff keeps pane identity</div><div> <span style="color:#a6e3a1"></span> DCS passthrough detected</div><div> <span style="color:#a6e3a1"></span> %window-add spawns pane tree</div><div><span style="color:#6c7086">↳ Suite "SessionMachine"</span></div><div> <span style="color:#a6e3a1"></span> backoff caps at 30s</div><div> <span style="color:#a6e3a1"></span> mosh three-phase resume</div><div> <span style="color:#a6e3a1"></span> host-key pin survives wipe</div><div><span style="color:#a6e3a1">◇ 50 tests passed after 0.412s</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcodegen generate --spec project.yml</div><div><span style="color:#a6e3a1">✅ Created TerminalX.xcodeproj</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> xcrun simctl list devices booted</div><div><span style="color:#6c7086">-- iOS 26.2 --</span></div><div><span style="color:#6c7086"> iPad Pro 13-inch (M4) (Booted)</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git pull --rebase</div><div><span style="color:#6c7086">From tsnet:athom/terminalx main</span></div><div><span style="color:#a6e3a1">Successfully rebased onto main.</span></div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> git status --short</div><div> <span style="color:#f9e2af">M</span> apps/TerminalX/iOS/ContentView.swift</div><div> <span style="color:#f9e2af">M</span> apps/TerminalX/iOS/Theme.swift</div><div><span style="color:#a6e3a1">??</span> docs/ui/ipad-rail.md</div><div>&nbsp;</div><div>&nbsp;</div><div><span style="color:#a6e3a1"></span> <span style="color:#89b4fa">tx</span> <span style="color:#f9e2af">git:(</span><span style="color:#f38ba8">main</span><span style="color:#f9e2af">)</span> <span style="background:#cdd6f4;color:#1e1e2e"> </span></div></div></div>
<div style="flex:none;background:#1b1d2b;border-top:1px solid #2c2f3d;padding:8px 10px;display:flex;flex-direction:column;gap:6px">
<div style="display:flex;gap:6px"><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">esc</div><div style="flex:1;height:38px;border-radius:8px;background:#2b2741;box-shadow:inset 0 0 0 1px #423a6a;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#d2cefd">ctrl</div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">tab</div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">~</div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">/</div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5">|</div></div>
<div style="display:flex;gap:6px"><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5"></div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5"></div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5"></div><div style="flex:1;height:38px;border-radius:8px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#cfd3e5"></div><div style="flex:1.6;height:38px;border-radius:8px;border:1px solid #796cbf;display:flex;align-items:center;justify-content:center;font:500 12px 'JetBrains Mono',monospace;color:#b5abfc">⌘K</div></div>
</div>
<div style="height:26px;flex:none;display:flex;align-items:center;justify-content:center"><div style="width:140px;height:5px;border-radius:3px;background:#4a4d5e"></div></div>
</div>
</div>
<div class="dv-card" style="border-radius:38px;width:393px">
<div data-screen-label="1h iPhone-主机" style="width:393px;height:852px;background:#161826;display:flex;flex-direction:column;font-family:'JetBrains Mono',ui-monospace,monospace">
<div style="height:54px;flex:none;display:flex;align-items:flex-end;justify-content:space-between;padding:0 26px 8px;font:600 13px 'JetBrains Mono',monospace;color:#e9e9ed"><span>9:41</span><span style="display:flex;gap:5px;font-size:11px;color:#b2b6ca"><i class="ph ph-wifi-high"></i> <i class="ph ph-battery-high"></i> 78%</span></div>
<div style="padding:6px 18px 12px;display:flex;align-items:center"><h2 style="margin:0;font:500 28px 'JetBrains Mono',monospace;letter-spacing:-.02em">主机</h2><span style="margin-left:auto;color:#b5abfc;font-size:17px"><i class="ph ph-plus"></i></span></div>
<div style="padding:0 16px 12px"><div style="height:34px;border-radius:9px;background:#232532;border:1px solid #3f424d;display:flex;align-items:center;gap:8px;padding:0 11px;font:400 13px 'JetBrains Mono',monospace;color:#75798c"><i class="ph ph-magnifying-glass"></i> 搜索</div></div>
<div style="padding:0 18px 6px;font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#75798c">活动会话</div>
<div style="padding:0 14px;display:flex;flex-direction:column;gap:8px">
<div style="background:#1b1d2b;border:1px solid #423a6a;border-radius:12px;overflow:hidden">
<div style="display:flex;align-items:center;gap:9px;padding:11px 13px"><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span><div style="flex:1"><div style="font:500 14px 'JetBrains Mono',monospace;color:#e9e9ed">mac-studio</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#9397ab">tmux dev · 3 windows</div></div><span style="font:500 11.5px 'JetBrains Mono',monospace;color:#a6e3a1">41ms</span></div>
<div style="height:66px;background:#1e1e2e;padding:8px 13px;font:400 10px/1.5 'JetBrains Mono',monospace;color:#a6adc8;white-space:pre;overflow:hidden"><div><span style="color:#a6e3a1"></span> swift test --package-path TXCore</div><div><span style="color:#a6e3a1">◇ 50 tests passed after 0.412s</span></div><div><span style="color:#a6e3a1"></span> <span style="background:#a6adc8;color:#1e1e2e"> </span></div></div>
</div>
<div style="background:#1b1d2b;border:1px solid #5c4a35;border-radius:12px;display:flex;align-items:center;gap:9px;padding:11px 13px"><span style="width:7px;height:7px;border-radius:4px;background:#fab387"></span><div style="flex:1"><div style="font:500 14px 'JetBrains Mono',monospace;color:#e9e9ed">nas-home</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#fab387">重连中 · 8s 后第 3 次</div></div><span style="font:500 11.5px 'JetBrains Mono',monospace;color:#b2b6ca">重试</span></div>
</div>
<div style="padding:16px 18px 6px;font:600 10px 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:#75798c">全部主机</div>
<div style="padding:0 14px;display:flex;flex-direction:column;gap:1px">
<div style="display:flex;align-items:center;gap:11px;padding:11px 8px"><span style="width:30px;height:30px;border-radius:8px;background:#232532;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:14px"><i class="ph ph-hard-drives"></i></span><div style="flex:1"><div style="font:400 14px 'JetBrains Mono',monospace;color:#cfd3e5">ubuntu-cn2</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c">ci@100.88.9.61 · mosh</div></div><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span></div><div style="height:1px;background:#232532;margin-left:49px"></div>
<div style="display:flex;align-items:center;gap:11px;padding:11px 8px"><span style="width:30px;height:30px;border-radius:8px;background:#232532;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:14px"><i class="ph ph-hard-drives"></i></span><div style="flex:1"><div style="font:400 14px 'JetBrains Mono',monospace;color:#cfd3e5">edge-sg1</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c">root@100.77.4.2 · SSH</div></div><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span></div><div style="height:1px;background:#232532;margin-left:49px"></div>
<div style="display:flex;align-items:center;gap:11px;padding:11px 8px"><span style="width:30px;height:30px;border-radius:8px;background:#232532;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:14px"><i class="ph ph-desktop-tower"></i></span><div style="flex:1"><div style="font:400 14px 'JetBrains Mono',monospace;color:#cfd3e5">nas-home</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c">yz@100.104.2.18</div></div><span style="width:7px;height:7px;border-radius:4px;background:#fab387"></span></div><div style="height:1px;background:#232532;margin-left:49px"></div>
<div style="display:flex;align-items:center;gap:11px;padding:11px 8px"><span style="width:30px;height:30px;border-radius:8px;background:#232532;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:14px"><i class="ph ph-cpu"></i></span><div style="flex:1"><div style="font:400 14px 'JetBrains Mono',monospace;color:#cfd3e5">pi-lab</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c">pi@100.104.2.9 · SSH</div></div><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span></div><div style="height:1px;background:#232532;margin-left:49px"></div>
<div style="display:flex;align-items:center;gap:11px;padding:11px 8px;opacity:.55"><span style="width:30px;height:30px;border-radius:8px;background:#232532;display:flex;align-items:center;justify-content:center;color:#9397ab;font-size:14px"><i class="ph ph-hard-drives"></i></span><div style="flex:1"><div style="font:400 14px 'JetBrains Mono',monospace;color:#cfd3e5">edge-sg2</div><div style="font:400 10.5px 'JetBrains Mono',monospace;color:#75798c">离线 4 小时</div></div><span style="width:7px;height:7px;border-radius:4px;background:#75798c"></span></div>
</div>
<div style="margin-top:auto;padding:10px 18px;display:flex;align-items:center;gap:9px;border-top:1px solid #2c2f3d"><span style="width:7px;height:7px;border-radius:4px;background:#a6e3a1"></span><div style="flex:1"><div style="font:500 11.5px 'JetBrains Mono',monospace;color:#cfd3e5">Tailscale 已连接</div><div style="font:400 10px 'JetBrains Mono',monospace;color:#75798c">iphone · 100.92.14.11</div></div></div>
<div style="height:56px;flex:none;display:flex;align-items:center;background:#1b1d2b;border-top:1px solid #2c2f3d"><div style="flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;color:#b5abfc"><span style="font-size:16px"><i class="ph ph-hard-drives"></i></span><span style="font:500 10px 'JetBrains Mono',monospace">主机</span></div><div style="flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;color:#75798c"><span style="font-size:16px"><i class="ph ph-terminal-window"></i></span><span style="font:400 10px 'JetBrains Mono',monospace">会话</span></div><div style="flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;color:#75798c"><span style="font-size:16px"><i class="ph ph-key"></i></span><span style="font:400 10px 'JetBrains Mono',monospace">密钥</span></div><div style="flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;color:#75798c"><span style="font-size:16px"><i class="ph ph-gear-six"></i></span><span style="font:400 10px 'JetBrains Mono',monospace">设置</span></div></div>
<div style="height:22px;flex:none;display:flex;align-items:center;justify-content:center"><div style="width:140px;height:5px;border-radius:3px;background:#4a4d5e"></div></div>
</div>
</div>
</div>
</div>
</div></div>
</div>
<p class="dv-next">下一步:细化 <a class="dv-oid" href="#1b">1b</a> 的 pane 拖拽 / 缩放态,或把 <a class="dv-oid" href="#1e">1e</a><a class="dv-oid" href="#1b">1b</a> 串成可点原型。</p>
</section>
</x-dc>
</body>
</html>