добавьте его в свой .zshrc
if [ -z "$TMUX" ]
then
tmux attach -t TMUX || tmux new -s TMUX
fi
, тогда tmux автоматически подключится к сеансу под названием TMUX , когда вы запустите свой терминал.
Насколько мне известно , невозможно проверить состояние терминала из процесса в оболочке.
Но даже если бы вы могли, изменение поведения на основе названия терминала было бы очень чревато ошибками. Нет простого способа проверить орфографические ошибки или что-то в этом роде. Кроме того, она не очень масштабируема - у вас будет одна команда do_something_based_on_title
, которая будет расти по мере добавления функций.
Вместо одного огромного сценария set-title
сделайте каждую команду ответственной за установку собственного заголовка терминала при их запуске. Вы можете легко сделать это с помощью псевдонимов, например так (поместите это в свой .bashrc
или аналогичный).
set_title() {
echo -e "\e]0;$*\a"
}
alias apic='set_title "API Codebase"; command_for_api_codebase'
alias irc='set_title "IRC"; irssi'
alias server1='set_title "Server1"; ssh server1'
Теперь у вас есть автозавершение табуляции для этих команд, отсутствует риск выхода из строя кода установки заголовка и запуска программы, и вам больше не нужно щелкать правой кнопкой мыши по вкладке, чтобы задать ее заголовок. Просто запустите нужные команды, и заголовок тоже будет установлен.
Я бы сделал это немного по-другому. Вместо того, чтобы вручную устанавливать заголовок вкладки, создайте функцию, которая устанавливает заголовок и запускает нужную команду. Добавьте эту функцию (адаптированную из здесь ) в свой ~ / .bashrc
(при условии, что вы используете bash):
function set-title() {
if [[ -z "$ORIG" ]]; then
ORIG=$PS1
fi
TITLE="\[\e]2;$@\a\]"
## Do different things depending on the string passed
case "$@" in
"API Codebase")
echo cd ~/codebase
echo python ...
;;
"IRC")
echo irssi
;;
"Server1")
echo ssh server1
;;
esac
PS1="${ORIG}${TITLE}"
}