Я пытался изменить свой терминальный профиль при соединении с ssh с удаленным компьютером. Это работает хорошо с определенным числом локальных профилей и xdotool key Alt+t p Down Return
.
Теперь вопрос состоит в том, как распознать, закрыт ли ssh сеанс в терминале. Как то, когда Вы нажимаете C-d, он показывает выход из системы и закрытое соединение. Но есть ли способ видеть, вернулся ли я на своей старой сессии. Как там некоторый файл перезагружается при закрывании ssh сеанса? Так, как я знаю, .bashrc, не снова выполняемый, но возможно что-либо еще.
user@remote-pc:~$ logout
Connection to remote-pc closed.
DO_SOMETHING_HERE
user@local-pc:~$
Так как профиль должен быть изменен на локальной машине, это необходимый для выполнения команды локально. Таким образом, это не может быть выполнено с .bash_logout, так как это будет выполнено на удаленной машине.
Решенный это с функцией вокруг нормального ssh. теперь изменяет цвет в зависимости от сервера и возвращает его при возврате к локальному хосту.
alias blue='xdotool key --delay 50 Alt+t p Return'
alias dark='xdotool key --delay 50 Alt+t p Down Return'
alias green='xdotool key --delay 50 Alt+t p Down Down Return'
alias red='xdotool key --delay 50 Alt+t p Down Down Down Return'
cssh(){
if [[ $1 == *"remote1"* ]]
then
green
elif [[ $1 == *"remote2"* ]]
then
red
else
blue
fi
ssh $@
sleep 0.5
dark
}