guakeタブの名前を変更して、現在のコマンドを表示できますか?


13

私はguakeを非常に頻繁に使用し、任意の時点で3台以上のコンピューターにsshします。また、いくつかのタブ(ターミナル)でデーモンを実行しています。私が知りたいことは、現在のコマンドの名前をターミナルの名前として持つことは可能ですか?タブを右クリックし、その名前を変更すると、これが発生します:(ターミナル5の後のタブを見てください)

ターミナル5の後のタブを見てください

ありがとう。


関連する質問への私の回答を参照して、タブのタイトルとして現在のディレクトリの省略表現を表示してください。
krlmlr

「現在のコマンド」とはどういう意味ですか?各端末で実行されているコマンドは常にありますか?何も実行されていない場合、タイトルはどうなりますか?
rubo77

回答:


4

これは、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はタブ名を正しく変更できます


1
これは質問に答え
ませ

3

これがguakeで動作するかどうかはわかりませんが、ほとんどのターミナルエミュレータで動作します。端末のタイトルを変更するには、スクリプトにエコーを含めることができます。

echo -ne "\033]0;your_title_here\007"

ターミナルで入力したときにうまくいきませんでした。
theTuxRacer

1
これは、シェルのプロンプトが通常、現在の作業ディレクトリに設定するためです。PS1変数を確認してください。
ak2

私のUbuntu 15.10でも動作しません。これを解決するのに何が役立つのかを確認しましecho $PS1\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
rubo77

3

ちょっとしたハックですが、これは現在の端末の名前をssh'edに変更します。

function ssh() {
    guake -r "$@";
    /usr/bin/ssh $@
}

PROMPT_COMMANDを更新する場合も、毎回端末名を更新する機能を使用できます。ただし、コマンドの実行後に名前が変更されるだけなので、これはsshの問題には機能しません。

例えば

export PROMPT_COMMAND=renameTerminal

function renameTerminal() {
    guake -r "$SOMENAME";
}

2

guakeでタブ名を変更する場合は、タブ名を右クリックして名前を左クリックします。新しい名前を入力するためのポップアップボックスが開きます。


確かですが、これをどのようにスクリプトに追加できますか?
rubo77

1

単にタブ名を変更することができます

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

タイトルを「エコー」に設定します。


0

シェルを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 

1
zshは、guakeでまったく動作し
ません:

ああ、そうだ、前にその問題にぶつかったのを覚えている。しかし、少なくとも< guake.org/ticket/49 > などのバグに関連するバグは修正されたようです。
poolie
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.