私がここでそれを尋ねるべきか、unix.stackexchange.comでそれを尋ねるべきかわかりません、私は この質問はここ を見つけました。
私の質問も同様です。ターミナルのタイトルを変更したいのですが、Debianベースのディストリビューション、ターミネーター、ZSHを使用しています。oh-my-zshタイトルはbashで問題ありませんでしたが、ZSHに移動すると_/bin/zsh
_タイトルとして。
Xtemエスケープシーケンスを使用してウィンドウタイトルを設定します。ほとんどの実装では、最初のものが最もよく機能します。
echo -en "\e]0;string\a" #-- Set icon name and window title to string
echo -en "\e]1;string\a" #-- Set icon name to string
echo -en "\e]2;string\a" #-- Set window title to string
編集:上記はタイトルを1回だけ設定します。タイトルに常に文字列を表示するようにzshを設定するには、ホームディレクトリの.zprofile
に以下を追加します。
case $TERM in
xterm*)
precmd () {print -Pn "\e]0;string\a"}
;;
esac
以下はgnome-terminalの各タブの名前を変更するのに役立ちました。 〜/ .zshrcファイルに次のコードを追加しました。
precmd () { print -Pn "\e]0;$TITLE\a" }
title() { export TITLE="$*" }
これにより、各タブの名前を変更するtitle関数が作成されます。
注:oh-my-zshを使用している場合は、自動タイトルコマンドを無効にする必要があります。 〜/ .zshrcファイルでこの行のコメントを外すことでそれを行うことができます:
DISABLE_AUTO_TITLE="true"
これは、使用するシェルに関係なく機能するはずです。
printf "\033];%s\07\n" "hello world"
以前の答えは私にとってはうまくいきませんでした。しゃっくりがないわけではありません(常に更新されるわけではありません)。 oh-my-zsh
なしでZSHを使用していたことが原因である可能性があります。幸い、私はchpwd
について知ったので、
chpwd() {
[[ -t 1 ]] || return
case $TERM in
Sun-cmd) print -Pn "\e]l%~\e\\"
;;
*xterm*|rxvt|(dt|k|E)term) print -Pn "\e]2;%~\a"
;;
esac
}
chpwd
は、ディレクトリが変更されるたびに呼び出されます。.zshrc
私はoh-my-zshを使用しないので、そこで機能するかどうかはわかりませんが、それらがchpwd
を変更して上書きしない限り、上書きされます彼らの上書き:D)、それはすべきです。