Cài đặt mới Ubuntu 15.04: Không thể đổi tên các tab gnome-terminal


38

Trong Ubuntu 14.10, nếu tôi mở nhiều Tab Terminal, tôi có thể nhấp chuột phải vào tab Terminal và đổi tên nó. Trong Ubuntu 15.04 tôi không thể tìm thấy tính năng này.

Có một cách dễ dàng để lấy lại?

Đây là phiên bản hiện tại:

$ gnome-terminal --version
GNOME Terminal 3.14.2

Câu trả lời:


21

Đã trả lời ở đây

Tôi trích dẫn:

Các user titlemã đã được loại bỏ 1 từ gnome-terminal 3.14. Chỉ có một cách để đặt tiêu đề, sử dụng chuỗi thoát - ví dụ bash:

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

1: xem lỗi gnome 724110lỗi gnome 740188 .


10
Cảm ơn câu trả lời. Thật xấu hổ vì nó đã biến mất, tôi hy vọng họ sẽ đưa nó trở lại trong phiên bản tiếp theo, trong khi đó, tôi sẽ sử dụng chuỗi thoát thay vì phương pháp nhấp chuột phải.
Tom

2
@Tom Viết báo cáo lỗi =)
AB

13
nó không chỉ là một sự xấu hổ: nó là vô nghĩa. Tôi đã có ý tưởng tồi khi nâng cấp Nâng cấp từ Debian Wheezy lên Jessie chỉ để có mọi thứ (chưa chắc chắn, thực sự) tôi đã có trước đây, nhưng tệ hơn; quyết định tồi và sai sót ngớ ngẩn (ví dụ: trong gdm3, danh sách các phiên / wm có thể tôi đã cài đặt không phù hợp cũng không cuộn, do đó, nó đơn giản và do đó tôi không thể chọn tất cả các wm tôi có). Đối với tôi, Gnome đã cam chịu kể từ đó gnome-shell. Nó cũng biến mất menu để mở một thiết bị đầu cuối mới trong một cửa sổ hoặc tab mới (nhưng bạn vẫn có thể làm điều đó thông qua phím tắt. Tại sao?! Thay thế mọi thứ bằng một nút thông minh lớn: một cú nhấp chuột và nó làm bất cứ điều gì!)
ShinTakezou

2
Thông thường các bản phát hành mới thêm và không loại bỏ các tính năng.
angelcervera

2
Tôi đã tạo một lệnh (tập lệnh shell) được gọi là tab chỉ chứa echo -ne "\ 033] 0; $ 1 \ 007" vì vậy bây giờ trong bất kỳ tab nào tôi chỉ có thể chạy tab TABNAME để đặt tiêu đề tab. Không thuận tiện như nhấp chuột phải vào tab để đổi tên, nhưng nó sẽ làm ngay bây giờ. Cảm ơn AB!
Brian Pipa

31

Các .bashrcgiải pháp của Kirby đề nghị làm việc cho tôi:

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

sau đó từ lời nhắc của tôi: $ set-title test-title


2
Hoạt động tốt với tôi vào ngày 15.10, điều đáng chú ý duy nhất là mỗi khi bạn chạy nó, bạn sẽ thêm vào PS1, vì vậy đừng làm điều này từ một kịch bản. Sau khi tôi gọi nó vài lần với 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
hoạt động với tôi trên Ubuntu 16.04!
trình viên

1
hoạt động như quyến rũ !!
sharadendu sinha

Làm cách nào để thay đổi tiêu đề trong khi quy trình tiền cảnh đang chạy mà tôi không muốn hủy bỏ?
Jāni Elmeris

1
Tôi nghĩ bạn có thể làm điều đó bằng cách tạm dừng quá trình sử dụng Control + Z, sau đó set-title X, sau đó fgtiếp tục quá trình.
ronan_mac

18

Tôi không thể tin rằng họ đã loại bỏ một tính năng thân thiện với người dùng như thế này.

Tôi đang chuyển sang ROXTerm ( http://roxterm.sourceforge.net ), công việc này rất tốt. Nó được đóng gói trong Ubuntu:

sudo apt-get install roxterm

Sau đó, hãy để con khủng long tiếp tục con đường của riêng mình ;-)


1
Làm cách nào để thay đổi Tiêu đề Tab trong roxterm? Tôi không thể tìm thấy nó.
Halil

cũng sẽ làm việc cho 16.04
prusswan 19/03/2016

Ồ, không thể đặt thiết bị đầu cuối thành nền với thiết bị đầu cuối gnome và tôi không bao giờ hiểu tại sao ... đó là một vấn đề với chính thiết bị đầu cuối. Nền thiết bị đầu cuối devilspie hoạt động mát mẻ với roxterm.
erm3nda

1
RoxTerm thật tuyệt vời và vẫn hoạt động nhưng thật đáng buồn sẽ không được tiếp tục lâu hơn nữa: sadface :: sourceforge.net/p/roxterm/discussion/422638/thread/60da6975
Williams

Tôi đã chuyển sang Terminator kể từ đó và không phải sử dụng RoxTerm nữa ....
Michael Opdenacker

14

Tôi đã thử RoxTerm như đề xuất ở trên, với kết quả tốt. Nhưng tôi đã giải quyết trên MATE Terminal, một phần của Dự án MATE, phần tiếp theo của Gnome 2, vào ngày 15.04:

sudo apt-get install mate-terminal

Thiết bị đầu cuối đó dựa trên mã Gnome Terminal.


Bình luận: Thật khó để hiểu được suy nghĩ của các nhà phát triển Gnome Terminal. Có rất nhiều cuộc thảo luận ở đó về "làm thế nào" để đặt tên cho các tab thiết bị đầu cuối và mức độ khó để làm đúng. Nếu đó là lý do, tại sao làm cho người dùng khó đặt tên chúng hơn? Không thông minh chút nào.


6

Bây giờ tôi đã điều tra điều này cho phần tốt hơn của một ngày và cuối cùng đã tìm ra cách để đặt tiêu đề này. Nó được thực hiện thông qua các chuỗi thoát bắt đầu bằng \ e] 0; và kết thúc bằng ký tự BEL (= \ 007 = \ a). Không giống như tôi đã nêu ở trên, thông tin liên lạc từ shell trở lại ứng dụng đầu cuối có thể, rất hạn chế, thông qua các chuỗi thoát như vậy (có một vài điều nữa).

Về điều này từ phía trên:

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

có thể hoạt động, nhưng không phải lúc nào cũng vậy. PROMPT_COMMANDlà một biến mà nội dung được thực thi mỗi khi bạn gửi lệnh, vì vậy nó cũng gửi chuỗi thoát này. Tuy nhiên, điều này có thể được ghi đè bằng một chuỗi thoát trong biến PS1, thiết lập dấu nhắc dòng lệnh. Đây là lý do tại sao ở trên không có hiệu lực ở đây.

Từ một bản cài đặt Ubuntu cũ hơn, tôi đã lấy cái này, nó đặt dấu nhắc lệnh (phần bên phải, sau phần ]) và cũng gửi chuỗi thoát cần thiết (phần bên trái, lên đến và bao gồm cả ]):

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

Điều này có khả năng thực hiện tốt hơn, bởi vì không cần phải giải thích $PROMPT_COMMANDmỗi lần. Nó cũng có nhiều tùy chọn hơn, bởi vì Bash có nhiều chuỗi thoát ở đây, ví dụ như \utên người dùng hiện tại, \Wcho tên thư mục hiện tại hoặc \wcho toàn bộ đường dẫn của thư mục làm việc hiện tại, tùy ý cắt bớt chỉ một vài số cuối cùng $PROMPT_DIRTRIM. Xem chương PROMPTINGtrong trang người đàn ông Bash. Cũng lưu ý rằng trình tự thoát còn được bao quanh \[\]ở đây.

Để đặt tiêu đề cố định, công việc này:

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

Thưởng thức!


Trong quá trình điều tra, tôi cũng đã cố gắng tìm hiểu mã nguồn gnome-terminal, dẫn đến mã nguồn vte và việc hỗ trợ cài đặt tiêu đề và đọc các chuỗi thoát được coi là rủi ro bảo mật: Xem tại đây (trường hợp 20, trường hợp 21) và tại đây ("Báo cáo tiêu đề cửa sổ").


Cái này đặt tiêu đề nhưng cũng xóa sạch mọi định nghĩa trước đó PS1cho các mục đích sử dụng khác, chẳng hạn như đặt dấu nhắc lệnh tùy chỉnh. Tôi vừa thử thêm chuỗi thoát của bạn vào PS1nội dung hiện có và nó dường như hoạt động. Như thế này: PS1+="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "
ahcox

5

Đặt $ PROMPT_COMMAND như được hiển thị ở trên không có hiệu lực ở đây. Không có gì ngạc nhiên, vì Bash chạy bên trong các tiến trình đầu cuối và cha mẹ (ở đây: gnome-terminal) không thể đọc môi trường của một đứa trẻ trên một hệ điều hành giống như không trộn lẫn. Sử dụng một cái gì đó đơn giản hơn, như

PROMPT_COMMAND='echo bla'

Thực hiện tiếng vang bla , không có gì khác xảy ra.

Chỉnh sửa: người ta phải bọc cái này trong chuỗi thoát, xem câu trả lời khác của tôi. Mặc dù đọc môi trường trẻ em là không thể, một số giao tiếp trở lại với cha mẹ, thông qua các trình tự này.

Trong lỗi Gnome 740188, họ nói về việc xác định hàm title () trong .bashrc. Một cái khác nhau cho mỗi tab được mở? Hack xấu xí nghiêm trọng phía trước, nếu có thể!

Ngay cả những lời giải thích khác trên Stackexchange cũng nói về việc thiết lập $ PS1 (và được nâng cấp). Xin lỗi, không, đó không phải là tiêu đề, đó là dấu nhắc lệnh.

Nói tóm lại: họ đã làm hỏng nó ngoài việc sửa chữa để tiết kiệm một chút không gian trong hộp thoại tùy chọn. Chúa ơi

Bây giờ, cơ hội duy nhất để có được quyết định của nhà phát triển được hoàn nguyên là xử lý một cơn bão nghiêm trọng, nếu không họ chỉ cần đóng báo cáo lỗi của bạn trong vài giây (đã thử nhiều lần). Làm thế nào chúng ta sẽ tạo ra shitstorm này?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.