OK, jeśli nalegasz na wywołanie ssh z wiersza poleceń, oto coś, co powinno wystarczyć: napisz skrypt powłoki i zapisz go gdzieś jako colorssh.sh
. Po uruchomieniu sprawdza swoje argumenty dla zgodnego hosta i odpowiednio ustawia kolory aktywnego okna terminala. Następnie przywołuje prawdziwego ssh, przekazując te argumenty. Kiedy ssh zwróci wykonanie skryptu, ustawia kolory z powrotem na normalne.
Ponieważ prawdopodobnie chcesz nadal pisać na maszynie ssh
zamiast colorssh.sh
, możesz ustawić alias w swoim .profile
.
Co do samego skryptu? Oto kod:
#!/bin/bash
function setTerminalColors {
osascript \
-e "tell application \"Terminal\"" \
-e "tell selected tab of front window" \
-e "set normal text color to $1" \
-e "set background color to $2" \
-e "end tell" \
-e "end tell"
}
for ARG in $*
do
case "$ARG" in
host.example.com)
[email protected])
setTerminalColors "{0,65535,65535}" "{65535,0,0}"
;;
[email protected])
setTerminalColors "{65535,65535,0}" "{0,65535,0}"
;;
esac
done
ssh $*
# back to normal
setTerminalColors "{0,0,0}" "{65535,65535,65535}"
Będziesz musiał edytować skrypt, aby dodać nowe kombinacje host/kolor.
Należy pamiętać, że kolory muszą być określone jako trójka RGB liczb całkowitych z zakresu 0-65535. Wiem, dziwne, prawda?
Z technicznego punktu widzenia część kodu AppleScript zmienia nieaktualne właściwości. Powinieneś zmienić kolor okna za pomocą właściwości "zestaw ustawień", ale podejrzewam, że zmieniłby on wszystkie okna przy użyciu tego zestawu ustawień, a nie tylko bieżącego.
Ponadto, ten skrypt zakłada, że czarny na białym jest twoim "normalnym" ustawieniem. Jeśli tak nie jest, możesz zmienić skrypt, aby zapisać bieżące wartości przed uruchomieniem lub użyć kolorów z domyślnego zestawu ustawień.
Zobacz także http://stackoverflow.com/q/18715941/754997 –