ARTICLE DETAIL

资讯详情

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

WaveTerm 插件开发手把手:3 个案例做出你的专属终端面板

WaveTerm 插件开发手把手:3 个案例做出你的专属终端面板 WaveTerm 插件开发手把手3 个案例做出你的专属终端面板【免费下载链接】wavetermAn open-source, AI-integrated, cross-platform terminal for seamless workflows项目地址: https://gitcode.com/GitHub_Trending/wa/wavetermWaveTerm 是一款开源跨平台终端靠插件Widget配置扩展。加几行 JSON 就能从侧栏拉起 shell、监控面板或网页应用。读完这篇 WaveTerm 插件教程你 30 分钟内能做出自己的终端扩展。一张表看懂三种插件形态做 WaveTerm 插件开发先记住插件本质是一个块靠meta里的view字段区分。常见的三种类型view取值能干什么终端 / CLIterm起一个 shell 或跑一次性命令用得最多Webweb打开指定页面相当于内嵌浏览器系统信息sysinfo画 CPU、内存曲线不用写代码动手前只改这一个文件先说环境按 BUILD.md 编译好即可终端能跑就行。 然后WaveTerm 里所有插件只认同一个文件WAVETERM_HOME/config/widgets.json这份 widgets.json 配置是整个扩展的唯一入口。确认 WaveTerm 已装好并能启动。打开config/widgets.json这是唯一的插件配置入口。把下面某个模板抄进去起个不重名的 key。保存、重启终端侧栏就会多出那个新图标。5 分钟让 CPU 曲线跑起来从最简单的系统信息插件开始。把下面这段贴进 widgets.jsonall-cpu: { icon: chart-scatter, label: all-cpu, blockdef: { meta: { view: sysinfo, sysinfo:type: All CPU // 关键显示哪组曲线区分大小写 } } }保存面板就出来了。点侧栏图标每个核心的使用率会实时滚动。想换内存把sysinfo:type改成Mem即可。全核 CPU 实时曲线JSON 写不动的时候上 Go要每秒刷数据、画图、按钮有反应JSON 就表达不了了。对需要动态数据的 WaveTerm 插件开发Tsunami 是正解用 Go 写插件分三层——数据原子存状态、定时器驱动更新、vdom 画界面。下面是一个 Tsunami 框架 Go 插件的核心骨架var cpuDataAtom app.DataAtom(cpuData, []Point{}) // 关键数据原子存状态 var App app.DefineComponent(App, func(_ struct{}) any { app.UseTicker(time.Second, func() { // 关键定时器每秒触发 cpuDataAtom.SetFn(func(old []Point) []Point { return append(old, sampleCPU()) }) }, []any{}) return vdom.H(div, map[string]any{className: p-6}, // 关键vdom 渲染界面 vdom.H(span, nil, cpuDataAtom.Get())) })跑通示例在 tsunami 演示目录的cpuchart里把采样函数换成你的逻辑就是一个自己的面板。打包上架两条命令开发完用两条 wsh 命令打包并安装这就是 wsh 打包命令最直接的用法wsh pack --name cpu-monitor --src ./cpuchart这里有个小坑--src要指向插件根目录go.mod和app.go所在那层指到上一层打包出来会没有app.go。wsh install ./cpu-monitor.wp装完新插件直接出现在 WaveTerm 侧栏这就是 WaveTerm 插件教程的最后一步。再玩两个花样 遇到问题找这里拖放是自带的。抓住任一 widget 的标题条拖动会出现绿色预览落点位置高亮成绿框。落在两块之间就从中分落在另一块正上方就两块互换。绿框即拖放落点想让插件接上 WaveAI就在 meta 里加一个cmd:jwt: true它会把 JWT 注入启动环境AI 就能读到这个块的数据。比如把waveai --interactive起成 cmd 插件它能直接跟面板内容对话。问改了 widgets.json 图标不出来 答保存后重启终端再点侧栏刷新图标。问图标名去哪找 答用 Font Awesome 的名字如chart-scatter品牌图标要加brands前缀。问CPU 图是空的 答sysinfo:type区分大小写只能是CPU/Mem/CPU Mem/All CPU四个值之一。参考仓库内相对路径自定义 Widget 配置详解docs/docs/customwidgets.mdxTsunami Go 插件示例tsunami/demo/Widget 行为说明docs/docs/widgets.mdx【免费下载链接】wavetermAn open-source, AI-integrated, cross-platform terminal for seamless workflows项目地址: https://gitcode.com/GitHub_Trending/wa/waveterm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表