Aqui está o que eu fiz no meu Mac. Para cada servidor, adiciono uma entrada no meu arquivo ~ / .ssh / config, por exemplo
Host app13
HostName server.example.com
User tom
PermitLocalCommand yes
LocalCommand osascript %d/bin/change_terminal_colours.scpt 12 35 35
Este Applescript é acionado assim que a sessão SSH é estabelecida. Ele define a cor de fundo do terminal com os valores RGB fornecidos (ou volta ao padrão se nenhum valor de cor for fornecido). A parte potencialmente complicada é interceptar o final da sessão SSH para definir as cores de volta aos padrões. Para isso, criei o seguinte script de shell como ~ / bin / ssh para substituir o comando ssh padrão. Isso basicamente intercepta e encerra todas as chamadas para o comando SSH. Tentei usar alias e funções, mas esta solução funcionou melhor:
#!/bin/bash
/usr/bin/ssh $@
osascript ~/bin/change_terminal_colours.scpt
Aqui está a fonte do script change_terminal_colours.scpt . Coloque isso no seu diretório ~ / bin também:
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
Eu escrevi essa solução há uma semana e a uso desde então. Espero que outros achem isso valioso. Acho que funciona melhor do que qualquer uma das soluções encontradas pelo Google.