Cygwinでgitkを実行するのにX serverが必要になった
Cygwinでパッケージ追加しようと思って久しぶりにsetup.exeを実行したところ、正常に完了せずにエラーがでてしまった。Terminalどころかcmdでのashも無反応になってしまったので、仕方なく http://cygwin.com から最新のsetup.exeをダウンロードして再実行。今度はうまくいって、Terminal上げて何気に gitk を打つと、下のエラーを吐いて上がらない。
$ gitk Application initialization failed: no display name and no $DISPLAY environment variable Error in startup script: no display name and no $DISPLAY environment variable while executing "load /usr/lib/tk8.5/../../bin/libtk8.5.dll Tk" ("package ifneeded Tk 8.5.11" script) invoked from within "package require Tk" (file "/usr/bin/gitk" line 10)
調べてみると、Cygwinに含まれるTcl/Tkがつい最近更新され、GDKに代わりX11に依存するようになったとのこと。
仕方ないのでsetup.exeから xinit と xorg-server を追加。gitkを実行する前に startxcmd でX serverを上げておき、
$ DISPLAY=localhost:0 gitk
で無事起動・・・しない。今度は
Error in startup script: unknown color name "SystemButtonFace" while executing "winfo rgb . $c" (procedure "setui" line 3) invoked from within "setui $uicolor" (file "/usr/bin/gitk" line 11522)
と言われてしまった。どうも古い ~/.gitk があるとまずい様子。どうせ大したこと書いてないのでさくっと消して、再度gitkで無事起動!