WaveTerm 小部件实战:改一个 JSON 文件,给终端装上监控面板和网页
【免费下载链接】wavetermAn open-source, AI-integrated, cross-platform terminal for seamless workflows项目地址: https://gitcode.com/GitHub_Trending/wa/waveterm
给终端"加料"这件事,在 WaveTerm 里就是改一个 JSON 文件。它把系统监控、快捷命令、网页和多种 shell 直接嵌进同一个窗口,还能通过 WaveTerm 主题定制把字体、配色、透明度调成自己的样子——不需要写任何代码。
WaveTerm 多面板界面:同一窗口内集成了终端、监控和 Web 小部件
场景篇:你的终端里还缺什么
写代码时你想瞄一眼 CPU,要切出去开监控工具;跑某个命令频率很高,却每次都得手敲一遍;查资料还要切到浏览器。来回切换的成本其实挺高。WaveTerm 对此有两件工具:一是小部件(Widget),在右侧小部件栏加一个按钮,点一下就在窗口里开出一个对应面板;二是主题,负责字体、配色和窗口这些视觉层面的事。功能上按需加,样式上随心改,两件事各管一摊。
动手篇:widgets.json 怎么改出第一个小部件 🛠
所有 WaveTerm 小部件都写在配置目录下的widgets.json里,新增、修改、移除都靠这一个文件。在终端里运行wsh editconfig可以直接用内置编辑器打开它。
最短可用的配置长这样,加进widgets.json保存即可:
"all-cpu": { "icon": "chart-scatter", "label": "all-cpu", "blockdef": { "meta": { "view": "sysinfo", "sysinfo:type": "All CPU" } } }逐字段拆开看:
| 字段 | 作用 | 说明 |
|---|---|---|
"all-cpu" | 小部件的唯一名称 | 起什么都行,就是栏里显示的名称来源之一 |
| icon | 图标 | 用 Font Awesome 图标名,如chart-scatter;品牌图标要加brands@前缀 |
| label | 文字标签 | 悬停时还会当提示文字用;不加color时标签用默认文字色 |
| blockdef.meta.view | 面板类型 | 决定这个按钮点开的是什么,是整个配置的核心 |
| sysinfo:type | 监控图表种类 | 有效值:CPU、Mem、CPU + Mem、All CPU,大小写敏感 |
加了自定义 WaveTerm 小部件后的工具栏
系统监控小部件怎么加
上面的例子就是:点开即在右侧画一张曲线图,显示所有 CPU 核心的实时使用率。默认图窗覆盖 100 秒,graph:numpoints可以把它拉长,比如设成180就能完整看到一次三分钟构建的 CPU 和内存走势(此时把sysinfo:type设为CPU + Mem)。
Web 小部件怎么加
给 meta 里加两个键:"url"是小部件打开时的起始页,"pinnedurl"是点"主页"按钮回到的页面。比如起始页固定到某个内部文档站点、主页固定到搜索页,两者可以设成不同的地址,相当于一个带书签的浏览器入口。
自定义 fish shell 小部件,带特色绿色标识
其他小部件类型一览
| 类型 | 作用 | view 取值 | 上手难度 |
|---|---|---|---|
| 终端 / shell | 点开即用指定 shell(如 fish、pwsh)开会话,可用term:localshellpath指定路径 | term+controller: "shell" | ★ |
| 一次性命令 | 点开就跑一条命令(如speedtest-go --unix),头部带刷新按钮可重跑 | term+controller: "cmd" | ★ |
| 远程终端 | 直接连好某条 SSH / WSL 连接再开终端,connection填连接名 | term | ★★ |
| 网页 | 内嵌浏览器,指定起始页与主页 | web | ★ |
| 系统监控 | CPU / 内存实时曲线,图表类型和时间窗可调 | sysinfo | ★ |
| 进程列表 | 实时查看进程树 | processviewer | ★ |
| 文件预览 | 打开目录文件浏览器,file指定起始目录 | preview | ★ |
外观篇:终端主题配置项一览
WaveTerm 主题相关的设置集中在settings.json(和widgets.json同一个配置目录),键名用冒号分层,常见的一览如下:
| 配置项 | 含义 |
|---|---|
| term:fontsize | 终端字体大小,如14 |
| term:fontfamily | 终端字体家族,必须是本机已安装的等宽字体 |
| term:theme | 终端配色方案名,可选值见默认termthemes.json |
| term:transparency | 终端背景透明度,0 到 1,默认 0.5 |
| term:cursor/term:cursorblink | 光标样式(block/underline/bar)与是否闪烁 |
| window:transparent/window:blur | 窗口透明或背景模糊,二者互斥,仅 macOS / Windows,改后需重启 |
| window:opacity | 配合上面两项生效,窗口不透明度(0-1) |
| window:bgcolor | 窗口背景色,十六进制,如"#1e1e1e" |
{ "term:fontsize": 14, "term:theme": "default-dark", "term:transparency": 0.3, "window:blur": true, "window:opacity": 0.95 }想要整套自定义配色,可以在配置目录里新建termthemes.json,格式照抄内置的那份;也可以在任意终端块头部右键,单独给那一个终端换主题,不影响全局默认值。
速查篇:配置目录路径与常用操作
📍 各平台配置目录(里面是widgets.json、settings.json、termthemes.json等):
| 平台 | 路径 |
|---|---|
| macOS | ~/.config/waveterm/ |
| Linux | ~/.config/waveterm/ |
| Windows | %USERPROFILE%\.waveterm\ |
- 移除默认小部件:把对应键在widgets.json里设为
null即可,例如"defwidget@files": null会移除默认文件管理器,"defwidget@web": null移除默认网页入口。内置五个键名是defwidget@terminal、defwidget@files、defwidget@web、defwidget@sysinfo、defwidget@processviewer。 - 不想用编辑器手动改文件时,
wsh editconfig是官方推荐的打开方式。 - 默认小部件的完整写法可以参考 pkg/wconfig/defaultconfig/widgets.json,照抄一份再改键名就行。
WaveTerm 默认的小部件栏
更完整的字段说明(比如cmd:env、cmd:cwd这类命令行进阶选项)在 docs/docs/customwidgets.mdx;主题、字体和窗口外观的详细键位则见 docs/docs/config.mdx。这两份文档读完后,上面提到的配置你基本都能自己拼出来了。
【免费下载链接】wavetermAn open-source, AI-integrated, cross-platform terminal for seamless workflows项目地址: https://gitcode.com/GitHub_Trending/wa/waveterm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考