跳转到内容

View 规则

一个 pane 的标签标题、图标与徽章由 View 规则引擎 从上下文推导 (设计见 ADR 0007)。规则存放于 ~/.config/mtty/views.json(JSON)。文件修改后 mtty 会自动重新加载,下一次有操作时 几秒内生效;应用内的规则编辑器尚未提供。

{
"rules": [
{
"name": "work repos", // 仅供编辑器显示的标签
"match": { "path": "~/work/**" }, // path|command|agent|host|file
"alias": "work", // 供 {alias} 使用的短名
"icon": { "name": "git-branch", "color": "#81a1c1" },
"title": "{alias}:{folder}",
"badge": "repo" // 可选
},
{ "match": { "agent": "claude" }, "icon": { "name": "claude" } },
{ "match": {}, "title": "{folder} · {osc_title}" } // 兜底
],
"projects": [ { "path": "~/work/miao", "alias": "miao" } ],
"worktree_suffix": true
}
  • 规则是有序列表;第一条所有已给出的子句都命中的规则胜出。在文件中调整顺序。
  • 子句:path(对工作目录做 glob,展开 ~;模式经过符号链接目录时也匹配解析后的真实目录)、 command(前台程序名,如 vim、cargo;shell 空闲等待输入时为空)、agent(精确名)、 host(SSH 标签的主机)、file。
  • Glob:* 仅在单个路径段内匹配,** 跨 /,? 匹配一个字符;区分大小写。
  • 空 match({})匹配一切 —— 用作兜底。

变量:{alias} {cwd} {folder} {user} {host} {agent} {branch} {command} {title} {osc_title} {shell} {index} {file}。未知变量渲染为空。

projects 把路径映射为别名(最长前缀胜出),在没有规则给出 alias 时作为 {alias} 兜底。开启 worktree_suffix: true 时,.worktrees/<name> 检出会得到 <alias>-<name>。

icon 接受内置 name、emoji,以及 color(#rrggbb)。名称未命中时依次回退到 emoji、再到纯色圆点。内置名称:

folder、file、file-text、terminal、code、git-branch、git-commit、 github、globe、bug、flame、cpu、cloud、database、package、 box、coffee、heart、star、flag、zap、lock、search、settings、 user、home、bell、layers、claude。

没有命中规则也没有项目时,标签显示工作目录的目录名,其次为程序的 OSC 标题。 views.json 缺失或格式错误时退化为同样的回退,而不会导致启动失败。


Synced from oxdingzg/mtty@b65a3d1.