Guakeドロップダウンターミナルが大好きですが、面倒な問題があります。多くのタブを使用する場合、コマンドを実行するか、タブの1つをナビゲートするたびにタブ名が変更されるのは嫌です。タブの名前を変更し、すべてのセッションで名前を維持したい。たとえば、Midnight Commanderを使用して長いパスフォルダーに入力すると、タブが展開されて恐ろしい状態になります。 mc [user@machine_name]:/weird/long/infinite/path
フォルダーに移動すると、タブ名/weird/long/infinite/path
が表示されます。
手動で名前を変更する場合でも、各タブに常に同じ名前を付けることはできますか?
迷惑な名前変更を無効にする方法を見つけました。 guake Pythonスクリプト(バージョン0.4.3-3)の996〜1002行目で見つけました。
def on_terminal_title_changed(self, vte, box):
use_them = self.client.get_bool(KEY("/general/use_vte_titles"))
if not use_them:
return
page = self.notebook.page_num(box)
self.tabs.get_children()[page].set_label(vte.get_window_title())
スクリプトが示すように、/general/use_vte_titles
キーは自動名前変更機能を防ぎます。 GuakeはGConfを使用してオプションを構成しています( 説明 )。 Sudo apt-get install gconf-editor
を実行するGuakeオプションを編集するには、 gconf-editor package をインストールする必要がありました。次に、gconf-editor
を実行し、/apps/guake/general
とマークされていないuse_vte_titles
キーを参照しました。エディターを閉じました。次回Guakeを実行すると、自動名前変更機能が無効になりました。
これで、すべてのタブの名前はTerminal
になり、名前を変更しても、すべてのセッションに同じ名前が付けられます。このキーをGuake設定ダイアログに追加すると便利です。しかし、このソリューションはとにかく機能しました。
ただ走れ
gconftool-2 --set /apps/guake/general/use_vte_titles --type boolean false
ターミナルを再起動します
パイのように簡単(3.14)
コマンドラインで:
vim〜/ .gconf/apps/guake/general /%gconf.xml
次のようなエントリが必要です。
<entry name="use_vte_titles" mtime="1404143215" type="bool" value="true"/>
次のように変更します。
<entry name="use_vte_titles" mtime="1404143215" type="bool" value="false"/>
ファイルを保存して、guakeを再起動します。
単に端末のタイトルを短くすることを検討してください。アルゴリズムは.bashrc
で定義されており、端末のタイトルはお気づきのようにGuakeによって尊重されます:
私の.bashrc
には以下が含まれます。
# If this is an xterm set the title to user@Host:dir
case "$TERM" in
xterm*|rxvt*)
Prompt_COMMAND='PS1X=$(pwd | sed -r "s-^$HOME/--;s-^$HOME-~-;s-^(.[^/]*)/.*/-\1/.../-")'
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}"'$PS1X'"\a\]$PS1"
;;
*)
;;
esac
ホスト名は表示されなくなり、最初と最後のパスコンポーネントのみが表示されます。
$HOME
-> ~
$HOME/some/deep/sub/dir
-> some/.../dir
/usr/local/deeply/inside/there
-> /usr/.../there
この設定では、タブボタンは十分に狭くなりますが、有用な情報が含まれています。
こちらもご覧ください:
ええ、私もこの問題を抱えていて、最近のグアケのバージョンにまだ現れていることにとても驚いています。最新バージョンでは、端末にTerminal 1
、Terminal 2
などの名前を付けるオプションがあると思いますが、これはあまり役に立ちません。
過去数年間で、.zshrc
で簡単なスクリプトを使用しました(Zshターミナルを使用していますが、Bashでも同様のものを適用できます)。
function chpwd {
if [ -e ".guakerc" ]; then
setupguake
else
guake -r ${PWD##*/}
fi
}
function setupguake() {
. $(pwd)/.guakerc
if ((${+name})); then
guake -r ${name}
fi
}
基本的にこれが何をするかは、chpwd
を介してディレクトリの変更を監視し、.guakerc
ファイルが見つかるとそれを実行します。そのファイル内で、guakeタイトルと他の多くのものを設定できます。
.guakerc
ファイルが見つからない場合(最も一般的な場合)、フォルダー名を端末名として設定するだけです。したがって、/home/username/Development/social-app
という名前のフォルダーにいる場合、ターミナルの名前はsocial-app
に変更されます。
それが役に立てば幸い!