字
字节笔记本
2026年9月26日
tty7 界面没颜色?根因是 NO_COLOR=1 泄漏进了守护进程
API中转
¥120
tty7 窗格里 Grok 的界面突然只剩粗体和反色,而提示符还是彩色的——遇到这种情况,先去查 NO_COLOR 这个环境变量是从哪继承来的。tty7 本身一直能正常显示颜色,问题出在 Grok 看到这个变量后,主动不再输出颜色码。
现象:界面没色,提示符有色
Grok 启动时只要发现设置了 NO_COLOR,整个界面就退成粗体加反色。提示符之所以还保留彩色,是因为它自己写死了转义码,不看这个变量。所以「部分彩色、部分单色」这种组合,恰好说明终端的渲染能力没问题,是应用层在读环境变量后主动降级。
确认方法很简单,在出问题的窗格里执行:
bash
env | grep -iE 'NO_COLOR|CLICOLOR|COLORTERM|TERM'如果看到 NO_COLOR=1,基本就锁定原因了。
根因:守护进程继承了工具环境
上次出问题的那个 tty7,是从 Grok 的工具进程里打开的。守护进程随之继承了工具环境里的三个变量:
NO_COLOR=1GROK_AGENT=1CLICOLOR=0
每个新窗格都从守护进程继承同一套环境,于是整个会话都是单色的。
处理:换干净的守护进程,声明真彩色
两步:
- 换掉带污染环境的守护进程。现在这个已经换过,当前环境是
TERM=xterm-256color、COLORTERM=truecolor,没有 NO_COLOR。 - 在
~/.config/tty7/config.json里加上COLORTERM=truecolor。以后每个新窗格都会声明真彩色,Grok 会按 24 位色来画主题。
以后怎么启动
用 Dock、Spotlight,或者在 iTerm 里执行 open -a tty7 打开即可。
不要从 Grok 正在执行的命令里启动 tty7——那样工具环境又会把 NO_COLOR=1 带进守护进程,问题会原样复发。
相关文章
分享: