¿Establecer programáticamente el color de una pestaña en iTerm2?

17

Mi flujo de trabajo diario me incluye

  1. Lanzamiento de iTerm2
  2. Crear 3 pestañas
  3. Establecer una pestaña en rojo, naranja y amarillo
  4. Cambiar a una ruta específica en cada pestaña

Me gustaría escribir este proceso; shell, applescript, etc. Sin embargo, parece que no puedo encontrar un gancho que me permita cambiar el color de la pestaña. es posible? Aquí hay una captura de pantalla con un ejemplo de lo que estoy tratando de lograr.

Configuración de la pestaña iTerm

John Kramlich
fuente

Respuestas:

14

Eso es posible y debe leer los códigos de escape iterm para más detalles.

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

Intenté configurar el color del terminal cuando lo hice ssh(.ssh / config) y funcionó, pero sorprendentemente, cuando cierro la sesión ssh, no volverá a llamar al script para restaurar el título / color.

Se agregó una solicitud de función a las pestañas de color automático ; no se olvide de destacarla o agregar sus comentarios (¡los parches también son bienvenidos!)

sorin
fuente
1
Escribo un script de envoltura ssh en mi ~ / bin que hace que los cambios de color de la pestaña (y otras cosas como fondo personalizado con nombres de servidor) y use una trampa EXIT para volver a cambiarlos.
Aaron
Aaron, ¿te importaría compartir tu guión?
lfender6445
También puede hacer eso:function ssh { command ssh $@; # RESET BACK -> don't know how yet! help needed here }
davidhq
De alguna manera me enteré ... lo pegué como otra respuesta
davidhq
13

Agregué esta función a mi archivo ~ / .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
 }

Después de agregar esta función, debe abrir una nueva sesión de terminal. Ahora puedes ingresar:

$ color green

o

$ color orange

para cambiar el color de la pestaña.

Yo uso Photoshop para componer colores:

Selector de color de Photoshop

Los valores de este selector de color se pueden convertir a los siguientes comandos (solo inserte los valores R -> rojo, G -> verde, B -> azul en la línea derecha después de "brillo;" para obtener un color 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
fuente
4

Para restablecer el color de la pestaña después de salir de la sesión 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
fuente