Ubuntu 15.04 새로 설치 : 그놈 터미널 탭의 이름을 바꿀 수 없음


38

Ubuntu 14.10에서 여러 개의 터미널 탭이 열려 있으면 터미널 탭을 마우스 오른쪽 버튼으로 클릭하고 이름을 바꿀 수 있습니다. 우분투 15.04 에서이 기능을 찾을 수 없습니다.

그것을 다시 얻는 쉬운 방법이 있습니까?

이것은 현재 버전입니다.

$ gnome-terminal --version
GNOME Terminal 3.14.2

답변:


21

여기에 답변

나는 인용한다 :

user title코드를 제거하고 1 에서 gnome-terminal 3.14. 이스케이프 시퀀스를 사용하여 제목을 설정하는 유일한 방법은 다음과 bash같습니다.

PROMPT_COMMAND='echo -ne "\033]0;YOUR TITLE GOES HERE\007"'

1 : 그놈 참조 버그 724110 와 그놈 버그 740188을 .


10
답변 해주셔서 감사합니다. 그것은 부끄러운 일입니다. 다음 릴리스에서 다시 추가하기를 바랍니다. 그 동안 오른쪽 클릭 방법 대신 이스케이프 시퀀스를 사용합니다.
Tom

2
@Tom 버그 보고서 작성 =)
AB

13
그것은 부끄러운 일이 아닙니다. 나는 데비안 위지 (Debian Wheezy)에서 제시 (Jessie)로“업그레이드”하여 이전에 가지고 있던 모든 것 (아직 확실하지는 않지만)을 갖도록 하는 나쁜 생각이 있었다. 나쁜 결정과 바보 같은 결함 (예 : gdm3에서 내가 설치 한 가능한 wm / 세션 목록이 맞지 않거나 스크롤되지 않으므로 간단하게 잘라서 내가 가진 모든 wm을 선택할 수는 없습니다). 나에게 그놈은 이후로 파산 gnome-shell됩니다. 새 창이나 탭에서 새 터미널을 여는 메뉴도 사라졌습니다 (단, 여전히 바로 가기를 통해 수행 할 수 있습니다. 왜?! 큰 스마트 버튼으로 모든 것을 대체하십시오 : 클릭과 아무 것도합니다!)
ShinTakezou

2
일반적으로 새 릴리스는 기능을 추가하거나 제거하지 않습니다.
angelcervera

2
echo -ne "\ 033] 0; $ 1 \ 007"을 포함하는 tab이라는 명령 (쉘 스크립트)을 만들었으므로 이제 아무 탭에서나 탭 TABNAME을 실행하여 탭 제목을 설정할 수 있습니다. 탭을 마우스 오른쪽 버튼으로 클릭하여 이름을 바꾸는 것만 큼 편리하지는 않지만 지금은 그렇게 할 것입니다. 고마워 AB!
브라이언 피파

31

.bashrc솔루션 커비에 의해 제안은 나를 위해 일한 :

set-title(){
  ORIG=$PS1
  TITLE="\e]2;$@\a"
  PS1=${ORIG}${TITLE}
}

그런 다음 내 프롬프트에서 : $ set-title test-title


2
15.10에서 잘 작동합니다. 유일한주의 사항은 실행할 때마다 PS1에 추가한다는 것이므로 스크립트 에서이 작업을 수행하지 마십시오. 다음과 set-title "longer and "같이 몇 번 호출 한 후 :echo $PS1 \[\e]0; \u@\h: \w \a\]\u@\h:\w\[\033[m\]$(__git_ps1)$ \e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a
ahcox

1
우분투 16.04에서 나를 위해 일합니다!
Programster

1
매력처럼 작동합니다!
sharadendu sinha

포 그라운드 프로세스가 실행되는 동안 제목을 어떻게 변경합니까? 중단하고 싶지 않습니까?
Jānis Elmeris

1
난 당신이 사용하여 프로세스를 일시 중지하여 그것을 할 수 있다고 생각 Control + Z다음, set-title X다음 fg과정을 다시 시작합니다.
ronan_mac

18

나는 그들이 이와 같은 사용자 친화적 인 기능을 제거했다고 믿을 수 없습니다.

ROXTerm ( http://roxterm.sourceforge.net )으로 전환 하여 작업을 훌륭하게 수행합니다. 우분투 패키지로 제공됩니다 :

sudo apt-get install roxterm

그런 다음 공룡이 자신의 길을 계속하게하십시오 ;-)


1
roxterm에서 탭 제목을 어떻게 변경합니까? 찾을 수 없었습니다.
Halil

너무 16.04을 위해 작동합니다
prusswan

와우, 터미널을 그놈 터미널과 배경으로 설정할 수 없으며 왜 그 이유를 이해하지 못했습니다 ... 터미널 자체에 문제가 있습니다. devilspie 터미널 배경은 roxterm으로 멋지게 작동합니다.
erm3nda

1
RoxTerm은 훌륭하고 여전히 작동하지만 슬프게도 더 이상 계속되지 않습니다 : sadface : : sourceforge.net/p/roxterm/discussion/422638/thread/60da6975
Williams

나는 .... 그 이후 터미네이터로 전환했습니다, 그리고 더 이상 RoxTerm을 사용하지 않았다
마이클 Opdenacker을

14

위에서 제안한대로 RoxTerm을 사용해 보았으며 좋은 결과를 얻었습니다. 그러나 나는 15.04에 그놈 2의 연속 인 MATE 프로젝트의 일부인 MATE 터미널에 정착했습니다.

sudo apt-get install mate-terminal

그 터미널은 그놈 터미널 코드를 기반으로합니다.


해설 : 그놈 터미널 개발자들의 사고 방식을 이해하기는 어렵습니다. 터미널 탭의 이름을 지정하는 "방법"과 올바른 방법을 찾기가 어렵습니다. 이 경우 사용자가 이름을 지정하기 어려운 이유는 무엇입니까? 전혀 똑똑하지 않습니다.


6

이제 나는 하루의 더 나은 부분을 위해 이것을 조사하고 마침내이 제목을 설정하는 방법을 찾았습니다. \ e] 0으로 시작하는 이스케이프 시퀀스를 통해 수행됩니다. BEL 문자 (= \ 007 = \ a)로 끝납니다. I는 전술 한 바와는 달리, 단말 애플리케이션 쉘 뒤에서 통신 등 이스케이프 시퀀스를 통해, 매우 제한된 가능 (몇있다).

위에서부터 :

PROMPT_COMMAND='echo -ne "\e]0;YOUR TITLE GOES HERE\a"'

그것은 작동하지만 항상 그렇지 않습니다. PROMPT_COMMAND명령을 보낼 때마다 내용이 실행되는 변수이므로이 이스케이프 시퀀스도 보냅니다. 그러나 이것은 명령 행 프롬프트를 설정하는 PS1 변수의 이스케이프 시퀀스로 대체 될 수 있습니다. 이것이 위의 내용이 여기서 효과가없는 이유입니다.

이전 우분투 설치에서 나는 이것을 잡고 명령 프롬프트 (오른쪽 부분 ])를 설정하고 필요한 이스케이프 시퀀스 (왼쪽 부분, 최대 포함 ]) 를 보냅니다 .

PS1="\[\e]0;\u@\h: \w\a\]\u@\h:\w\$ "

$PROMPT_COMMAND매번 해석 할 필요가 없기 때문에 성능이 더 우수합니다 . 또한 Bash에는 \u현재 사용자 이름, \W현재 디렉토리 이름 또는 \w현재 작업 디렉토리의 전체 경로에 대해 더 많은 이스케이프 시퀀스 가 있으므로 선택적으로의 숫자로 마지막 몇 자릿수로 트리밍하므로 더 많은 옵션이 $PROMPT_DIRTRIM있습니다. PROMPTINGBash 매뉴얼 페이지의 장 을 참조 하십시오. 또한 이스케이프 시퀀스는 여기 \[\]여기에 둘러싸여 야 합니다.

고정 제목을 설정하려면 다음을 수행하십시오.

PS1="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "

즐겨!


조사하는 동안 나는 또한 gnome-terminal 소스 코드를 이해하려고 노력했으며, 이는 소스 코드를 생성하고 제목 설정 및 이스케이프 시퀀스 읽기에 대한 지원은 보안 위험으로 간주됩니다. 여기 (case 20, case 21) 및 here ( "창 제목보고").


이렇게하면 제목이 설정되지만 PS1사용자 정의 명령 프롬프트 설정과 같은 다른 용도 에 대한 이전 정의가 지워집니다 . 방금 기존 PS1내용 에 이스케이프 시퀀스를 추가하려고 시도했지만 작동하는 것 같습니다. 이처럼 : PS1+="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "
ahcox

5

위와 같이 $ PROMPT_COMMAND를 설정하면 아무런 영향을 미치지 않습니다. Bash가 터미널 내에서 실행되고 부모 프로세스 (여기 : gnome-terminal)가 유닉스와 같은 OS에서 자녀의 환경을 읽을 수 없기 때문에 놀랍지 않습니다. 보다 간단한 것을 사용하여

PROMPT_COMMAND='echo bla'

echo bla을 실행하고 다른 작업은 수행되지 않습니다.

편집 : 하나는 이스케이프 시퀀스로 래핑해야합니다. 다른 대답을 참조하십시오. 어린이 환경을 읽을 수는 없지만 이러한 시퀀스를 통해 부모와 다시 대화하는 것이 가능합니다.

그놈 버그 740188에서는 .bashrc에서 title () 함수를 정의하는 것에 대해 이야기합니다. 각 탭마다 다른 것이 있습니까? 가능하다면 전혀 못생긴 해킹!

Stackexchange에 대한 다른 설명조차도 $ PS1 설정에 대해 이야기합니다. 죄송합니다. 제목이 아니라 명령 프롬프트입니다.

즉, 그들은 환경 설정 대화 상자에서 약간의 공간을 절약하기 위해 수리를 넘어 엉망이되었습니다. 세상에

이제 개발자의 결정을 되돌릴 수있는 유일한 기회는 심각한 혼란을 일으키는 것입니다. 우리는 어떻게 이런 폭풍을 만들까요?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.