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で無事起動!