tmux 提供了一种称为控制模式的文本界面,允许应用程序使用简单的纯文本协议与 tmux 进行通信。
在控制模式下,client 在 stdin 上发送 tmux 命令或命令序列。每个命令将在 stdout 上产生一个输出块。一个输出块由 %begin 为开始,后跟输出内容(可能为空),以%end 或%error 为结束。%begin 和对应的%end 或%error 后有两个参数:整数时间(从 epoch 的秒数)和命令数。例如:
%begin 1363006971 2 0: ksh* (1 panes) [80x24] [layout b25f,80x24,0,0,2] @2 (active) %end 1363006971 2
在控制模式下,tmux 输出通知。输出块内绝不会发生通知。
预定义了一下几种通知
%exit [reason]
tmux 客户端立即退出,因为它没有附加到任何 session 或发生了错误。reason(如果存在)描述了客户端退出的原因。
%layout-change window-id window-layout window-visible-layout window-flags
ID 为 window-id 的 window 布局发生了变化。新布局是 window-layout。window 的可见布局是window-visible-layout,window 标志是window-flags。
%output pane-id value
window 的一个 pane 输出。将不可打印的字符和反斜杠转义为八进制。
%session-changed session-id name
client 现在附加到 ID 为 session-id 的会话中,该 session 的名为 name。
%session-renamed name
当前 session 被重命名为 name。
%sessions-changed
当前 session 被创建或者销毁。
%unlinked-window-add window-id
ID 为 window-id 的 window 已创建,但未链接到当前 session。
%window-add window-id
ID 为 window-id 的 window 链接到当前 session。
%window-close window-id
ID 为 window-id 的 window 关闭。
%window-renamed window-id name
ID 为 window-id 的 window 被重命名为 name。