Definir programaticamente a cor de uma guia no iTerm2?

17

Meu fluxo de trabalho diário me inclui

  1. Iniciando o iTerm2
  2. Criando 3 guias
  3. Definir uma guia cada para vermelho, laranja e amarelo
  4. Mudando para um caminho específico em cada guia

Eu gostaria de escrever esse processo; shell, AppleScript, etc. No entanto, não consigo encontrar um gancho que permita alterar a cor da guia. Isso é possível? Aqui está uma captura de tela com um exemplo do que estou tentando alcançar.

Configuração da guia iTerm

John Kramlich
fonte

Respostas:

14

Isso é possível e você deve ler os códigos de escape iterm para obter detalhes.

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

Tentei configurar a cor do terminal quando faço ssh (.ssh / config) e funcionou, mas surpreende, quando eu fecho a sessão ssh, ele não chama o script novamente, a fim de restaurar o título / cor.

Foi adicionada uma solicitação de recurso às guias coloridas automaticamente - não se esqueça de marcar com uma estrela ou adicionar seus comentários (os patches também são bem-vindos!)

sorin
fonte
1
Eu escrevo um script de ssh wrapper no meu ~ / bin que faz com que a cor da guia seja alterada (e outras coisas, como plano de fundo personalizado com nomes de servidor) e usa uma interceptação EXIT para alterá-las novamente.
Aaron
Aaron, você se importaria de compartilhar seu roteiro?
Lfender6445
Você também pode fazer isso:function ssh { command ssh $@; # RESET BACK -> don't know how yet! help needed here }
davidhq
De alguma forma, eu descobri ... Eu colei como outra resposta
davidhq
13

Eu adicionei esta função ao meu arquivo ~ / .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
 }

Depois de adicionar esta função, você deve abrir uma nova sessão de terminal. Agora você pode inserir:

$ color green

ou

$ color orange

para alterar a cor da guia.

Eu uso o Photoshop para compor cores:

Seletor de cores do Photoshop

Os valores desse seletor de cores podem ser convertidos nos seguintes comandos (basta inserir os valores R -> vermelho, G -> verde, B -> azul na linha direita após "brilho"; para obter uma cor diferente):

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"
Markus Perl
fonte
4

Para redefinir a cor da guia depois de sair da sessão ssh, use:

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
fonte