Linx 更新日志:从 Tauri v1 到 v2,多标签终端与实时监控
概述
Linx 在过去一周完成了从 Tauri v1 到 v2 的完整迁移,并在此基础上落地了多项核心功能:多标签终端、实时服务器监控、密码加密存储、Toast 通知系统,以及全新的服务器管理 UI。本文梳理这段时间的全部变更。
Tauri v2 迁移
项目从 Tauri v1 迁移到 v2,涉及配置结构、权限模型、构建流程的全面调整:
Cargo.toml:tauri/tauri-build 升级到 2,新增tauri-plugin-openertauri.conf.json:重构为 v2 schema(app/build/bundle顶层结构,移除allowlist)capabilities/default.json:用权限化的 ACL 替代旧的 allowlist- 解决了一系列 v2 API 变更:
DisconnectCode::Normal→ByApplication、disconnect()参数包裹Some、channel.read_to_string导入等
CI 也同步调整——Linux runner 固定到 ubuntu-22.04 以兼容 Tauri v1 依赖,发布改为 tag 触发。
多标签终端
原来的单连接模型替换为多标签系统:
- 每个服务器连接独立一个标签页,支持自由切换
- 双击服务器列表自动连接并打开新标签
- 已有标签时双击自动重连而非重复打开
- PTY 交互式 shell:基于事件的
start_shell/write_ssh/resize_ssh,非阻塞读写线程
实时监控面板
监控系统做了架构级重构,核心改进:
- 独立连接:监控连接和 shell 连接分离,避免互相干扰
- 网络速率:实时计算并显示上传/下载速率
- CPU 逐核心:基于 tick 快照计算 CPU 使用率 delta,不再依赖 sysinfo 的解析
- 凭据缓存:服务器密码缓存后可自动重连监控,断开后无需重新输入
密码加密存储
服务器密码使用 AES-256-GCM 加密后存储在 SQLite 中:
- 加密密钥保存在
~/.linx/.key - 读取时自动检测:明文密码自动迁移到加密存储
- 新增
get_server_by_id/get_server_password解密接口
服务器管理 UI
全新的服务器管理界面:
- ServerDialog:创建/编辑/删除服务器的完整表单
- GroupDialog:分组的创建/重命名/删除
- ContextMenu:右键菜单支持编辑、删除、复制连接信息
- 导入/导出:支持配置的 JSON 导入导出
- 状态轮询:带
connectedServerId门控的轮询机制
Toast 通知系统
集成 ToastProvider 到应用根组件,支持全局消息提示。TabBar 和 Toast 样式同步添加。
UI 样式优化(6/6)
最新一轮视觉调整:
- 分组标题:左侧蓝色边框 + 背景色 + 加粗字体
- 服务器项之间添加分隔线
- 整体文字颜色亮度提升
- Windows MSI 安装包中文支持
CI/CD
- 新增 GitHub Actions 工作流,构建
.deb(Linux)和.msi(Windows) - 矩阵构建加
fail-fast: false,各平台独立运行 - 发布改为 tag 触发:推送
v*标签时自动构建并创建 Release
已知问题
- 分组内的服务器列表在高频操作时偶有闪烁,后续考虑虚拟滚动优化
- 监控面板的网络速率在连接断开时会短暂显示异常值
Linx 是一个基于 Tauri v2 的 SSH 终端管理桌面应用,支持多标签终端、实时服务器监控、分组管理和配置导入导出。