Guake Terminal の横幅を調整する方法(Ubuntu 12.04)

前フリ

プログラマのみなさんなら何かしらの Terminal を日々使い倒していることと思います。
GUI で何かの操作をしているときに、急に何かコマンドとかスクリプトとかワンライナーを実行したくなりますよね。
私は一日に 1024 回くらいなります。
そのたびに毎回 Terminal を起動していたり、後ろに回ってしまった Terminal のウインドウを探しまわったりしていると大変な時間の浪費です。

そこで Guake です。

F12 を押すだけでいつでも確実に Terminal にアクセスできる快感は一度覚えてしまうともうやみつきで離れられなくなります。

そんな Guake ですが、使っているうちにいくつか不満が出てきました。
(やっぱり Mac の iTerm とか Windows の Console2 とかと比べちゃいますね。)

たとえば、マウスカーソルで選択しただけで選択範囲の文字列をクリップボードにコピーしてくれる機能とか、クリップボード上の文字列を右クリックだけでペーストしてくれる機能とかが Guake にはありません。
(これができたら Guake の最強の座が安泰なのですが、やり方がわかりません、、、どなたかご存知でしたら教えてください)

それから、どうも Ubuntu の Launcher の幅の分だけ Guake のウィンドウが画面からはみ出しているようで、微妙に使いにくい時があります。長ーい行を編集してるときとか。
これは Guake 側にバグとしては報告されているようなのですがまだ直っていません。

前フリが長くなりましたが、今回の本題である、このウインドウの横幅が長すぎて Terminal の右端が画面からはみ出してしまうという問題の解決方法がわかったのでメモしておきます。

解決策

Ubuntu 12.04 では、/usr/lib/guake/guake.py に以下のような get_final_window_rect という関数がありますので、仕方ないのでこれを書き換えて修正しましょう。
編集には管理者権限が必要です。また、万が一に備えてバックアップをとっておきましょう!

Before:

def get_final_window_rect(self):
    """Gets the final size of the main window of guake. The height
    is the window_height property, width is window_width and the
    horizontal alignment is given by window_alignment.
    """
    screen = self.window.get_screen()
    height = self.client.get_int(KEY('/general/window_height'))
    width = 100
    halignment = self.client.get_int(KEY('/general/window_halignment'))

After:

def get_final_window_rect(self):
    """Gets the final size of the main window of guake. The height
    is the window_height property, width is window_width and the
    horizontal alignment is given by window_alignment.
    """
    screen = self.window.get_screen()
    height = self.client.get_int(KEY('/general/window_height'))
    width = 97
    halignment = self.client.get_int(KEY('/general/window_halignment'))

変えたのは 100 という数字を 97 にしただけです。
(画面の物理的な幅に対して Guake のウインドウの幅が 100% になるように指定されていたのを 97% になるように指定しました。)

ご自身の環境にあわせて 98 とか 95 とか適当な数字を見つけてください。

書き換えたら Guake を quit して再び起動すればその幅になっているはずです。

デフォルトでは端末のウインドウが中央寄せになるはずですが、左寄せとか右寄せがよければ
halignment = の行を

halignment = ALIGN_LEFT

とか

halignment = ALIGN_RIGHT

にすれば OK です。

ちなみに Ubuntu 12.10 では /usr/bin/guake を編集すれば良いようです。

こちらも、編集には管理者権限が必要です。