以编程方式在iTerm2中设置选项卡的颜色?


17

我的日常工作流程包括我

  1. 启动iTerm2
  2. 创建3个标签
  3. 将一个标签分别设置为红色,橙色和黄色
  4. 在每个选项卡中更改为特定路径

我想编写这个过程的脚本;外壳,applescript等。但是,我似乎找不到能够使我更改标签颜色的钩子。这可能吗?这是一个屏幕截图,其中包含我要实现的目标的示例。

iTerm选项卡设置


Answers:


14

这是可能的,您应该阅读iterm转义码以获取详细信息。

^[]6;1;bg;red;brightness;N^G

我尝试在设置终端颜色时进行设置ssh(.ssh / config),但该方法仍然有效,但是令人惊讶的是,当我关闭ssh会话时,它不会再次调用该脚本以恢复标题/颜色。

自动上色的标签添加了功能请求-不要忘记对其加注星标或添加评论(也欢迎添加补丁!)


1
我在〜/ bin中编写了一个ssh包装器脚本,该脚本会更改选项卡的颜色(以及诸如带有服务器名称的自定义背景之类的其他内容),并使用EXIT陷阱将其改回。
亚伦

亚伦,你介意分享你的剧本吗?
lfender6445

您也可以这样做:function ssh { command ssh $@; # RESET BACK -> don't know how yet! help needed here }
davidhq 2015年

我不知何故发现了...我将其粘贴为另一个答案
davidhq

13

我将此功能添加到了〜/ .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组成颜色:

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"

4

要在退出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"
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.