xfce 终端我最喜欢的功能之一是它可以自动为用户创建的每个终端实例设置不同的颜色。这使得区分不同的会话变得非常容易。
有没有办法在 Terminator 中实现类似的功能?
答案1
据我所知,唯一可以方便地开箱即用地支持该功能的终端仿真器是xfce4-terminal
和konsole
。
但是,Terminator 版本 1.90 及以上版本(实际上是其底层的 VTE 小部件)可以理解 OSC 11 转义序列来更改背景颜色,例如:
echo -ne '\e]11;#abcdef\a'
10
(前景也类似)。
您可以编写一段 shell 脚本,将颜色随机化并从 shell 启动脚本发出此序列(例如.bashrc
)。请注意,仅当 shell 是交互式的和/或其输出连接到终端时才发出它(参见例如这里)。
一个简单的例子,我留给你根据自己的意愿去改进:
if [ -t 1 ]; then
colors=(abcdef cdefab efabcd)
n=${#colors[@]}
i=$((RANDOM%n))
echo -ne "\e]11;#${colors[i]}\a"
fi
不要使用随机数,而应该根据 tty 行(来自 输出的数字tty
)来设置颜色,这样可以减少冲突。