 XuzandClaude Opus 5
|
321a65d842
|
探测主机操作系统并用它标记会话列表
每次连接成功后探测一次远端系统,会话树前面的图标换成对应的发行版
logo;没探测过或探测失败就画会话名的第一个字。
- 探测走一条独立的 exec 通道,跑 `uname -s; cat /etc/os-release`,
在主 IO 循环里和 shell 输出一起轮询,终端不会为此多等一个往返。
POSIX 那条毫无输出时(Windows 的 shell 就是这样)再问一次
`cmd /c ver`,仍认不出就放弃,会话保留原来的标记。
- 认 14 个发行版加通用 Linux、macOS、Windows 和三个 BSD。派生发行版
靠 ID_LIKE 兜底,Linux Mint 因此显示 Ubuntu。
- 结果沿 TerminalTransportEvent::HostOsDetected → 引擎 → TerminalView
→ TerminalPanel → 工作区 → SessionStore::set_host_os 这条链走,和
prompt 是同一套管线。os 列由 set_host_os 单独写,update_session 不
碰它,和 last_connected_at 一样。
- 图标是 assets/icons/os/ 下 20 个单色 SVG,取自 Simple Icons(CC0);
Windows 那个是自己画的四格,Simple Icons 已把微软图标下架。
- 加一步 V3 迁移补 os 列,这样已有的本地库不用删。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Ub6VpmWWAJB15MnYLT9G5
|
2026-09-12 12:36:20 +08:00 |
|