창 제목과 xterm-창 제목을 수정하기 위해 `screen`을 설정하는 방법은 무엇입니까?

창 제목과 xterm-창 제목을 수정하기 위해 `screen`을 설정하는 방법은 무엇입니까?

$PS1현재 프롬프트( 일부 색상 포함) 를 창 제목(하드라인) 및 xterm 창 제목 \u@\h:\w$(__git_ps1 "(%s)")\$으로도 사용하고 싶습니다 . screen이것이 어떻게 달성될 수 있습니까?

답변1

하나불완전한해결책은 $PS1GNU 화면에서 프롬프트를 수정하는 것입니다. 먼저 셸의 RC 파일(즉 ~/.bashrc, )을 수정합니다. 하나를 찾고사례평가된 내용 $TERM:

case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

다음을 추가하세요이전에모든 것을 포괄하는(예: *)):

screen)
    PS1='\e]0;\u@\h:\w\a\ek\u@\h:\w\e\\\u@\h:\w$(__git_ps1 "(%s)")\$ '
    ;;

이렇게 하면 hardstatus가 수정됩니다.\e]0;...\a

그러면 창 제목이 수정됩니다. \ek...\e\\

하드 상태는 구성하지 않으면 표시되지 않습니다. 예를 들어 다음을 에 추가할 수 있습니다 .screenrc.

hardstatus alwayslastline

복잡한 hardstatus string옵션이 계속 중요한 역할을 할 것입니다. 현재 동적으로 저장된 하드 상태를 다음으로 바꿀 수 있습니다 %h.

hardstatus string '%{= kw}[ %h ] %=%{w}[ %{r}%l%{w} ]%{w}[%{y} %Y-%m-%d %C %A %{w}]%{w}'

이는 하드 상태 줄을 화면 왼쪽의 두 괄호 사이에 저장된 하드 상태로 설정하고 날짜 및 시간과 함께 CPU 사용률을 오른쪽으로 설정합니다.

예:

 [ username@host:~ ]                    [ 0.00 0.01 0.00 ][ 2012-11-27  4:13 PM ]

지침

  1. 이렇게 하면 쉘 기록에서 커서 오프셋이 깨질 가능성이 높습니다. (위쪽 화살표를 몇 번 클릭하고 줄을 편집해 보십시오. 무슨 뜻인지 알게 될 것입니다.) 이는 대부분의 쉘이 length 를 사용 $PS1하고 여기에 추가된 인쇄할 수 없는 문자를 포함하기 때문 입니다 $PS1.

  2. 이렇게 하면 xterm 제목 표시줄이 깨져서 GNU Screen을 실행하기 전에 설정된 마지막 상태로 "고정"될 가능성이 높습니다. 흥미롭게도 제목 표시줄을 업데이트하는 vim과 같은 애플리케이션은 계속 작동합니다.

  3. C-A A명령 프롬프트가 업데이트될 때까지 화면 제목(예:)을 수동으로 설정하는 것은 계속 작동합니다.

답변2

Bash를 사용하여 화면 제목을 $YourVariable(screenrc 제목 변수 %t)로 동적으로 변경합니다. export PROMPT_COMMAND="echo -ne '\033k$YourVariable\033\\'"

"screen" 내부가 아닌 경우 hardstatus(screenrc 제목 변수 %h)를 사용할 수도 있습니다. 그러면 창(터미널 에뮬레이터) 제목이 변경됩니다.
export PROMPT_COMMAND="echo -ne '\033]0;$YourVariable\007'"

관련 정보