byobu + 屏幕颜色头痛

byobu + 屏幕颜色头痛

我在 FreeBSD 上安装了 byobu,并按顺序启用了用户、正常运行时间、平均负载、CPU 数量、CPU 频率、可用内存、已用内存、日期和时间通知模块。

无论我做什么,我似乎都无法弄清楚为什么 cpu freq 模块的颜色“太鲜艳”,并且覆盖了其后面所有启用模块的颜色。我反复检查了每个启用的脚本,似乎没有任何问题,但“2.7GHz”仍然显示为灰色上的白色,并且灰色上的白色与应该是绿色的内存以及应该没有颜色的日期和时间重叠。cpu_freq 模块脚本如下:

PKG="byobu"
color 2>/dev/null || color() { true; }

freq=$(sysctl hw.clockrate | awk '{ printf "%.1f", $2 / 1000 }')
printf "$(color b c W)%s$(color -)$(color c W)%s$(color -) " "$freq" "GHz"

问题截图:http://img823.imageshack.us/img823/448/byobuwoes.jpg

有谁知道这是什么原因造成的吗?

答案1

好问题...

您在此处看到的行为是由于漏洞(或限制)在您的屏幕版本中。

如果你查看文件的源代码/usr/share/byobu/profiles/common,你会看到底部有一条注释:

# NOTE: Older version of Screen have an arbitrary limit of only being able
# to change colors 16 times in this 'hardstatus string'.
# Ubuntu (fixed in Jaunty):
#  * https://bugs.launchpad.net/bugs/315871
# Upstream:
#  * http://savannah.gnu.org/bugs/?22146

该修复程序于 2010 年 1 月应用于 GNU Screen 的 git 存储库,但 GNU Screen 已 5 年多未发布。一些 GNU Screen 发行版(如 Debian 和 Ubuntu)已挑选了这个简单的单行修复程序。您可以请求 FreeBSD 也这样做。

完全披露:我是 Byobu 的作者和维护者,也是向上游 GNU Screen 源代码库提交修复程序的作者。

相关内容