No description
  • Rust 99.6%
  • Shell 0.4%
Find a file
2026-10-03 18:51:36 -07:00
.cargo feat: 初始提交 — nexshell 原生 Rust 终端(GPUI/warpui 单进程 app) 2026-06-20 21:45:06 -07:00
.forgejo/workflows fix(ci): 构建步骤弃用 shell:cmd,改 powershell 包 cmd.exe /c 2026-08-13 22:21:20 -07:00
.vscode feat: 初始提交 — nexshell 原生 Rust 终端(GPUI/warpui 单进程 app) 2026-06-20 21:45:06 -07:00
assets feat(container): 优化容器加载态与操作入口 2026-07-08 20:55:22 -07:00
docs fix(rdp):鼠标滚轮按物理格转发,每格 ±120 2026-10-03 18:51:24 -07:00
examples fix(examples):rdp_probe 补上 RdpEvent::ClipboardTransfer 分支 2026-10-02 04:09:17 -07:00
locales feat(telnet):新增 Telnet 连接方式(ADR 0018) 2026-10-02 04:00:24 -07:00
openspec docs(openspec): Warp 线晋级 main,勾选验收与门禁记录 2026-08-31 07:33:57 -07:00
patches feat(rdp): IronRDP 追平上游 2026-08 master,fork 补丁收缩到 9 项 2026-08-31 04:03:33 -07:00
scripts feat(telnet):新增 Telnet 连接方式(ADR 0018) 2026-10-02 04:00:24 -07:00
src fix(rdp):鼠标滚轮按物理格转发,每格 ±120 2026-10-03 18:51:24 -07:00
.gitignore docs: 开发约定移到 docs/conventions.md,AGENTS.md 不再入库 2026-09-27 07:18:24 -07:00
build.rs feat: 初始提交 — nexshell 原生 Rust 终端(GPUI/warpui 单进程 app) 2026-06-20 21:45:06 -07:00
Cargo.lock chore(release): v0.6.8;RDP 鼠标滚轮按物理格转发,warp integration_mirror 钉到 8f38ae88e(含滚轮格数补丁) 2026-10-03 18:51:36 -07:00
Cargo.toml chore(release): v0.6.8;RDP 鼠标滚轮按物理格转发,warp integration_mirror 钉到 8f38ae88e(含滚轮格数补丁) 2026-10-03 18:51:36 -07:00
CONTEXT.md fix(ui):串口 / Telnet 标签隐藏标题栏侧栏按钮 2026-10-02 04:07:38 -07:00
README.md docs: 开发约定移到 docs/conventions.md,AGENTS.md 不再入库 2026-09-27 07:18:24 -07:00
rust-toolchain.toml feat(rdp): IronRDP 追平上游 2026-08 master,fork 补丁收缩到 9 项 2026-08-31 04:03:33 -07:00
warp-compatibility.toml chore(release): v0.6.8;RDP 鼠标滚轮按物理格转发,warp integration_mirror 钉到 8f38ae88e(含滚轮格数补丁) 2026-10-03 18:51:36 -07:00

NexShell Native Shell

NexShell 的唯一架构:纯 Rust + GPUI/warpui 原生终端 app,自带全套 UI(标题栏/标签/活动栏/终端/底部工具/主机库/监控)。旧的 Tauri + React 外壳已于 2026-06 废弃并删除(见仓库历史)。

模块组织与开发约定见 docs/conventions.md:RootView 面板拆分、行数阈值、命名与可见性、主机相关三层、rustfmt 约定等。

命令

纯 Rust crate,直接用 cargo(在 nexshell/ 下):

cargo run                                     # 启动 app(default feature = warpui-app)
cargo check                                   # 类型检查
cargo test                                    # 跑测试
cargo check --target x86_64-pc-windows-msvc   # Windows 交叉编译 gate
bash scripts/build-dmg.sh                     # 打包 .app + DMG(开发者证书签名)

Metal Toolchain

GPUI 编译 Metal shader 需要 Xcode Metal Toolchain。多数 mac 上它默认激活,直接 cargo run 即可。若 cargo 报找不到 Metal Toolchain(装了但非默认),用 wrapper 自动探测注入:

bash scripts/cargo-run.sh         # = 注入 TOOLCHAINS 后 cargo run
bash scripts/cargo-run.sh check   # 透传任意 cargo 子命令

或手动 export TOOLCHAINS=$(xcodebuild -showComponent MetalToolchain | awk '/Identifier/{print $NF}');未装则 xcodebuild -downloadComponent MetalToolchain。

Warp 参考策略

Warp 源码是终端工程与 UI 打磨的首要参考——目标是把稳定的终端基础设施适配进 NexShell 的产品形态,而非嵌入整个 Warp app。每个 Rust 终端功能的实现都参考 Warp 对应代码,不自造轮子。warp 是供 NexShell 消费的集成镜像(官方上游 + NexShell 保护补丁);上游追平采用保留历史的完整 merge,并以保护清单、跨仓库兼容基线和运行门禁验证特性保全,见 ADR 0010。

从 Tauri 迁移的已知功能差异

数据无缝(与旧 Tauri 共用同一 com.matt.nexshell/nexshell.db),但旧版两项 host-library 邻近功能 native 端暂未实现,对应旧表成为库内孤儿数据(无害、不阻塞):

  • 快捷命令(旧 quick_commands 表):native 仅有 history ghost-text 补全,无用户自定义命令片段联想。
  • 标签自定义颜色(旧 tag_styles 表):native 标签用统一主题色,无 per-tag 配色。

即"功能对等"指 SSH / 主机库 / 终端 / 系统集成四大块 0 blocker,不含上述两项。若后续补齐,复用同库即可读回旧数据。