Gnome-Terminalのタイトルを変更するには?


165

私の作業環境で実行している端末のインスタンスがいくつかあります。特定の端末がどのような目的(Apache、editing_ini、postgresなど)を提供するのかを明確にするために、それぞれに特定のタイトルを設定します。

もちろん、コマンドラインから。


Wardのコメントに加えて、タイトル変更エスケープシーケンスを送信するに「PROMPT_COMMANDの設定を解除する」ことを忘れないでください。そうしないと、次のシェルプロンプトが表示されるとすぐに変更内容が失われます。
ジョングリーン

KDEの同様の質問については、stackoverflow.com
questions / 8782159 /…を

OS XからUbuntuに切り替えるときにこの問題が発生しました。マルチタブ設定内でカスタムタイトルを取得するためにgnome-terminal --load-configこのスクリプトと一緒に使用しました。
半分の14

3
ホームディレクトリの.bashrcファイルに以下を追加すると、# set title of current terminal setTerminalTitle(){ echo -ne "\033]0;${1}\007" } alias termttl=setTerminalTitleタイトルの設定にtermttlエイリアスを使用できるようになります。たとえば、termttl askubuntu
urmalp

1
「保護されている」ので、答えを提供できません。Gnome3のgnome-terminalデフォルトはPROMPT_COMMAND=__vte_prompt_commandです。これは、設定のプロファイルの値を使用します。複数のプロファイルが存在する場合、[ 新しいタブ ] および[ 新しいウィンドウ ]メニュー項目には、各プロファイルのサブメニュー項目があります。手動の方法は、新しいターミナルタブを開き、タブタイトルを右クリックして、[タイトルを設定... ]を選択します。(これは別の回答で非常に読みやすくなりますが、...)
Rich

回答:


145
  • 最もユーザーフレンドリーな方法は、メニューのターミナル->「タイトルを設定...」から選択することです。

  • 他の方法もありますが、発行することもできます

    gnome-terminal --title="SOME TITLE HERE"
    

    あなたの.bashrc行動が上書きされる可能性が高いので、これは望ましい効果をもたらさないかもしれません。

  • 最後の方法を紹介し.bashrcます。

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

追加の参照として、これは私の特定の行です .bashrc

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'

〜/ .bashrcでこのコードをコメントアウトする必要があるかもしれません

case "$TERM" in
xterm*|rxvt*)
    # JEFFYEE REMOVED because it makes commands to title() not work
    #PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

2
有効にするために、あなたが述べたようにコメントアウトまたは削除する必要があります!
トップレス

1
@Ward:実行PROMPT_COMMANDするプログラムです。 PS1そして、PS1されているテキスト文字列が表示されます。上記の例ではecho、実行されるコマンドはで、単純に文字列を出力します。詳細についてはman bashmanpages.ubuntu.com / bashを参照してください。
11

29
GNOMEターミナル3.16.2は言うOption "--title" is no longer supported in this version of gnome-terminal.
イヴァンKozik

10
Gnome 3.18.3では、メニューに「タイトルの設定」エントリがありません:/
shadi

2
上記の文字列にgobbledegookで混乱し、誰のために、彼らは、ANSIのエスケープ文字である-例えば参照lihaoyi.com/post/...
WillC

65

ターミナルを開くたびに、あなたがいるホストなどに基づいてタイトルを設定したい場合、Wardの答えは素晴らしいです。ただし、タイトルをすばやく設定したい場合は、echoを単独で実行できます。

echo -ne "\033]0;SOME TITLE HERE\007"

または単純な関数を作成します(あなたの内部~/.bashrc)、言うtermtitle

termtitle() { printf "\033]0;$*\007"; }

で実行できますtermtitle some title here


3
または同様に、私たちは〜/ .bash_aliasesにラインの下に追加することで、bashのエイリアスとして追加することができfunction set_title() { echo -ne "\033]0;${1}\007" } alias title=set_title、その後、使用: $ title term_title
murarisumit

11
悲しいことに、GNOMEターミナル3.6.2では私には機能しないようです。
オースティンマートン

1
また、xterm 322またはkonsole 16.12では動作しないようです...残念ながら、新しいメソッドがあるかどうかわかりません:(
naught101

2
@ 3oceneこの場合、実際には問題ではありません。それらは同じものですが、たとえば$var_log、と${var}_logは非常に異なるものであり、違いがスクリプトのバグを引き起こす可能性があるため、入るのは良い習慣です。
naught101

2
動作しない場合は、おそらくPROMPT_COMMAND varまたはPS1 varが設定されており、上書きされているためです。unset PROMPT_COMMANDまたは、タイトルも変更するように設定します。たとえば export PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "$(basename $PWD)"'
-gaoithe

32

Vimエディターを使用する場合、vimrcでこのオプションを有効にすることもできます。

:set title

デフォルトでは無効になっています。現時点で編集しているファイル名とその他のことを示すクールな端末タイトルを設定します。


26

完全を期すために、gnome-terminal次のコマンドを使用してタイトルを設定することもできます。

wmctrl -r :ACTIVE: -N "MyWindowTitle"

最初にパッケージwmctrlwmctrlをインストールするをインストールする必要があります。


1
MyWindowTitleは、端末のタイトルに表示されません。wmctrl -mを実行すると表示されます。
sureshvv

2
wmctrlはタブタイトルではなくウィンドウタイトルを変更しますが、エスケープ文字ソリューションではタブタイトルが変更されることに注意してください。さらに、タブを切り替えるとすぐに、ウィンドウタイトルが元のタブタイトルに戻ります。
-redochka

23

ああ、たくさんの答え...

試しましたがwmctrlほとんど機能しましたが、アイコンのタイトルを変更することができませんでしたが、少なくとも永続的には変更できませんでした。

問題は、UbuntuのBashのPS1がタイトルを設定することです。

デフォルトのPS1は

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 

...最初のエスケープシーケンスにタイトルを設定します。 \e]0;\u@\h: \w\a

したがって、2つのソリューションがあります。

解決策1:PS1を単純化し、PROMPT_COMMANDを使用する

PS1をよりシンプルなものに変更します。

PS1="\u@\h:\w\$ "

次に、PROMPT_COMMANDを使用します。

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

解決策2:PS1を直接変更する

新しいタイトルでPS1を変更するだけです:

PS1='\[\e]0;newtitle\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

こんにちは、私はあなたの答えがとても好きです。]0;コード内での役割を説明してもらえますか?私echo -e '\007 \033'ascii -oコマンドでの意味を見つけたと思います...それはそこに何が起こっているのか私は正直にわかりませんが...ありがとう
同型

2
@iso \eまたは\033エスケープ(ESC)文字で、エスケープシーケンスを開始します。]オペレーティングシステムコマンド(OSC)を開始します。xtermの場合、0;「タイトルの設定」を意味し、\aまたは\007OSCを終了するベル(BEL)文字です。詳細:en.wikipedia.org/wiki/ANSI_escape_code#Escape_sequences
wjandrea

@wjandrea私は同等のエスケープ文字を探して(た\e\a)用\033\007が、私はグーグルを入力する適切なキーワードを知らなかったので、私は確かにそれらを見つけることができませんでした。指定したリンクも役立ちます。コメントを回答に変えていただけますか?
SebMa

10

Ubuntuユーザーの場合、HUDを使用してgnome-terminalタブのタイトルを変更できます。

gnome-terminalでAltキーを押してHUDを表示し、最初の数文字(「tit」など)を入力してEnterキーを押し、新しいタイトルを入力します。

これは非常に迅速な方法であり、マウスの使用を避けます。


1
確かに。キーボードに手を当てます。既存のタイトルが表示されるので、この方法を使用して既存のタイトルを変更するだけでも迅速かつ簡単です。
ブレントファウスト

titは、英語のUbuntu専用です。
törzsmókus

全体オプションが:(削除されました
törzsmókus

F2キーもマウスを避けることができます。
同型

@törzsmókusそしてフランス語-力 ;)
wjandrea

3

のタイトルを変更する別の方法は、; gnome-terminalを使用することgconftool-2です。これにより、選択したプロファイルの初期端末タイトルが変更されるため、「Apache」、「Editing」などのタイトルに関連付けられた異なるプロファイルを使用できます。その後gnome-terminal、適切なプロファイルで起動して、指定した端末タイトルを取得します。これは、gnome-terminal --title "name"端末ごとにタイトルを変更するのとは対照的ですが、プロファイルで指定された初期タイトルには影響しません。

スクリプトで次のコマンドを使用してプロファイルの端末の名前を設定し、1日の特定の時間に端末の名前を変更して、物事を思い出させることができます。

gconftool-2 --set /apps/gnome-terminal/profiles/Default/title --type=string "Apache"

これはデフォルトのプロファイル用ですが、たとえばDefault次のような別のプロファイルに変更することで、他のプロファイルのタイトルも設定できますProfile0

gconftool-2 --set /apps/gnome-terminal/profiles/Profile0/title --type=string "Editing"

タイトルを変更するこの方法は、スクリプトで使用できる方法のため、またはプロファイルのタイトルを設定するためのコマンドラインの簡単な方法として使用すると考えました。gconftool-2設定を有効にするために、指定したプロファイルで端末を再起動する必要がある場合があることに注意してください。使用可能な完全な設定gnome-terminalはでリストできますgconftool-2 -R /apps/gnome-terminal


3

もう1つの解決策は、xdotoolを使用してキーストロークをシミュレートすることです。スクリプトで役立つ可能性があります。

  1. gnome-terminalでキーボードショートカットを設定します。

    Edit > Keyboard Shortcuts... > Terminal > Set Title
    

    たとえば、Shift+Ctrl+Y

  2. xdotoolまだお持ちでない場合はインストールしてください:

    sudo apt-get install xdotool
    
  3. 次の一連のコマンド(bashスクリプトでも使用できます)は、ターミナル/タブのタイトルを設定します(スペースでエスケープします\)。

    xdotool key ctrl+shift+y 
    xdotool type My\ new\ fabulous\ title
    xdotool key Return
    
  4. [オプション] xdotoolを使用して、たとえば、新しいタブを開いて上記のコマンドでタイトルを設定することもできます。

    xdotool key ctrl+shift+t
    

    新しいタブを開く前後にスリープ時間を追加することを検討してくださいsleep 1(例:1秒待つ)。

これは最もエレガントなソリューションではありませんが、うまくいきました!私の場合、以前の回答はうまくいきませんでした。Ubuntu 14.04でgnome-terminalを使用し、bashスクリプトを作成したかった。


1

タイトルに現在の作業ディレクトリのみを表示するには、 '。bashrc'でこれを試してください:

PROMPT_COMMAND='echo -ne "\033]0; ${PWD##*/}\007"'

または

PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"' 

0

これは私のGnomeターミナル3.18.3で機能しました

.bashrcファイルを編集して、この関数を追加します

# Update gnome terminal title
function termtitle() {
    # take argument
    TITLE=$1
    shift
    # update title
    PROMPT_COMMAND='echo -ne "\033]0; $TITLE \007"'
}

.bashrcファイルを忘れないでsourceください

$ source ~/.bashrc

そして、更新するだけで、次のように端末のタイトルを変更できます。

$ termtitle "MariaDB CLI"

0

私の答えは、私にとってはうまくいかなかった新しい答えに似ています。最も古い回答はもう機能しません。中央の古い答えは入力が多すぎるため、~/.bashrcファイルに関数を作成しました。

function termtitle() { PS1="${PS1/\\u@\\h: \\w/$@}"; }

関数を追加または変更した後、またはタイトルを再度リセットする場合は、次を使用します。

. ~/.bashrc
termtitle Special Projects

それ以外の場合は、毎日termtitle新しいタイトルで使用します。



-1

gnome 3を使用している場合、便利なTerminal > Set Titleメニューオプションは削除されました。「Set Title」メニューオプションがまだあるgnome 2分岐端末をインストールし、代わりに実行できます。

sudo apt-get install mate-terminal

「ターミナル」を実行する代わりに、「メイトターミナル」を実行します。おそらくmate-terminalも選択する必要がありますsudo update-alternatives --config x-terminal-emulator

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