ОК, если вы настаиваете на вызове ssh из командной строки, вот что нужно сделать: написать скрипт оболочки и сохранить его где-нибудь как colorssh.sh
. При запуске он просматривает свои аргументы для соответствующего хоста и соответствующим образом устанавливает цвета окна активного терминала. Затем он вызывает реальный ssh, передавая эти аргументы. Когда ssh возвращает выполнение в скрипт, он возвращает цвета в нормальное состояние.
Поскольку вы, вероятно, хотите продолжать вводить ssh
вместо colorssh.sh
, вы можете установить псевдоним в .profile
.
Что касается самого скрипта? Вот кодез:
#!/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)
username@host.example.com)
setTerminalColors "{0,65535,65535}" "{65535,0,0}"
;;
username@otherhost.example.com)
setTerminalColors "{65535,65535,0}" "{0,65535,0}"
;;
esac
done
ssh $*
# back to normal
setTerminalColors "{0,0,0}" "{65535,65535,65535}"
Вам нужно будет отредактировать скрипт, чтобы добавить новые комбинации хост / цвет.
Обратите внимание, что цвета должны быть заданы как тройка RGB целых чисел в диапазоне 0-65535. Я знаю, странно, верно?
Технически, часть AppleScript изменяет устаревшие свойства. Вы должны изменить цвета окна через его свойство "набор настроек", но я подозреваю, что это изменит все окна, используя этот набор настроек, а не только текущий.
Кроме того, этот сценарий предполагает, что черный на белом - это ваша "нормальная" настройка. Если это не так, вы можете изменить скрипт, чтобы сохранить текущие значения перед запуском или использовать цвета из набора настроек по умолчанию.