私がubuntu 14.04を使用していたとき、タイトルを設定するのは簡単です。 F2を押すか、マウスをトップメニューに移動します。しかし、ubuntu 16.04にはメニューがなく、F2を押してもタイトルを変更できません。私は何をすべきか?
多くのプログラムはタイトルを上書きするので、タイトルが修正されたり、他のウィンドウで複製されたりしないように頼ることはできません。これは、gnome-terminalでのリモートsshセッションで特にそうです。それはまだ大いに役立ちますが、ウィンドウマネージャが一致を行うのに十分な信頼性がないため(削除したと思う理由です(Amias Channerによる追加))、この機能は最新のgnome-terminal
で削除されました。ただし、タイトルを変更する可能性はまだありますが、コマンドで変更できます。これを実現するには、~/.bashrc
ファイルを簡単に編集し、次の行を追加します。
# function to set terminal title
function set-title(){
if [[ -z "$ORIG" ]]; then
ORIG="$PS1"
fi
TITLE="\[\e]2;$*\a\]"
PS1="${ORIG}${TITLE}"
}
これにより、コマンドset-title <name you want to set it to>
を使用するだけでターミナルウィンドウのタイトルを設定できます。これは、ANSIエスケープコードにより可能です。そのため、コードの実行場所に関係なく、すべてのプログラムで出力できます。それが\ eビットと\ aビットの機能です。 (Amias Channerによる追加)。
ここで見つけた解決策 と、16.04 LTSで実行して以来、自分で使用しています。
Videonauthのソリューションはbash固有であるため、他のシェル(kornシェルまたはcシェルまたはmkshまたはtcshなど)を使用すると機能しません。また、PS1
プロンプトを編集してタイトルを設定します(何らかの理由でbash
のタイトルに影響します)。以下に、mkshを使用したgnome-terminalの例を示します。
私が個人的に使用しているのはこれです:
setTitle() {
echo -e "\033]0;$@\007"
}
このコマンドはエスケープシーケンスを使用し、Shell-agnosticです。つまり、bash以外のシェルでも機能します。小さな欠点は、これを微調整する場合、ASCIIエスケープシーケンスを知る必要があることです。
これは、私の~/.bashrc
ファイルで使用する関数です。
function termtitle() { PS1="${PS1/\\u@\\h: \\w/$@}"; }
追加(または変更)した後、ファイルのリソースを追加する必要があります。
. ~/.bashrc
使用するには、次のように入力します。
termtitle Special Projects
タイトルを一度変更したら、リソースを再度変更する必要があります。
. ~/.bashrc
termtitle My new title