ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

WaveTerm 插件完整指南:一条 JSON 配出终端里的自定义面板

WaveTerm 插件完整指南:一条 JSON 配出终端里的自定义面板 WaveTerm 插件完整指南一条 JSON 配出终端里的自定义面板【免费下载链接】wavetermAn open-source, AI-integrated, cross-platform terminal for seamless workflows项目地址: https://gitcode.com/GitHub_Trending/wa/waveterm写长任务时想盯着 CPU 曲线却总要在浏览器和终端之间来回切用 WaveTerm 插件就能把面板直接钉在终端侧栏不用离开窗口。WaveTerm 插件开发其实只有两条路一段widgets.json配置或一个 TsunamiGo 框架小应用。插件体系怎么分工WaveTerm 的扩展分两层先分清自己属于哪层少走弯路widgets.json 声明式配置把终端命令、网页、系统监控等封装成 widget bar 上的按钮适合点开即用的场景不写代码改完即生效。Tsunami 插件框架基于 VDOM 的 Go 框架负责带状态、带交互的应用按钮、倒计时、图表刷新适合 JSON 表达不了的逻辑。简单记能配置解决的别写代码要交互的再上 Go。一条 JSON 配出 3 分钟构建监控面板新建一个 widget 只需要在WAVETERM_HOME/config/widgets.json的对象里加一个键值对下面是完整可复制的最小示例——一个 3 分钟窗口的 CPU内存监控面板3min-build : { icon: gauge, label: 构建监控, blockdef: { meta: { view: sysinfo, graph:numpoints: 180, sysinfo:type: CPU Mem } } }字段逐个说icon/label/colorwidget bar 上的图标Font Awesome 图标名、文字和颜色纯外观字段缺省也有默认值。blockdef.meta真正的行为定义view决定打开什么视图。view: sysinfo打开系统监控面板内置CPU、Mem、CPU Mem、All CPU四种图区分大小写。graph:numpoints: 180图表保留 180 个数据点也就是 3 分钟窗口正好盖住一次中等长度的构建。sysinfo:type: CPU Mem默认同时绘制 CPU 和内存两条曲线。保存后 widget bar 会多出一个按钮点开就是这个效果同样的结构换几行配置还能挂dua磁盘分析器、speedtest 测速、甚至固定打开某个网页——完整字段表和每种视图term / web / sysinfo的选项都在自定义插件文档里。配置不够用时上 GoJSON 只能声明一个面板一旦要按钮、倒计时、状态切换这类逻辑就该用 Tsunami 插件框架写 Go 了。仓库自带一套可直接抄的示例插件番茄钟、Todo、GitHub Actions 监控等每个目录就是一个独立 Go 模块tsunami/demo/pomodoro/ ├── app.go # 组件与状态逻辑 ├── go.mod / go.sum └── static/tw.css核心代码就几行摘自 pomodoro 示例remainingSecondsAtom app.DataAtom(remainingSeconds, 25*60, app.AtomMeta{ Desc: Remaining seconds in current pomodoro timer, }) var App app.DefineComponent(App, func(_ struct{}) any { app.UseTicker(time.Second, func() { /* 每秒把剩余秒数更新到 atom */ }, []any{}) return vdom.H(div, nil, ...) // 渲染 UI })白话说DefineComponent声明一个组件UseTicker挂了一个每秒执行一次的定时器去改数据数据一变 UI 自动重渲染——和前端框架的响应式套路一致只是状态写在 Go 里。打包与安装只要两条命令开发阶段可以直接跑tsunami run tsunami/demo/pomodoro—— 构建并启动应用tsunami package tsunami/demo/pomodoro—— 把整个目录打成一个自包含的.tsapp文件装到本机把构建出的应用放进~/.waveapps/local/应用名/waveappstore 就是从这个目录发现本地应用重启 WaveTerm 后即可从应用栏启动。⚠️ 两个常见坑tsunami run需要在开发环境跑它依赖TSUNAMI_SCAFFOLDPATH/TSUNAMI_SDKREPLACEPATH等环境变量见 tsunami CLI嫌麻烦就直接拷一个 demo 目录改代码。改了代码要重新构建WaveTerm 不会热加载~/.waveapps下的旧产物。继续往下挖docs/docs/customwidgets.mdx官方文档覆盖 widgets.json 全部字段含 term / web / sysinfo 三类视图。tsunami/demo/示例插件合集抄一个 pomodoro 改一改是最快的上手方式。tsunami/app/Tsunami 框架核心 APIApp、DefineComponent、DataAtom、UseTicker 都在这。建议从 pomodoro 那份app.go读起改完跑一遍tsunami run你就有第一个自己的 WaveTerm 终端扩展了。【免费下载链接】wavetermAn open-source, AI-integrated, cross-platform terminal for seamless workflows项目地址: https://gitcode.com/GitHub_Trending/wa/waveterm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表