Программно установить цвет вкладки в iTerm2?

17

Мой ежедневный рабочий процесс включает меня

  1. Запуск iTerm2
  2. Создание 3 вкладок
  3. Установка одной вкладки на красный, оранжевый и желтый
  4. Переход к определенному пути в каждой вкладке

Я хотел бы написать сценарий этого процесса; shell, яблочный скрипт и т. д. Однако я не могу найти крючок, который позволяет мне менять цвет вкладки. Это возможно? Вот снимок экрана с примером того, чего я пытаюсь достичь.

Настройка вкладки iTerm

Джон Крамлич
источник

Ответы:

14

Это возможно, и вы должны прочитать iterm escape-коды для деталей.

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

Я попытался настроить цвет терминала, когда я делаю ssh(.ssh / config), и это сработало, но удивительно, когда я закрываю сессию ssh, он не будет снова вызывать скрипт, чтобы восстановить заголовок / цвет.

Добавлена ​​функция запроса к автоматически окрашенным вкладкам - не забудьте пометить ее или добавить свои комментарии (исправления также приветствуются!)

Сорин
источник
1
Я пишу сценарий оболочки ssh в моем ~ / bin, который меняет цвет вкладки (и другие вещи, такие как пользовательский фон с именами серверов) и использует ловушку EXIT, чтобы вернуть их обратно.
Аарон
Аарон, не могли бы вы поделиться своим сценарием?
lfender6445
Вы также можете сделать это:function ssh { command ssh $@; # RESET BACK -> don't know how yet! help needed here }
Давидхк
Каким-то образом я узнал ... Я вставил это как другой ответ
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"
}
davidhq
источник