Window Managers



It is window managers' responsobility to display window title. If a window manager cannot chooose proper font, the title is written as a meaningless row of characters.

It is very easy for a window manager to display native languages --- just use X11 functions related XFontSet (such as XCreateFontSet(), XmbDrawString() and XwcDrawString,XFreeFontSet(), and so on), which is introduced from X11R5, instead of XFontStruct functions. This allows multiple fonts to be used to display one message, which is needed for, for example, Chinese, Japanse, and Korean. UTF-8 also needs this. For example, fonts with both ISO8859-1, JISX0201, JISX0208, and JISX0212 codesets are needed for Japanese (At least ISO8859-1 and JISX0208) and ISO8859-1 and KSC5601 are needed for Korean. Please read Introduction to I18N in the Debian Documentation Project for detail.

Of course the window manager must call setlocale() to enable I18N faculty.

Even if a window manager has a faculty to choose proper font using FontSet, improper configuration files or style data often prevent the prooper choice of fonts. For example, font specification of "-adobe-helvetica-*--12-*" will cause failure to display characters other than ISO-8859-1. Some codesets have only 16-dot fixed-width normal-weight fonts. Some have more sizes of (for example) 12, 14, 16, 24 dots but only fixed-width normal-weight. Thus the specification will be "-adobe-helvetica-*--12-*,-*--12-*,-*--16-*,*".

It is very likely that designers of style data specify font names for which only ISO8859-1 fonts are available. I think it is a good idea for a window manager to automatically add '.*' to font specifications when it reads style files. It is insufficient to check return value of XCreateFontSet and fall into 'fixed' on failure, because, for example, Japanese language uses ISO8859-1 and JISX0208. XCreateFontSet does not return failure even if only ISO8859-1 font is available.

The followings are examples for window title written in Japanese (ISO8859-1 and JISX0208) and so on.

Window Maker can display Japanese with proper setting. wsetfontcommand for the setting is provided. This screenshot was taken by (1) invoking wmaker with LANG=ja_JP.ujis (2) invoking "wsetfont japanese", (3) making a file written in EUC-JP, (4) invoking "kterm -title `cat file`", and (5) GIMP was used to take the screenshot. (As you know, 'kterm' is not important now.)

QVWM is written by a Japanese person and of course can display Japanese and other non-ISO8859-1 languages.

Blackbox (0.60 and later) is modified to use XFontSet (November 2000). At first, you can use internationalized text for window titles. The last example is usage of UTF-8 locale under XFree86 4.0.

Also for taskbars.

And, menus.

IceWM version 1.0.1 can display many languages by default.

Enligntenment cannot display Japanese.

TWM (4.0.1d and later) is modified to use XFontSet by me. Here is an example of international text output using UTF-8 locale. (Novermber 2000)

FVWM cannot display Japanese.

However, there is an i18n patch and fvwm2-ja Debian package is available.

FVWM95 cannot display Japanese. However, there are local patches to enable this.

Sawfish can display Japanese.

Tomohiro KUBOTA <debian at tmail dot plala dot or dot jp>