Cambiar la ventana de Snow Leopard Terminal dependiendo del servidor SSH

Puede que me resulte difícil diferenciar entre mi servidor de desarrollo y el de producción. Estoy usando SSH para conectarme a las máquinas (ambas con Ubuntu 10.04), y me preguntaba si hay alguna forma de cambiar el color de la ventana de Terminal según el servidor SSH al que esté conectado, ya que olvidaré cambiar el color para cada servidor...

Respuestas (4)

Esta publicación de blog proporciona un script para resolver este problema.

#!/bin/bash
#
# ssh into a machine and automatically set the background
# color of Mac OS X Terminal depending on the hostname.
#
# Installation:
# 1. Save this script to /some/bin/ssh-host-color
# 2. chmod 755 /some/bin/ssh-host-color
# 3. alias ssh=/some/bin/ssh-host-color
# 4. Configure your host colors below.

set_term_bgcolor() {
   local R=$1
   local G=$2
   local B=$3
   /usr/bin/osascript <<EOF
tell application "Terminal"
   tell window 0
      set the background color to {$(($R*65535/255)), $(($G*65535/255)), $(($B*65535/255))}
   end tell
end tell
EOF
}

# Host-specific background colors.
if [[ "$@" =~ production1.com ]]; then
   set_term_bgcolor 127 0 0
elif [[ "$@" =~ production2.com ]]; then
   set_term_bgcolor 0 127 0
fi

ssh $@

# Default background color.
set_term_bgcolor 34 79 188

En Terminal.app, puede cambiar el "tema" por pestaña (por ejemplo, Pro u Ocean) haciendo clic con el botón derecho en una sola pestaña --> Inspeccionar pestaña--> Configuración. También puede usar iTerm porque tiene esta opción: "Las etiquetas de las pestañas pueden cambiar de color para indicar las actividades de la sesión"

Intenté usar diferentes colores para diferentes sesiones de SSH hace un tiempo. Realmente no funcionó porque olvidaba con demasiada facilidad qué máquina era la roja y cuál la azul.

Terminé aprendiendo solo algunos comandos que te dicen dónde estás y quién eres allí. whoami por ejemplo.

Usando iTerm2, puede cambiar la barra de título y el color de la pestaña para cada servidor desde el .bashrc en cada máquina. Consulte los documentos para obtener información al respecto. Combino esto con la configuración del color del indicador para que sea fácil diferenciarlo. Generalmente tengo una ventana de iTerm por servidor, posible con varias pestañas. Esto facilita encontrar la ventana correcta en Expose.

Aquí está la sección relevante de mi .cshrc. Tendría que adaptarse para bash (NOTA: ^] es control+] y ^G es control+G)

if ( ${?term} != 0 ) then
    # tab window
    alias cwdcmd 'printf "^]1;%s^G^]2;%s^G" "$cwd:t" "$HOST `echo $cwd | sed s $HOME-~-`" '
    # Set title/tab color
    alias settermr "echo -n '^]6;1;bg;red;brightness;\!*^G'"
    alias settermg "echo -n '^]6;1;bg;green;brightness;\!*^G'"
    alias settermb "echo -n '^]6;1;bg;blue;brightness;\!*^G'"
    settermr 171;settermg 0;settermb 0
    # Set title text
    alias settitle 'echo -n "^]2; "\!*"^G"'
    settitle `hostname -s`
    # Set tab text
    alias settab 'echo -n "^]1; "\!*"^G"'
    settab $cwd:h:t/$cwd:t
    cwdcmd

terminara si