私はguakeを非常に頻繁に使用し、任意の時点で3台以上のコンピューターにsshします。また、いくつかのタブ(ターミナル)でデーモンを実行しています。私が知りたいことは、現在のコマンドの名前をターミナルの名前として持つことは可能ですか?タブを右クリックし、その名前を変更すると、これが発生します:(ターミナル5の後のタブを見てください)
ありがとう。
私はguakeを非常に頻繁に使用し、任意の時点で3台以上のコンピューターにsshします。また、いくつかのタブ(ターミナル)でデーモンを実行しています。私が知りたいことは、現在のコマンドの名前をターミナルの名前として持つことは可能ですか?タブを右クリックし、その名前を変更すると、これが発生します:(ターミナル5の後のタブを見てください)
ありがとう。
回答:
これは、guake(0.4.1)のバグです。筆者はこれが最善の方法ではないと言っているが、私はこのバグレポートでこの問題を見つけて解決しているだけだ:https : //github.com/Guake/guake/issues/205
タブラベルを設定するコード(行986)の後にダイアログ破壊コード(guake.py行983)を下に移動すると、実際に問題が解決することがわかりました。だから私のために働くコードは次のようになります:
response = dialog.run() # dialog.destroy() if response == gtk.RESPONSE_ACCEPT: self.selected_tab.set_label(entry.get_text()) dialog.destroy()
gtkとダイアログに何らかの問題があるかもしれませんが、バージョン0.4.1 diffでgtkに関連するコードの変更は見つかりませんでした。
編集:guake 0.4.2はタブ名を正しく変更できます
これがguakeで動作するかどうかはわかりませんが、ほとんどのターミナルエミュレータで動作します。端末のタイトルを変更するには、スクリプトにエコーを含めることができます。
echo -ne "\033]0;your_title_here\007"
echo $PS1
た\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
。
ちょっとしたハックですが、これは現在の端末の名前をssh'edに変更します。
function ssh() {
guake -r "$@";
/usr/bin/ssh $@
}
PROMPT_COMMANDを更新する場合も、毎回端末名を更新する機能を使用できます。ただし、コマンドの実行後に名前が変更されるだけなので、これはsshの問題には機能しません。
例えば
export PROMPT_COMMAND=renameTerminal
function renameTerminal() {
guake -r "$SOMENAME";
}
単にタブ名を変更することができます
guake -r newtabname
最新の実行中のコマンドを取得する場合は、たとえば
echo "!!" | cut -f 1 -d " "
!!
入力するとbashによって展開されます。エイリアス置換によって拡張されません。したがって、history
組み込みを使用して展開を行い、エイリアスに配置する必要があります。
alias setguaketitle='guake -r $(echo "$(history -p !! )"| cut -f 1 -d " ")'
最後のコマンドが
echo this is a test
それから
setguaketitle
タイトルを「エコー」に設定します。
シェルをzshに変更する場合、これをに追加できます~/.zshrc
。
preexec() {
echo -n '\e]0;'
echo -nE "$1"
print -nP ' (%~)'
echo -n '\a'
}
現在のコマンドと現在の作業ディレクトリが表示されます。これは、guakeだけでなく、すべてのターミナルエミュレーターで機能します。
zshをインストールするには:
sudo apt-get install zsh
試してみてください
zsh
新しい端末のデフォルトにするには:
chsh -s /bin/zsh