Window Manager mwm (x11-toolkits/motif) を UTF-8 の環境にて使うと,Window の title bar に表示される文字が化けることがあります.[1][2]
具体的には,~/.Xresources にて "Mwm*fontList" によりフォントを設定しようとすると,iso8859-1 と iso10646-1 の両方を同時に設定することができません.[3]
そのくせ,片方だけ設定した場合にはうまく動作しません.
すなわち,
-
iso8859-1 だと漢字が文字化けする.[4]
-
iso10646-1 だと半角英数字のみの文字列が文字化けする.半角英数字と漢字が混在する文字列は問題ない.[4][5]
以下でその原因を分析し,対策も二通り考えました.
とりあえずは問題なく動作しております.
ただし,これらを十分に試用したわけではないので,ご注意下さい.
なお,これらの対策を施した mwm を LANG=ja_JP.eucJP の環境で用いても不具合は生じておりません.
[1] 私は積極的に title bar に漢字を表示したいわけではありません.
firefox は閲覧先の <title> tag の内容を title bar に表示します.
したがって,ここに漢字が使われている場合にはそれを表示してしまうのです.
むしろ,可能ならば,この表示をやめるように firefox の設定をしたいです.
(2021.7.27) 概要にも書きましたが,最近の firefox はこのような表示を行なうのをやめたようです.
[2] OS は Linux ですが,同じ問題に遭遇した方がいらっしゃいます.
ただ,その方の質問に対して回答がなされていないのが悩ましいです.
(ここからの link は設定しておりません.)
https://motif.ics.com/forum/general-questions/mwm-font-setting-window-title
[3] LANG=ja_JP.eucJP の環境では,以下のように設定すればうまく行きます.
Mwm*fontList:\
-misc-fixed-medium-r-normal--14-*-*-*-*-*-iso8859-1; \
-misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0201.1976-0; \
-misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0208.1983-0:
LANG=ja_JP.UTF-8 の環境では,このように複数のファイルを設定するとエラーになります.
[4] こちらで遭遇した不具合をそのまま表わして「半角英数字」「漢字」という呼称を使いましたが,正確には「8 bit 文字」と「16 bit 文字」です.
[5] 他の Window Manager は iso10646-1 だけでちゃんと表示されるものが多いです.
これには半角英数字のフォントも入っているので,本来そうなるはずです.
(1) twm ではこの問題は生じません.
.twmrc を雛型から cp し,
% cp /usr/local/share/X11/twm/system.twmrc ~/.twmrc
以下の部分を,日本語のフォントを含みエンコードが iso10646 であるようなファイルを指すように書き換えれば,title bar に日本語が表示されます.
TitleFont "-gnu-unifont-medium-r-normal-sans-16-160-75-75-c-80-iso10646-1"
(2) fvwm2 (x11-wm/fvwm2) でもこの問題は生じません.
.fvwm2rc を雛型から cp し,
% cp /usr/local/etc/system.fvwm2rc ~/.fvwm2rc
以下の部分を書き換えれば,title bar に日本語が表示されます.
Style * Font -gnu-unifont-medium-r-normal-sans-16-160-75-75-c-80-iso10646-1
(3) xfce (x11-wm/xfce4-wm), mate (x11/mate) でもこの問題は生じません.
(4) lesstif (x11-toolkits/lesstif) の mwm は日本語が表示されませんでした.文字化けでなく空白になります.
(これは当方の設定が不適切である可能性もあります.)