mcpField
C
cmux-settings

cmux-settings

github.com/manaflow-ai生产力3964 次安装9 周前更新
代码仓库

关于 cmux-settings

用于读取和编辑 `cmux.json` 用户设置的技能。它通过辅助脚本处理 JSONC、校验受支持的键并核对修改;保存后 cmux 会自动应用,无需重启。

主要功能

  1. 01按 JSON 路径读取和编辑设置
  2. 02原始转储时保留 JSONC 注释
  3. 03根据 schema 校验设置键
  4. 04通过辅助脚本原子写入
  5. 05核对修改并还原设置键

适用场景

  1. 01修改 cmux 外观或侧边栏设置
  2. 02调整浏览器、通知或快捷键偏好
  3. 03批量编辑前检查设置键

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/manaflow-ai/cmux-skills --skill cmux-settings

安装后在 Claude Code 中输入/cmux-settings确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
all-keys.md
shortcut-actions.md
scripts/
cmux-settings

详细介绍

cmux-settings

cmux 从 ~/.config/cmux/cmux.json(JSONC)读取用户设置。应用会安装文件监视器;保存文件后会立即应用更改,无需重启。仅当 cmux.json 中不存在相应键时,才会将旧版 ~/.config/cmux/settings.json 作为备用文件读取。

架构:https://raw.githubusercontent.com/manaflow-ai/cmux/main/web/data/cmux.schema.json。权威路径列表位于 repo/Sources/CmuxSettingsJSONPathSupport.swift。顶层部分包括 app、terminal、notifications、sidebar、sidebarAppearance、workspaceColors、automation、browser 和 shortcuts。非设置部分(actions、ui、commands、vault、rightSidebar)也与它们共存于同一文件中。

辅助脚本

每次读取或写入时都使用随附的辅助脚本。它会去除 JSONC 注释、以原子方式写入,并根据架构验证键。

# From the installed skill directory:
./scripts/cmux-settings <subcommand>

为简洁起见,本文其余部分假定脚本位于 $PATH 中,名称为 cmux-settings。若要在当前会话中实现这一点,请将该 skill 的 scripts/ 目录添加到 $PATH:

export PATH="$(dirname "$(realpath "$0")")/scripts:$PATH"   # from inside the skill
# or, after installing with skills.sh:
export PATH="$HOME/.claude/skills/cmux-settings/scripts:$PATH"

子命令:

命令功能
cmux-settings path打印配置路径。
cmux-settings dump打印原始文件(保留注释)。
cmux-settings dump --no-comments打印解析后的 JSON。
cmux-settings get <a.b.c>打印点分隔 JSON 路径对应的值。
cmux-settings set <a.b.c> <value>设置值。<value> 会按 JSON 解析(true、42、"text"、[…]、{…});不带引号的普通字符串会作为字符串存储。
cmux-settings unset <a.b.c>删除键,恢复为应用内默认值。
cmux-settings list-supported列出应用识别的所有设置 JSON 路径。
cmux-settings validate解析文件并标记所有未知设置键。
cmux-settings open使用 $EDITOR、VS Code、Cursor 或 TextEdit 打开 cmux.json。

--file <path> 可指定目标文件(当用户将内容保存在旧版文件中时,可使用 --file ~/.config/cmux/settings.json)。

工作流

  1. 确认更改。如果用户用自然语言提到了某项设置(例如“让侧边栏色调与终端背景一致”),请先查找该设置。
    cmux-settings list-supported | rg -i 'sidebar.*terminal|terminal.*sidebar'
    
  2. 设置值。JSON 字面量(true、false、数字、数组、对象)必须是有效 JSON。普通词语会作为字符串存储。
    cmux-settings set sidebarAppearance.matchTerminalBackground true
    cmux-settings set app.appearance dark
    cmux-settings set shortcuts.bindings.toggleSidebar cmd+b
    cmux-settings set shortcuts.bindings.newTab '["ctrl+b","c"]'
    cmux-settings set browser.hostsToOpenInEmbeddedBrowser '["localhost","*.internal.example"]'
    
  3. 通过读取并验证来确认结果。
    cmux-settings get sidebarAppearance.matchTerminalBackground
    cmux-settings validate
    
  4. 告知用户设置已自动重新加载,无需重启应用。如需恢复,请运行 cmux-settings unset <key>。

快速参考

  • 外观:app.appearance = "system" | "light" | "dark"、app.appIcon、app.menuBarOnly、app.minimalMode。
  • 侧边栏色调:sidebarAppearance.matchTerminalBackground、sidebarAppearance.tintColor、sidebarAppearance.tintOpacity(0..1)。
  • 侧边栏详情:sidebar.hideAllDetails、sidebar.showBranchDirectory、sidebar.showPullRequests、sidebar.showPorts、sidebar.showLog。
  • 通知:notifications.dockBadge、notifications.sound(枚举值包括 "none"、"custom_file")、notifications.customSoundFilePath、notifications.hooks(数组)。
  • 浏览器:browser.defaultSearchEngine、browser.theme、browser.openTerminalLinksInCmuxBrowser、browser.hostsToOpenInEmbeddedBrowser。
  • 自动化:automation.socketControlMode(off | cmuxOnly | automation | password | allowAll)、automation.portBase、automation.portRange。
  • 快捷键:shortcuts.bindings.<actionId> = "cmd+b"、["ctrl+b","c"]、null 或 ""(用于解除绑定)。请参阅 references/shortcut-actions.md。

如需查看完整的设置列表、默认值和说明,请运行 cmux-settings list-supported 或阅读 references/all-keys.md。

规则

  • 只能编辑 cmux.json。除非用户明确要求,否则绝不要编辑 settings.json;它是旧版文件,仅当 cmux.json 中不存在相应键时才会读取。
  • 应用更改时,绝不要让用户重启 cmux。文件监视器会在保存后重新加载。
  • 批量编辑后务必验证:cmux-settings validate。未知键表示用户粘贴了应用不会读取的键。
  • 不要盲目覆盖顶层部分(actions、ui、commands、vault、rightSidebar)。它们位于同一文件中,包含用户手动调整过的非设置配置。
  • 快捷键动作 ID 必须与架构枚举相匹配。绑定前请查阅 references/shortcut-actions.md。
  • 颜色值必须为 #RRGGBB。不透明度范围为 0..1。
  • 对于用户用应用界面语言表述的设置(例如“设置 > 通知 > Dock 徽章”),请先转换为对应的 JSON 路径;repo/web/app/[locale]/docs/configuration/page.tsx 中的文档页面与架构一一对应。

评论

支持 Markdown