如何通过ASCII OSC序列在GNOME终端标签显示进度条?
Gnome-Terminal 标签进度指示器 OSC 命令无效问题解决
问题描述
vte 0.80.0 搭配 gnome-terminal 3.65.0 已支持在终端标签左侧显示进度指示器功能,可通过 ANSI 转义码中的 Operating System Commands (OSC) 控制。测试时执行以下命令无任何显示效果:
# 尝试设置进度为50%并等待5秒 echo -ne "\e]9;4;1;50\a" && sleep 5
已确认终端标题设置命令、Control Sequence Introducers (CSI) 相关功能均正常。
问题原因
使用了错误的 OSC 命令终止符:原命令以 \a(响铃字符)作为终止符,但 vte/gnome-terminal 对该进度指示器的 OSC 命令要求使用 **ESC **(即转义后的 \e\\)作为 ST(String Terminator)字符串终止符。
解决方法
替换为正确的终止符执行命令,示例如下:
echo -ne "\e]9;4;1;75\e\\"
注意:需在多标签模式下查看效果,可正常显示25%、75%、100%等不同进度状态。
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

