2013年1月17日木曜日

xrdp でターミナルの補完時に待たされる件

ちょっと前に書きましたが、今自宅サーバーに接続するには xrdp 経由のリモートデスクトップで接続しています。いちいち Windows マシンに VNC クライアントを入れなくていいので重宝しているのですが、今のところ唯一かつ致命的な難点がありまして。それは
”ターミナルを開いて補完すると遅いことがある”
というものでした。とにかく接続したときに例えば
$ ls / <TAB><TAB>
などと打つと、普通はさっと / 直下のディレクトリやファイルが列挙されると思いますが、このときなぜか1秒程度待たされるのです。
$ ls /usr/loc<TAB>
のように候補が1つしかないものはさっと /usr/local とかになってくれるんですが、
$ ls /usr/li<TAB>
のように /usr/lib /usr/lib64 /usr/libexec 等複数の候補があったり、まったく候補がないような場合も同様に1秒程度待たされた後に /usr/lib まで補完されます。

どうにもストレスするので、使うの止めようかとも思ったんですが、VNCよりクリックしたときのクリック感(?)とかがコンソールからログインしてるときに近いとか、セッションがないときにも勝手にあげてくれるとかいいところもあるので原因を探っていました。そして今日ようやく見つけました!ググってもあまり出てこないところを見るとあまりみなさん気にしてないのか、こんな環境あまりないのか、はたまた私の何かの設定のせいで会社のサーバーも自宅のサーバーも同じような状態に陥ってるのかわかりませんが、とにかく解決方法です。

解決方法は
gnome-terminal の Preferences で "Terminal bell" をオフにする
でした。なるほど、音まわりでしたか。リモートデスクトップってリモートのマシンの音もローカルに持ってこれましたよね。そのあたりに何かありそうです。

なぜこれにたどり着けたかというと、この補完が遅いという事象、今のところは gnome-terminal を使ったときにしか観測されてないんですね。なので別のターミナルを入れてみようかということで、terminator というものを入れてみました。これはこれでなかなかよさげなツールなんですが、これを使った場合、補完は遅くなかったのです。おお、解決したか!と思ったんですが、補完した瞬間(というか上の例で補完が遅い瞬間)、terminator に何かアイコンのようなものが表示されます。
 なんでしょうね、これ。と思って急いでクリックしたりなんかしてたんですがわからない。そこでデバッグオプションをつけて実行してみたところ、こんなログがでました。
ConfigBase::get_item: ConfigBase::get_item: urgent_bell found in profile default: False
ConfigBase::get_item: ConfigBase::get_item: icon_bell found in profile default: True

ベル・・・。もしや!?と思って先ほどの設定をしたところ見事に解決した、というわけです。めでたしめでたし。

0 件のコメント:

コメントを投稿