archLinux
lightdm

archlinuxでlightdmを使うと日本語が表示されない


環境


  • archlinux

  • デスクトップマネージャ


    • lightdm



  • デスクトップ環境


    • xfce4




現象

/etc/locale.confも/etc/locale.genも

LANG=ja_JP.UTF-8になっている(もちろんlocale-genもしている)のに、


/etc/locale.conf


LANG=ja_JP.UTF-8
#LANG=en_US.UTF-8


/etc/locale.gen

...

ja_JP.UTF-8
en_US.UTF-8
...

$ locale-gen

lightdmからlogin後に日本語が表示されない。

xfce4-terminal上で確認するとLANG=en_US.utf8となっている

$ env| grep LANG

LANG=en_US.utf8

sshで別なマシンからloginするとLANG=ja_JP.UTF-8となるためlightdmが原因と思われる。

さらにUTF-8でなくutf8(小文字&ハイフンなし)なのも気になる。

知らないところに言語設定があってそれを読んでいるハズ。

$ ssh archlinux.local

...
$ env| grep LANG
LANG=ja_JP.UTF-8


原因

lightdmが~/.dmrc,/var/cache/lightdm/$USERNAME.dmrcにある言語設定を読むため。

.dmrcとはディスプレイマネージャ(lightdm)のセッション情報を保存するファイル。

[Desktop]

LANGUAGE=en_US.utf8

lightdmの設定ファイルはlightdm.confにもあるがこちらではない。

lightdmをstraceしてやっと見つけました。


対策

.dmrcに正しい言語情報を記述する

[Desktop]

LANGUAGE=ja_JP.UTF-8

#日本語フォントを入れて使う設定しないと、文字化け(日本語の文字コードを出力しようとするが、フォントが存在しないため□豆腐の中に文字コードが表示される)して日本語が表示されないため注意する