Wineのフォントスムージング設定

Wine のフォントスムージング関連で検索している人が多いようなので久しぶりに Wine ネタを。

まず、ユーザーフォントの読み込みから。

現在、MacPorts 版 Wine @1.5.9 を使用していますが、一時期 Homebrew 版を使っていたためか、以前行われていたユーザーフォントディレクトリの読み込みをしてないっぽいです。なのでまたプレフィックスディレクトリにシンボリックリンクを置いておきました。
ていうかよく考えたら前のバージョンのキャッシュ引き継いでただけだったかも…。

ln -s \
/Users/mattintosh/Library/Fonts \
/Users/mattintosh/.wine/drive_c/windows/Fonts

で、フォントスムージングの方法なんですが、MacPorts 版を使っている人はレジストリ弄るより WineTricks を使ったほうが簡単です(結局レジストリは弄ることになると思うけど)。Homebrew 版は今のところ WineTricks を GUI で起動するために必要な Zenity がフォーミュラに登録されてないのでコマンドラインから設定することになりますが今回は省略。

sudo port install winetricks
winetricks

WineTricks GUI を起動したら[Select the default wineprefix]→[Change settings]を選択します。[fontsmooth=rgb]にチェックを入れて[OK]を押します。フォントスムージングのタイプはお好みで。

通常は RGB を選択しておけば問題ない…はず

そうすると以下の様な値をレジストリに追加してくれます。

HKEY_CURRENT_USER
|
+-- Control Panel
|
+-- Desktop
|
+-- FontSmoothing [2]
|
+-- FontSmoothingGamma [1400]
|
+-- FontSmoothingOrientation [1]
|
+-- FontSmoothingType [2]

あとは[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]の[MS Shell Dlg]と[MS Shell Dlg 2]のフォントをアンチエイリアス対応のフォントに置き換えます。

しかし、〈MS Gothic〉は対応していませんし、〈Meiryo〉はフォントサイズの関係かアンチエイリアスがかかりません。〈ヒラギノ角ゴ Pro W6〉を使うのが手っ取り早いかもしれませんが、Mac OS ほど綺麗には表示されませんし、文字の表示が滅茶苦茶になることがあります。FontForge でビットマップ抜くっていうのもアリかも。

HKEY_LOCAL_MACHINE
|
+-- Software
|
+-- Microsoft
|
+-- Windows NT
|
+-- CurrentVersion
|
+-- FontSubstitutes
|
+-- MS Shell Dlg [Hiragino Kaku Gothic Pro W6]
|
+-- MS Shell Dlg 2 [Hiragino Kaku Gothic Pro W6]

[Hiragino Kaku Gothic Pro W6]は簡体字版の[Hiragino Sans GB W6]でもOKです。

で、多分この設定だけだとアンチエイリアスがかからないのでその場合は下の設定も。

ClientSideWithRender の設定

実は Wine でフォントスムージングを使うときに大事なのが[HKEY_CURRENT_USER\Software\Wine\X11 Driver\ClientSideWithRender]かなぁ、と。この値が無いと[FontSmoothing]を有効にしていてもアンチエイリアスが効かないことがあります。「FontSmoothing の値を変えてるのにアンチエリアスがかからない!」っていう場合はこちらもチェックしてみるといいかも。

HKEY_CURRENT_USER
|
+-- Software
|
+-- Wine
|
+-- X11 Driver
|
+-- ClientSideWithRender
[ClientSideWithRender=Y]または文字列なし アンチエイリアス〈無効〉
[ClientSideWithRender=N]または値なし アンチエイリアス〈有効〉

[HKEY_CURRENT_USER\Software\Wine\X11 Driver\ClientSideWithRender]はデフォルトだと存在しないキーなので自分で追加します。

見た目は[FontSmoothing]を使った場合と変わりません(じゃあ FontSmoothing の意味って…?)。


Windows 環境は[MS Sans Serif]や[MS UI Gothic]でアンチエイリアス無しが一番見やすいと思いますけどね…。


追記(2013年03月10日)

現在、1.5.25 を使用していますが、デフォルトでフォントスムージングに関する設定がオンになっているので FontSmoothing の値を 0〜2 に変更するだけでアンチエイリアスのオン・オフが切り替えられます。