tmux 原生菜单

动机 在 Neovim 里用惯了 which-key,按完前缀弹出个菜单提醒快捷键,对记忆负担小。想在 tmux 里也搞一套。 社区有几个方案: tmux-which-key —— 功能最接近 Neovim 的 which-key,YAML 配置层级菜单,基于 tmux 的 display-menu。 tmux-menus —— 预设菜单集合,覆盖常用操作。 tmux 原生 display-menu —— tmux 3.0+ 内置,不用插件,自己写绑定就能弹菜单。 插件方案要先装 tpm,我这边 tpm 都还没装,且配置文件里没几行,直接用原生 display-menu 最省事。 基本用法 bind Space display-menu -T "#[align=centre]Menu" -x C -y C \ "New window" c "new-window" \ "Split horizontal" - "split-window -v" \ "Kill pane" x "kill-pane" 每行三个参数:显示文本、快捷字符、执行命令。prefix + Space 弹出菜单。 -T 标题,#[align=centre] 是 style 标记让标题居中 -x C -y C 位置居中 空字符串 "" 作为"项"是分隔线 菜单里按对应字母直接选,也能用 j/k 或方向键上下移动,回车确认,q 或 Esc 关闭。 ...

2026年5月13日 · 2 分钟 · changyu

用 tmux 遥控 Claude Code

起因 Claude Code 是个 TUI,输入输出绑在终端里。想让别的程序操控一个正在跑的会话,官方没给 SDK,得自己想办法。 翻了两个项目,都是拿 tmux 做地基: hermes agent 的 claude-code skill —— NousResearch/hermes-agent,skill 路径 skills/autonomous-ai-agents/claude-code/SKILL.md ccbot —— six-ddc/ccbot 一个是让 agent 遥控 Claude,一个是让人从聊天软件遥控 Claude。角度很不一样,但底下都是 tmux。记一下为什么。 为什么先想到 tmux 遥控 TUI 有三个硬约束: 全屏 TUI,不能 echo prompt | claude 管道喂 claude -p 跑完就退,交互模式又没 API 信任对话框、权限弹窗这些只出现在屏幕上,裸 PTY 不好稳定识别 tmux 一把解决,而且顺手多给了几样: 能力 用来干什么 new-session -d 后台起 pty 容器跑 claude,不占前台 send-keys 打字、按方向键、发 Enter capture-pane 抓屏幕文本(可带 ANSI 色码) daemon session 脱离父进程,脚本挂了 claude 还在 tmux attach 人工随时接管 window/session 多路复用,N 个 claude 就是 N 个 window 前三条是"遥控"需要的,后三条是附送的——但后三条恰恰是 ccbot 那种"从手机切回桌面"场景的关键。 ...

2026年5月13日 · 2 分钟 · changyu

tmux 输入法自动切换

问题 macOS 上用中文输入法(系统双拼、搜狗等),tmux 里按 prefix(C-b)之后的单字符命令 —— c 新建窗口、x 杀 pane —— 会被输入法吞掉当拼音,tmux 命令不触发。 取舍 只切去,不切回 菜单/命令结束后输入法仍是 ABC,回到 shell 继续打中文需要手动 Ctrl+Space 切回。 想要自动恢复需要先存当前 IME、在每个绑定结束时切回 —— tmux 没有"退出 prefix 表"的 hook,实现起来较繁琐,简单方案够用。 配置 set -g prefix None unbind C-b bind-key -n C-b run-shell -b "macism com.apple.keylayout.ABC" \; switch-client -T prefix macism 是一个 macOS 下的命令行输入法切换工具,通过 TIS API 读取/设置当前输入源,几毫秒完成切换。安装: brew install laishulu/homebrew/macism 验证可用: macism # 打印当前输入法 ID macism com.apple.keylayout.ABC # 切到英文 常见 ID: 英文:com.apple.keylayout.ABC 系统双拼:com.apple.inputmethod.SCIM.Shuangpin 系统拼音:com.apple.inputmethod.SCIM.ITABC 重载 tmux 配置: ...

2025年5月12日 · 1 分钟 · changyu