我自己编译的少数软件之一是屏幕。我发现它倾向于比存储库中的版本更好地支持终端的一些现代功能。我已经这样做了一段时间了,没有太多问题。但是,在升级到 18.04 时,(真)颜色似乎已经损坏。
我运行这段代码来打印彩虹,它仍然可以在裸机中工作:
awk 'BEGIN{
s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
for (colnum = 0; colnum<77; colnum++) {
r = 255-(colnum*255/76);
g = (colnum*510/76);
b = (colnum*255/76);
if (g>255) g = 510-g;
printf "\033[48;2;%d;%d;%dm", r,g,b;
printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
printf "%s\033[0m", substr(s,colnum+1,1);
}
printf "\n";
}'
但是,当我启动屏幕时,颜色是关闭的。它似乎没有回落到 256 色,而是颜色值错误。
我在重新编译屏幕之前看到了这种行为。看到这个问题后,我重新编译甚至核对了我的 git repo 并重新克隆和重新编译以尝试让事情正常工作,但无济于事。
想想这哪里出了问题?我什至不确定哪个库可能对此负责,或者它如何与 konsole 而不是 screen 一起工作。