gitk

linuxでpyenvを使っていてgitkでUTF-8フォントを選択できずに文字化けする時の対処

背景

今までは問題になったことがなかったのだが,最近新しくpyenvで環境構築したanaconda3-5.1.0の下でgitkを起動したら,ロケールはUTF-8なのにマルチバイト文字が\uxxxみたいな文字列になってしまって表示できなくなった.

結論

wish が anaconda で入れられたものを使っていたため /usr/bin/wish が使われるように設定を変えたら直った.
具体的には~/.pyenv/shims/wish/usr/bin/wishのシンボリックリンクで置き換えたらOK.

色々やったこと

色々調べてみると,gitkの中でwishを呼び出す部分が古いwishを呼び出している場合にフォントに影響があるという記事を見付けたので,これが何を指しているか調べてみることにした.
gitk でアンチエイリアスの効いたフォントを - mooz deceives you

grep wish $(which gitk)

    exec wish "$0" -- "$@"
    (後略)

which wish

    /home/USERNAME/.pyenv/shims/wish

こ の せ い か !
shimsの下のwishも/usr/binのwishも同じ8.6ぽいんだけどな…と思いつつ/usr/binを使わせてみる.

PATH=/usr/bin:$PATH gitk

この時は,UTF-8対応フォントが選択され,マルチバイト文字が表示される.

anaconda3-4.4.0時代には少なくともwishなど入ってなかったので,こいつを消しても良いかどうか判別できず,とりあえずリネームして/usr/bin/wishへのシンボリックリンクを置いておくことにして解決した.

cd ~/.pyenv/shims
mv wish wish.orig
ln -s /usr/bin/wish