iterm2 在远程服务器上运行屏幕时更改选项卡的颜色



如果 iterm2 选项卡在远程服务器上打开屏幕,我找不到更改其颜色的脚本。这可以在没有外壳集成的情况下实现吗?

我确实在我的个人资料中使用了触发器。我可以触发在此屏幕上运行一个屏幕的选项卡,基于外壳中印有 gnu 屏幕的硬状态的最后一行。然后我尝试将命令链接echo -e "33]6;1;bg;red;brightness;255a"但它似乎没有被 iterm2 拾取。有人知道如何让它工作吗?

你的问题是run command完全按照它所说的去做:执行命令。它与你现在的tty无关,所以你只是在虚空中回响。

要在 tty 中运行它,您需要添加换行符send textecho -e "33]6;1;bg;red;brightness;255a"n但是会转义到当前匹配项,因此您必须转义它以避免递归。即便如此,我想每次更新状态行时都会污染会话。

我认为要走的方法是触发一个带有相应 osascript tell 的静默协进程。

使用不带参数color时自动支持随机颜色

将以下行添加到~/.profile~/.zshrc

PRELINE="r33[A"
function random {
    echo -e "33]6;1;bg;red;brightness;$((1 + $RANDOM % 255))a"$PRELINE
    echo -e "33]6;1;bg;green;brightness;$((1 + $RANDOM % 255))a"$PRELINE
    echo -e "33]6;1;bg;blue;brightness;$((1 + $RANDOM % 255))a"$PRELINE
}
function color {
    case $1 in
    green)
    echo -e "33]6;1;bg;red;brightness;57a"$PRELINE
    echo -e "33]6;1;bg;green;brightness;197a"$PRELINE
    echo -e "33]6;1;bg;blue;brightness;77a"$PRELINE
    ;;
    red)
    echo -e "33]6;1;bg;red;brightness;270a"$PRELINE
    echo -e "33]6;1;bg;green;brightness;60a"$PRELINE
    echo -e "33]6;1;bg;blue;brightness;83a"$PRELINE
    ;;
    orange)
    echo -e "33]6;1;bg;red;brightness;227a"$PRELINE
    echo -e "33]6;1;bg;green;brightness;143a"$PRELINE
    echo -e "33]6;1;bg;blue;brightness;10a"$PRELINE
    ;;
    *)
    random
    esac
}
#color    #uncomment to enable automatically set random color when tab created

每次创建新的 iterm2 选项卡后,使用命令 color 自动为其提供新/随机颜色。

如果您希望在创建 iterm2-tab 颜色时自动设置它,那么只需将color添加到 .zshrc/.profile 的末尾或紧随function color之后

具体针对您的问题。 您可以在服务器上添加这些设置。 当您在服务器终端上进行 SSH 时,iterm2 选项卡的颜色会发生变化。

最新更新