gpt4 book ai didi

linux - 允许动态更改背景颜色的终端仿真器

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:25:11 25 4
gpt4 key购买 nike

我目前正在尝试为基于 Linux 的系统寻找一个终端仿真器,它允许我根据正在运行的应用程序更改背景。

我认为使用一些 OSC 应该很容易做到这一点转义序列,但我找不到任何有关支持它的终端的文档。

有什么建议吗?

最佳答案

如果您的终端仿真器支持背景颜色删除 (BCE),您可以使用“删除显示”转义序列来设置显示器的背景颜色。例如,这在 Bash 中将背景设置为红色:

tput setab 1; tput clear

tput setab 1 将“ANSI 背景颜色”设置为 1(红色)。 put clear 清除屏幕,通常通过发出代码将光标移动到上/左角并清除显示。如果你不想删除整个显示,你可以从当前行删除到显示的末尾:

tput setab 1; tput ed

如果您的终端仿真器支持 BCE,清除显示部分的各种命令将用当前背景颜色填充清除区域。您可以使用 tput 判断您的终端仿真器是否支持 BCE:

tput bce && echo Yes || echo No

如果支持 BCE,这将显示"is"。

要利用这一点,您可以使用 shell 函数(或脚本文件)来包装要为其设置颜色的命令。例如,在 Bash 中,这将在运行 ssh 时将显示设置为蓝色:

ssh () {
trap 'tput sgr0; tput ed' RETURN;
tput setab 4; tput ed
command ssh $*;
}

使用 trap 确保它在函数返回时重置背景颜色(和其他文本属性)。我在这里使用了 tput ed,所以它只影响运行 ssh 命令时输出的行的背景颜色。如果您宁愿填满整个显示并且不介意在命令开始(和/或结束)时删除当前内容,则可以使用 tput clear

当然,如果您对远程主机所做的任何更改背景颜色,它都会覆盖您的颜色。

关于linux - 允许动态更改背景颜色的终端仿真器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7548135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com