Зависит, как вещи настраиваются, но по умолчанию, что-то вроде этого должно работать.
settitle() {
printf "\033k$1\033\\"
}
Затем выполненный:
settitle NEWTITLE
.
См. экранные документы заголовка и часто задаваемые вопросы экрана GNU для получения дополнительной информации.
Данный Ctrl+A A только изменяет его до следующей команды, это, вероятно, устанавливается $PS1
(все оболочки), или $PROMPT_COMMAND
/DEBUG trap
(колотите только), или precmd
/preexec
(zsh только).
Необходимо искать любое место это \e
или \033
появляется с k
или \\
после него, в основном как мой settitle
пример выше.
ОБНОВЛЕНИЕ
Вы сказали, что у Вас было пользовательское preexec
.
Почему бы не изменить его на это:
if [[ "$TERM" == "screen" ]]; then
local CMD=${1[(wr)^(*=*|sudo|-*)]}
echo -n "\ek${TITLE:-$CMD}\e\\"
fi
Затем можно установить пользовательский заголовок путем выполнения:
TITLE="my title"
и сброс заголовок путем выполнения
TITLE=
Не забывайте изменяться precmd
и $PS1
также при необходимости.
В СТОРОНЕ
Вы могли даже расширить это до всех терминалов (например. xterm
, gnome-terminal
, и т.д.) путем не трудно кодирования \ek
и \e\\
.
Это - то, как я делаю это:
terminit()
{
# determine the window title escape sequences
case "$TERM" in
aixterm|dtterm|putty|rxvt|xterm*)
titlestart='\033]0;'
titlefinish='\007'
;;
cygwin)
titlestart='\033];'
titlefinish='\007'
;;
konsole)
titlestart='\033]30;'
titlefinish='\007'
;;
screen*)
# status line
#titlestart='\033_'
#titlefinish='\033\'
# window title
titlestart='\033k'
titlefinish='\033\'
;;
*)
if type tput >/dev/null 2>&1
then
if tput longname >/dev/null 2>&1
then
titlestart="$(tput tsl)"
titlefinish="$(tput fsl)"
fi
else
titlestart=''
titlefinish=''
fi
;;
esac
}
# or put it inside a case $- in *i* guard
if test -t 0; then
terminit
fi
# set the xterm/screen/etc. title
settitle()
{
test -z "${titlestart}" && return 0
printf "${titlestart}$*${titlefinish}"
}
Затем можно изменить Ваш preexec
кому:
if [[ "$TERM" == "screen" ]]; then
local CMD=${1[(wr)^(*=*|sudo|-*)]}
settitle "${TITLE:-$CMD}"
fi
Если у Вас есть маршрутизатор GSM, необходимо смочь использовать sms_serv из smslink проекта. Я не попробовал это сам.
Я собирался рекомендовать смотреть на этот сценарий жемчуга Google Voice, прежде чем я перечитал вопрос и видел, что у Вас были аппаратные средства...