Voici ce que j'ai fait sur mon Mac. Pour chaque serveur, j'ajoute une entrée pour lui dans mon fichier ~/.ssh/config, par ex.
Host app13
HostName server.example.com
User tom
PermitLocalCommand yes
LocalCommand osascript %d/bin/change_terminal_colours.scpt 12 35 35
Cet Applescript est déclenché une fois que la session SSH est établie. Il définit la couleur d'arrière-plan du terminal selon les valeurs RVB fournies (ou revient à la valeur par défaut si aucune valeur de couleur n'est fournie). La partie potentiellement délicate est d'intercepter la fin de la session SSH pour remettre les couleurs par défaut. Pour cela, j'ai créé le Shell Shell suivant comme ~/bin/ssh afin de remplacer la commande ssh par défaut. Cela permet essentiellement d'intercepter et d'envelopper tout appel à la commande SSH. J'ai essayé d'utiliser l'aliasing et les fonctions, mais cette solution a fonctionné le mieux :
#!/bin/bash
/usr/bin/ssh $@
osascript ~/bin/change_terminal_colours.scpt
Voici la source de la change_terminal_colours.scpt script. Mettez-le aussi dans votre répertoire ~/bin :
on run argv
tell application "Terminal"
# NOTE: Color values range from 0 to 65535.
if (count of argv) > 0 then
set backgroundColor to {(item 1 of argv) * 256, (item 2 of argv) * 256, (item 3 of argv) * 256}
else
set backgroundColor to background color of default settings
end if
try
set background color of (selected tab of front window) to backgroundColor
end try
end tell
end run
J'ai rédigé cette solution il y a une semaine et je l'utilise depuis. J'espère que d'autres la trouveront utile. Je trouve qu'elle fonctionne mieux que toutes les solutions que j'ai trouvées en cherchant sur Google.