9 votos

Cambiar fondo de terminal basado en host

Hay una manera que puedo tener mi terminal de cambiar dinámicamente cubre basado en el host soy? Por ejemplo, el fondo por defecto (según lo determinado por la terminal de perfil) es de color negro. Tal vez hay otra terminal de perfil que es exactamente el mismo, excepto que tiene un fondo azul. Ahora, si me SSH desde black_host que es el valor predeterminado en blue_host, mi terminal perfil de los interruptores (o el fondo cambia de negro a azul).

Es esto posible? Yo a menudo en cualquier lugar de 5 a 10 terminales abiertos en un momento en 3-4 diferentes máquinas y sería bueno acabo de mirar y ver desde una vista de pájaro que la terminal a la que pertenece el host.

4voto

Justin Love Puntos 3073

Creo que esto es exactamente lo que usted desea:

http://stackoverflow.com/questions/157959/how-do-i-make-the-apple-terminal-window-auto-change-colour-scheme-when-i-ssh-to

Todo el crédito va a Yurii Soldak:

Poner la siguiente secuencia de comandos en ~/bin/ssh (~/bin/ miró antes de /usr/bin en el PATH):

#!/bin/sh

HOSTNAME=`echo $@ | sed s/.*@//`

set_bg () {
  osascript -e "tell application \"Terminal\" to set background color of window 1 to $1"
}

on_exit () {
  set_bg "{0, 0, 0, 50000}"
}
trap on_exit EXIT

case $HOSTNAME in
  production1|production2|production3) set_bg "{45000, 0, 0, 50000}" ;;
  *) set_bg "{0, 45000, 0, 50000}" ;;
esac

/usr/bin/ssh "$@"

El script de arriba, extractos de nombre de host de la línea "nombre de usuario@host" (se supone que el usuario de inicio de sesión para los hosts remotos con "ssh usuario@host").

Luego, dependiendo de host nombre de cualquiera de los conjuntos de fondo rojo (para servidores de producción) o fondo verde (para el resto). Como resultado de su ssh windows será con fondo de color.

Asumo aquí su fondo por defecto es negro, así que la secuencia de comandos vuelve el color de fondo de vuelta a negro al cierre de sesión de servidor remoto (consulte "captura de on_exit").

Por favor, tenga en cuenta sin embargo, este script no hace un seguimiento de la cadena de inicios de sesión ssh desde un host a otro. Como resultado, el fondo será de color verde en caso de inicio de sesión para el servidor de prueba en primer lugar, a continuación, inicio de sesión para la producción de la misma.

En el mismo post, Chris Página escribe:

Menos conocido de la Terminal es que se puede establecer el nombre de un perfil de configuración de un nombre de comando, que seleccionará a ese perfil cuando se crea un nuevo terminal, ya sea a través de Shell > Comando Nuevo... o Shell > Nueva Conexión Remota....

Por ejemplo, duplicar su perfil por defecto, el nombre "ssh" y establezca su color de fondo rojo. A continuación, utilice Comando Nuevo... para ejecutar ssh host.example.com.

También coincide con los argumentos, de modo que usted puede tener diferentes opciones para diferentes hosts remotos, por ejemplo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X