Ubuntu 15.04の新規インストール:gnome-terminalタブの名前を変更できません


38

Ubuntu 14.10では、複数の[ターミナル]タブを開いていた場合、[ターミナル]タブを右クリックして名前を変更できました。Ubuntu 15.04では、この機能が見つかりません。

それを取り戻す簡単な方法はありますか?

これは現在のバージョンです。

$ gnome-terminal --version
GNOME Terminal 3.14.2

回答:


21

ここで回答

引用:

user titleコードが削除された1からgnome-terminal 3.14。エスケープシーケンスを使用して、タイトルを設定する方法は1つしかありません-例bash

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

1:gnome bug 724110およびgnome bug 740188を参照してください。


10
答えてくれてありがとう。残念なことに、次のリリースで再び追加することを望みます。その間、右クリックではなくエスケープシーケンスを使用します。
トム

2
@Tomバグレポートの作成=)
AB

13
それはただの恥ではありません。それは無意味です。私が持っていた悪い私が前に持っていただけで(実際に、ではないことを確認まだ)すべてを持っているのDebian Wheezyにからジェシーに「アップグレード」が、悪いことを考えて、悪い決定と愚かな欠陥(たとえば、gdm3では、インストールした可能性のあるwm /セッションのリストは収まらず、スクロールもしないので、単純なカットなので、すべてのwmを選択することはできません)。私にとって、GNOMEは以来運命づけられていgnome-shellます。また、新しいウィンドウまたはタブで新しいターミナルを開くメニューも表示されなくなりました(ただし、ショートカットを使用して実行できます。理由は何ですか?すべてを大きなスマートボタンに置​​き換えてください。クリックするだけで何でもできます!)
ShinTakezou

2
通常、新しいリリースでは機能が追加され、削除されません。
angelcervera

2
単にecho -ne "\ 033] 0; $ 1 \ 007"を含むtabというコマンド(シェルスクリプト)を作成したので、どのタブでもtab TABNAMEを実行してタブタイトルを設定できます。タブを右クリックして名前を変更するほど便利ではありませんが、今のところは有効です。どうもありがとう!
ブライアンピパ

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
ubuntu 16.04で動作します!
Programster

1
チャームのように動作します!!
シャラデンドゥシンハ16

中止したくないフォアグラウンドプロセスの実行中にタイトルを変更するにはどうすればよいですか?
ジャニスエルメリス

1
を使用してプロセスを一時停止しControl + Z、次にを使用してプロセスを再開するとset-title X、それfgを実行できると思います。
ronan_mac

18

このようなユーザーフレンドリーな機能が削除されたとは信じられません。

私はROXTerm(http://roxterm.sourceforge.net)に切り替えていますが、これはうまく機能しています。Ubuntuにパッケージ化されています。

sudo apt-get install roxterm

その後、恐竜が独自の方法を続けてみましょう;-)


1
roxtermでタブタイトルを変更するにはどうすればよいですか?見つかりませんでした。
ハリル

16.04でも動作します
prusswan

うわー、gnome-terminalを使って端末をバックグラウンドに設定することはできず、理由を理解できませんでした...これは端末自体の問題です。devilspieターミナルのバックグラウンドは、roxtermでうまく動作します。
erm3nda

1
RoxTermは素晴らしいですし、まだ動作しますが、悲しいことにはるかに長く継続されることはありません。sadface::sourceforge.net/p/roxterm/discussion/422638/thread/60da6975
ウィリアムズ

私は....それ以来ターミネーターに切り替えました、そして、それ以上RoxTermを使用する必要はありませんでした
マイケルOpdenacker

14

上記のようにRoxTermを試しましたが、良い結果が得られました。しかし、15.04にGnome 2の続きであるMATEプロジェクトの一部であるMATEターミナルに落ち着きました。

sudo apt-get install mate-terminal

その端末はGnome端末コードに基づいています。


解説:Gnome Terminal開発者の考え方を理解するのは難しいです。ターミナルタブに名前を付ける「方法」と、それをどのように正しくするのが難しいかについて、多くの議論があります。その場合、ユーザーが名前を付けにくくするのはなぜですか?まったくスマートではありません。


6

今、私は一日の大部分についてこれを調査し、最終的にこのタイトルを設定する方法を見つけました。\ e] 0で始まるエスケープシーケンスを介して行われます。そして、BEL文字(= \ 007 = \ a)で終わります。Iは、上述とは異なり、端末アプリケーションへのシェルバックから通信があるようなエスケープシーケンスを介して、非常に限定され、可能(さらにいくつかあります)。

上からこれについて:

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

機能します、常に機能するとは限りません。PROMPT_COMMANDコマンドを送信するたびに内容が実行される変数であるため、このエスケープシーケンスも送信します。ただし、これはコマンドラインプロンプトを設定するPS1変数のエスケープシーケンスによってオーバーライドできます。これが、上記がここで効果を持たなかった理由です。

古いUbuntuのインストールから、これを取得し、コマンドプロンプトを設定し(右の部分、後に])、必要なエスケープシーケンスも送信します(左の部分、を含む])。

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

これは、$PROMPT_COMMAND毎回解釈する必要がないため、パフォーマンスが向上する可能性があります。また、Bashには\u、現在のユーザー名、\W現在のディレクトリ名、または\w現在の作業ディレクトリのパス全体のエスケープシーケンスがあり、オプションでの最後の数だけトリミングされるため、さらに多くのオプションがあります$PROMPT_DIRTRIMPROMPTINGBashのマニュアルページの章を参照してください。また、エスケープシーケンスが追加的に囲まれていることを注意する\[と、\]ここに。

固定タイトルを設定するために、これは機能します:

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

楽しい!


調査中に、gnome-terminalソースコードを理解しようとしましたが、これはvteソースコードにつながり、そこでタイトル設定とエスケープシーケンスの読み取りのサポートはセキュリティリスクと見なされます:こちら(ケース20、ケース21)とこちらをご覧ください(「ウィンドウタイトルレポート」)。


これによりタイトルがPS1設定されますが、カスタムコマンドプロンプトの設定など、他の用途の以前の定義もすべて消去されます。既存のPS1コンテンツにエスケープシーケンスを追加しようとしましたが、うまくいくようです。このように: PS1+="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "
ahcox

5

上記のように$ PROMPT_COMMANDを設定しても、効果はありません。Bashはターミナル内で実行され、親プロセス(ここではgnome-terminal)はUNIXのようなOS上の子供の環境を読み取ることができないため、驚きはありません。もっとシンプルなものを使う

PROMPT_COMMAND='echo bla'

echo blaを実行し、他には何も起こりません。

編集:これをエスケープシーケンスでラップする必要があります。他の回答を参照してください。子環境を読み取ることはできませんが、これらのシーケンスを介して、親とやり取りすることができます。

Gnomeバグ740188で、彼らは.bashrcでtitle()関数を定義することについて話しています。開いたタブごとに異なるものですか?可能であれば、深刻ないハッキングを前もって!

Stackexchangeに関する他の説明でも、$ PS1の設定について説明しています(そして、賛成します)。申し訳ありませんが、それはタイトルではなく、コマンドプロンプトです。

要するに、環境設定ダイアログのスペースを少し節約するために、修復を超えてそれを台無しにしました。ああ、神様

現在、開発者の決定を取り消す唯一のチャンスは、深刻なシットストームを燃やすことです。このシットストームをどのように作成しますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.