我的日常工作流程包括
- 启动 iTerm2
- 创建 3 个标签
- 将一个标签分别设置为红色、橙色和黄色
- 在每个选项卡中更改为特定路径
我想编写此过程的脚本;shell、applescript 等。但是,我似乎找不到允许我更改标签颜色的钩子。这可能吗?以下是屏幕截图,其中有我试图实现的示例。
答案1
这是可能的,你应该读一下iterm 转义代码了解详情。
^[]6;1;bg;red;brightness;N^G
我尝试在执行(.ssh/config)时设置终端的颜色,ssh
并且它起作用了,但是令人惊讶的是,当我关闭 ssh 会话时,它不会再次调用脚本来恢复标题/颜色。
添加了功能请求自动着色标签- 不要忘记给它加星标,或者添加您的评论(也欢迎补丁!)
答案2
我将此功能添加到我的 ~/.profile 文件中:
function color {
case $1 in
green)
echo -e "\033]6;1;bg;red;brightness;57\a"
echo -e "\033]6;1;bg;green;brightness;197\a"
echo -e "\033]6;1;bg;blue;brightness;77\a"
;;
red)
echo -e "\033]6;1;bg;red;brightness;270\a"
echo -e "\033]6;1;bg;green;brightness;60\a"
echo -e "\033]6;1;bg;blue;brightness;83\a"
;;
orange)
echo -e "\033]6;1;bg;red;brightness;227\a"
echo -e "\033]6;1;bg;green;brightness;143\a"
echo -e "\033]6;1;bg;blue;brightness;10\a"
;;
esac
}
添加此功能后,您必须打开一个新的终端会话。现在您可以输入:
$ color green
或者
$ color orange
更改标签颜色。
我使用 Photoshop 来组合颜色:
此颜色选择器值可以转换为以下命令(只需将 R -> 红色、G -> 绿色、B -> 蓝色值插入“亮度;”后的右行即可获得不同的颜色):
echo -e "\033]6;1;bg;red;brightness;57\a"
echo -e "\033]6;1;bg;green;brightness;197\a"
echo -e "\033]6;1;bg;blue;brightness;77\a"
答案3
要在退出 ssh 会话后重置选项卡颜色,请使用:
function ssh {
command ssh $@
echo -e "\033]6;1;bg;red;brightness;176\a"
echo -e "\033]6;1;bg;green;brightness;181\a"
echo -e "\033]6;1;bg;blue;brightness;175\a"
}
答案4
更新最佳答案,使用时color
无需参数即可自动支持随机颜色
将以下几行添加到~/.profile
或~/.zshrc
:
PRELINE="\r\033[A"
function random {
echo -e "\033]6;1;bg;red;brightness;$((1 + $RANDOM % 255))\a"$PRELINE
echo -e "\033]6;1;bg;green;brightness;$((1 + $RANDOM % 255))\a"$PRELINE
echo -e "\033]6;1;bg;blue;brightness;$((1 + $RANDOM % 255))\a"$PRELINE
}
function color {
case $1 in
green)
echo -e "\033]6;1;bg;red;brightness;57\a"$PRELINE
echo -e "\033]6;1;bg;green;brightness;197\a"$PRELINE
echo -e "\033]6;1;bg;blue;brightness;77\a"$PRELINE
;;
red)
echo -e "\033]6;1;bg;red;brightness;270\a"$PRELINE
echo -e "\033]6;1;bg;green;brightness;60\a"$PRELINE
echo -e "\033]6;1;bg;blue;brightness;83\a"$PRELINE
;;
orange)
echo -e "\033]6;1;bg;red;brightness;227\a"$PRELINE
echo -e "\033]6;1;bg;green;brightness;143\a"$PRELINE
echo -e "\033]6;1;bg;blue;brightness;10\a"$PRELINE
;;
*)
random
esac
}
#uncomment to enable automatically set random color when tab created
#color
每次创建新的 iterm2 选项卡后,使用命令color
自动赋予其新的/随机的颜色。
如果你希望 iterm2-tab 在创建时自动设置颜色,那么只需在/color
的末尾或在.zshrc
.profile
function color