İşte Mac'imde yaptığım şey. Her sunucu için, ~ / .ssh / config dosyasına örneğin bir giriş eklerim.
Host app13
HostName server.example.com
User tom
PermitLocalCommand yes
LocalCommand osascript %d/bin/change_terminal_colours.scpt 12 35 35
Bu Applescript, SSH oturumu kurulduktan sonra tetiklenir. Terminal arka plan rengini sağlanan RGB değerlerine ayarlar (veya hiçbir renk değeri sağlanmadığında varsayılana geri döner). Potansiyel olarak zor olan kısım, renkleri varsayılan ayarlara döndürmek için SSH oturumunun sonunu engellemektir. Bunun için, varsayılan ssh komutunu geçersiz kılmak üzere aşağıdaki kabuk betiğini ~ / bin / ssh olarak oluşturdum. Bu, esasen tüm çağrıları arayarak SSH komutuna sarar. Takma ad ve işlevleri kullanmayı denedim, ancak bu çözüm en iyi şekilde çalıştı:
#!/bin/bash
/usr/bin/ssh $@
osascript ~/bin/change_terminal_colours.scpt
Change_terminal_colours.scpt betiğinin kaynağı burada . Bunu ~ / bin dizininize de ekleyin:
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
Bu çözümü bir hafta önce yazdım ve o zamandan beri kullanıyorum. Umarım diğerleri onu değerli bulur. Googling’in bulduğum çözümlerden daha iyi sonuç verdiğini biliyorum.