0%

Ubuntu14.04のbyobuをputtyから使う

Docker開発環境を日本語化してから、byobuの動きがおかしくなりました。デフォルトのバックエンドはtmuxです。
久しぶりにPuttyから使うと勝手に毎秒スクロールが上がってしまい使い物になりません。いつも通りでUTF-8 (CJK)で接続しています。
普段はOSXのiTermを使っているのですが、WindowsからSSHできないと、これでは仕事に困ってしまいます。

バージョンの確認

日本語開発環境を作った、Dockerコンテナのバージョンを確認します。いつものようにコンテナの起動はdisposableで。

$ docker run -t -i --rm  masato/baseimage /sbin/my_init /bin/bash

Ubuntuのバージョンは14.04です。

# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04 LTS"

byobuのバージョンは5.74です。デフォルトのバックエンドはtmuxになっています。

# byobu --version
byobu version 5.74
tmux 1.8

日本語環境にしているので、デフォルトlocaleはja_JP.UTF-8です。

/etc/default/locale
#  File generated by update-locale
LANG=ja_JP.UTF-8

localeコマンドでも確認します。

# locale
LANG=ja_JP.UTF-8
LANGUAGE=
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

バックエンドをscreenにした場合

バックエンドをscreenにすると毎秒スクロールが解消されていましたが、今度はタブ補完やカーソルが効かなくなりました。
キーバインドを変更しないといけないらしく、Emacsのキーバインドの方が優先なので、シェルで設定を変えたくないです。

実験

OSX、Putty、Linux Mint 16からSSHして比較すると、byobuを起動したときの左下にでるロゴが違うことに気付きます。
Linux Mint 16では、クレジットマークが出ていますが、iTermだと[×]、Puttyだと文字化けしています。

~/.byobu/statusのバックアップを取ります。

# cp ~/.byobu/status{,.bak}

byobu-config -> 「ステータス通知の切り替え」で「logo」のチェックを外してdiffを取ります。
tmux_leftのlogoがコメントアウトされました。

# diff -u ~/.byobu/status.bak ~/.byobu/status
# Tmux has one status line, with 2 halves for status
-tmux_left="logo #distro release #arch session"
+tmux_left=" #logo #distro release #arch session"

Puttyで確認してみるとbyobuが毎秒スクロールがすることなく使えるようになりました。
byobu右下の時計表示はちょっと便利なのでdisableしなくても済んでよかったです。

まとめ

もう少し設定が固まったら、DockerfileのADDで~/.byobuもコピーしてしまおうと思います。
.emacs.dもADDでコピーしていますが、まだコンテナを起動したあとに変更をしてしまうので、disposableになるよう次回もっと整理しようと思います。