最近のGnomeやKDEデスクトップを導入している環境で、
軽いウィンドウマネージャを試してみようと、X11初期からある
twm を起動してみると、タイトルバーやメニューなどが異様に大きかったりします。
(2017/11)
$Keywords: twm, tall titlebar, big titlebar, big font $
LANG=C で twm を起動すれば、 とりあえず通常の大きさのタイトルバーになります。 フォントは fixed が使われていると思います。 日本語は出ません。
twm を LANG=ja_JP.utf-8 などのlocaleで起動すると、twm は XCreateFontSet(3) でフォントを読み込み、フォントセット中のフォントを 全部検索して、最大のascent/descent を計算して、全部の文字が収まる高さを 文字のレンダリング用に確保します。
で、異様にタイトルバーが大きくなるというのは、 Unicode (iso10646) エンコードのフォントとして -arabic-newspaper-medium-r-normal--32-246-100-100-p-137-iso10646-1 というフォントを引き当ててしまった、という場合だと思われます。
twmにパッチを当てて XFontSet に含まれるフォントの一覧を吐かせてみると、
src/twm: XCreateFontSet(,-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*,*) src/twm: extracting ascent 11/descent 2 from -misc-fixed-bold-r-normal--13-100-100-100-c-70-iso8859-1 src/twm: extracting ascent 11/descent 2 from -misc-fixed-bold-r-normal--13-100-100-100-c-70-iso8859-1 src/twm: extracting ascent 14/descent 2 from -jis-fixed-medium-r-normal--16-110-100-100-c-160-jisx0208.1983-0 src/twm: extracting ascent 14/descent 2 from -daewoo-gothic-medium-r-normal--16-120-100-100-c-160-ksc5601.1987-0 src/twm: extracting ascent 14/descent 2 from -isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0 src/twm: extracting ascent 12/descent 2 from -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0 src/twm: extracting ascent 24/descent 11 from -arabic-newspaper-medium-r-normal--32-246-100-100-p-137-iso10646-1 src/twm: ascent=24 descent=11
で、なんでこんなフォントが選ばれてしまうのかですが、 デフォルトで設定されている -adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-* に相当するフォントが無い、ので、偶然か何かで -arabic-newspaper-medium-r-normal- を引き当ててしまうようです。
-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-iso10646-1 のフォントは、 xorg-x11-fonts-75dpi パッケージに含まれていますが、 これはレガシーなビットマップフォントなので、 fontconfigなアウトラインフォントをメインで使うデスクトップ環境では インストールされてない場合もあるかと思います。
-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-iso10646-* なフォントが解決できるので、 タイトルバーが「正常な」高さになります。
なので、またパッチ当てた twm の XFontSet の出力を見てみましょう。
src/twm: XCreateFontSet(,-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*,*) src/twm: extracting ascent 11/descent 2 from -misc-fixed-bold-r-normal--13-100-100-100-c-70-iso8859-1 src/twm: extracting ascent 11/descent 2 from -misc-fixed-bold-r-normal--13-100-100-100-c-70-iso8859-1 src/twm: extracting ascent 14/descent 2 from -jis-fixed-medium-r-normal--16-110-100-100-c-160-jisx0208.1983-0 src/twm: extracting ascent 14/descent 2 from -daewoo-gothic-medium-r-normal--16-120-100-100-c-160-ksc5601.1987-0 src/twm: extracting ascent 14/descent 2 from -isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0 src/twm: extracting ascent 12/descent 2 from -misc-fixed-medium-r-normal--14-130-75-75-c-70-jisx0201.1976-0 src/twm: extracting ascent 11/descent 3 from -adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso10646-1 src/twm: ascent=14 descent=3なので、ASCII文字領域には iso8859-1 エンコーディングで選ばれた -misc-fixed-bold-r-normal- が使われているようです。
twmrcのTitleFont には XFontSet形式でカンマで区切って エンコーディングが違う複数のフォントを詰められるので、
~/.twmrc: TitleFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*,-*-liberation sans-*-r-*-*-14-*-*-*-*-*-iso8859-*"
と、 -adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859-1 が 使えるようになるので、もう少しすっきりしたタイトルバーにできます。 これが本来の姿なんでしょう。
~/.twmrc: TitleFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*" デフォルト値
昔のX11環境ではこれらのフォントはインストールされているのが普通だったので、 今になってから問題になっている感じです。
f.identifyの情報ウィンドウは内部的には DefaultFont という フォントセットを使っているのですが、 これは "fixed" 固定で .twmrc で設定が出来ません。 -arabic-newspaper- を拾ってしまうと やたら隙間の多いウィンドウになります。 自分でパッチ作るかあきらめてください。 (vtwmでは設定できる模様)