ssh'd-to 终端背景仅从 WSL2 开始变为白色

ssh'd-to 终端背景仅从 WSL2 开始变为白色

mutt在 Ubuntu 18 主机上阅读电子邮件,并通过 ssh 进入。
当我从 macOS 11(通过 iTerm2,如果这很重要)或从另一个 Ubuntu 18 主机 ssh 时,一切正常。

但是当我从 WSL2(运行 Ubuntu 18、20 或 22)进行 ssh 时,mutt 的颜色是错误的。顶部和底部的线条仍然正常,但电子邮件列表已从黑底亮灰色变为白底亮灰色,几乎无法阅读。查看一封电子邮件也是如此:背景已变成白色。

color中没有指令~/.muttrc。但是当我添加例如时color normal red black,亮灰色文本会变成红色(应该如此),但背景不会变成黑色(我的选择已被覆盖)。该覆盖仅发生在 WSL2 中,而不是 macOS 或 Ubuntu 中。

更奇怪的是,当我选择非黑色背景颜色(青色、亮黑色、亮黄色等)时,背景颜色与 WSL2(以及其他版本)不同。黑色是特殊的。

对于 WSL2 和其他版本,set和的输出env仅在 SSH_CONNECTION、SSH_CLIENT、SSH_TTY、XDG_SESSION_ID 和 OLDPWD、LINES、COLUMNS 等短暂信息方面有所不同。
特别是,TERM 始终为xterm-256color。所以我怀疑 mutt 是否知道它是否来自 WSL2。因此,错误配置可能不是在 mutt 中,而是在 WSL2 中。

在 WSL2 中,当我调整右键单击 > 属性 > 颜色 > 四个单选按钮以选择颜色,或调整属性 > 终端 > 复选框以选择单独的前景色/背景色时,没有任何变化。

如何阻止 WSL2 将默认背景颜色覆盖为白色?
除了 mutt 之外的其他东西是否也会引发这种行为?(不是 vim:在所有情况下,它的 solarized8 主题和语法颜色渲染都很好。)

答案1

终端才是真正呈现你的“内容”的地方。不是 WSL。

WSL 仅发送命令,终端执行工作。

cmd.exe 调用的标准终端是一个终端,即Windows 终端是另一款具有更多功能的。

Git BASH 调用 MINGW64 终端(还有另一个)..有很多。

输出的行为由终端本身控制。

相关内容