みくにまるのブログ

意識低い系ブロガー、みくにまるが送るブログ。

Linux (Arch Linux) での日本語入力やキーボードレイアウトの問題の解決策を一挙に列挙、これでLinuxの日本語環境の構築の不具合は解決

Linux楽しんでいますか?
Lisuxでは通常、問題解決の時間というのは、ある意味知識が得られる楽しい時間帯でもありますよね。

しかし!!!

日本語入力関連に手間取っている時間だけは別です。

何の生産性もないだけでなく、不具合が環境特有過ぎて応用も効きにくいと、いいことなしです。

そこでArch Linuxのインストールを繰り返して溜めた日本語関連の不具合解決の知見を皆さんに共有したいと思います。

これの一覧を片っ端から試して一気に問題解決へと進めて時間を有意義に使ってください。

大原則、下流から原因を探っていく。

まず重要となるのが、原因を探る場合には下流から探っていくということです。

そう言わてもいまいちピンと来ないと思うので言い換えると
入力メソッド→デスクトップ環境設定(ローカル)→xorg,wayland設定 → グローバルのデスクトップ環境設定 → グローバルのxorg,wayland設定 → システム設定
という順番で原因を探っていきます。

このように下流から順に原因を探っていかないと 上流で試行錯誤している間に変な設定変更をしてしまい
下流で本来の問題が解決したあとで、再び上流由来の不具合が発生してしまいます。

設定の優先度の高い最下流から順番に問題がないかさぐっていきましょう。

主にどういうときに不具合が発生するのか(Arch Linuxあるある)

Arch Linuxでよくある不具合の原因は
インストールの際に横着して言語を英語にしたままでインストールしてしまうこと。

どうせUIは英語でもわかるしいいやーと余裕綽々でインストールするのですが
肝心のキーボードレイアウトが日本語なので、その部分だけ日本語化するのに後で苦労することになります。

余談ですが、Arch Linuxのインストール時に最初に実行する

loadkeys jp106  

という呪文はコンソール用なので
あとから英語設定のまま入力メソッドやらデスクトップ環境やらをインストールすると
お節介なことに丁寧にキーボードレイアウトまで英語で上書きしてくれてえらい目に逢います。

Archのインストール時に英語のまま進行する理由というのは
ホームディレクトリのフォルダ名に日本語が混ざるのが鬱陶しいからだと思いますが
面倒でも日本語にしっかりと設定してインストールしたあとでフォルダ名を変更していったほうがいいです。
キーボードレイアウトや日本語入力に手間取るほうがよっぽど面倒くさいので。

今回は、日本語入力ができない場合の解決策と
日本語キーボードレイアウトにならない場合の解決策に分けて解説します。
大半の人は日本語入力自体ができない悩みでしょうが
Arch Linuxの場合はキーボードレイアウトでつまずくことが多いのですが情報がないので後者はメモ代わりに。

入力メソッドが表示されるのにJavaアプリ上で入力が効かない場合

ブラウザなどでは文字が入力できるのに
Javaアプリ上では入力した文字が反映されない場合があります。

もしかして?:KDE

これは恐らくQT関連のパッケージや
pam_environmentファイル設定の不足が原因です。
もう一度パッケージなどを見直してみてください。

全角・半角ボタンを押してもMozcが出てこない

これは初心者が落ちるケースの場合は
入力メソッドにMozcが追加されていないのが原因です。
fcitx設定やibas設定を開いてMozcを追加しましょう。

他に、Arch Linuxを英語でインストールしてしまった
一部のパワーユーザーが陥る別パターンの問題が原因の場合もありますが
それは大半の人には該当しないと思うので後述のキーボードレイアウトに関する解決策の章で同時に説明します。

入力メソッドをインストールしたのにログイン時に有効にならない

設定ファイルの記述が必要となります。
ディストーションによっては自動で設定してくれたりしますが
一部のディストリビューションでは手動での設定が必要となります。

~/.pam_environment
LANG DEFAULT=ja_JP.UTF-8
GTK_IM_MODULE DEFAULT=fcitx5
QT_IM_MODULE  DEFAULT=fcitx5
XMODIFIERS    DEFAULT="@im=fcitx5"

上記のようなファイルを作成して再ログインしてみてください。
ログイン時に自動的に有効になります。

問題解決したいのに入力メソッドの設定画面がテキストで開いてしまって難しい

これはArch Linuxで設定用のパッケージをインストールし忘れた場合に発生する不具合です。
Arch Linuxは入力メソッドをインストールしても設定用のツールまでは自動でインストールしてくれません。

fcitx-configtool  

上記のパッケージか、自分の入力メソッドに合わせた似たようなパッケージをインストールして解決してください。

fcitxやibasをインストールしたのに日本語入力ができない

これも初心者が陥るパターン
fcitxやibasは、それ自体では日本語入力できないので
fcitx-mozcやibas-mozcをインストールしましょう。
というか素のfcitxやibasは上記のインストール時に依存関係でついてくるパッケージなので
手動でのインストールは基本的にしないものと思ってください。

他にも、キーボードレイアウトの関係で
半角、全角ボタンが無効なボタンとして割り振られている場合もあります。
その場合には下記の手順で正しい日本語キーボードに設定し直す必要があります。

キーボードレイアウトが切り替わらない

いよいよ一部の人にとっての本題です。
この問題に直面するのは、英語のままでインストール作業をした場合なので
上級者がぶち当たるケースも多いかと思います。
以下は特に初心者には配慮しない解説となっていますので
用語などがわからない方は適宜ググってください。

Step0 下準備(Arch Linuxユーザー向け)

Arch Linuxを英語設定のままでインストールしてしまった人は
場合によっては不幸なことに変更するレイアウトすら入っていなかったりします。
とりあえず下準備としてレイアウトを増やしておきましょう。

sudo pacman -S kbd  

他のディストリの人は多分この手順は不要だと思います。

step1 入力メソッドを疑おう

冒頭に書いた、下流から攻めるの鉄則で
下流の入力メソッドから疑っていきます。
直前まで日本語キーボードレイアウトだったのに
急に英語キーボードレイアウトになった場合は大抵これ。

メゾット側のキーボードレイアウト設定を開いてみてください。
ここで日本語入力には成功したけども、jp106キーボードレイアウトではない場合
キーボードの種類を選び間違えてる場合があります。

Arch Linux環境の場合は
sun_type7_jp_usb
というキーボードmodelがあると思いますが
それに設定することで、「ろ」の入力などが可能になります。(物理的なキーボードの種類によります)

sun_type7のpcしか表示されない場合など
微妙にキーの数が足りなくなる場合があります。
その場合にはキーボード項目自体を削除して、Mozcのみが表示される状態にしておいてください。
他の設定項目で直接正しいキーボードレイアウトを設定すればそちらが反映されるので
日本語の場合には実は入力メソッド側での指定というのはそもそも必要なかったりします。

ただし、キーボードを削除した場合の欠点として
Mozcなどをオンオフした際のフローティングでの切り替えのお知らせポップアップが表示されなくなります。

step2 ローカルのデスクトップ環境を疑おう

デスクトップ環境用の言語設定が原因な場合もあります。
素直に設定メニューなどから、キーボードレイアウトというDE特有の設定項目があると思いますので
そこが英語キーボードレイアウトになっていないか確認してみてください。
sun_type7_jp_usbとkana86の組み合わせが存在した場合にはそれを選択してみましょう。

他のキーボードを使う予定がない場合には、システムのデフォルトを使用という項目を選択します。
これによりシステムを正しく設定できればこの項目も正しくなるので問題が単純化されます。

step3 xorgを疑おう

下記のコマンドを入力してみてください。

setxkbmap -query  

現在のxorgのキーボード設定です。
ここがおかしな場合は、後述する00-keyboarの設定を行ってください。

ただし、繰り返しますが下流の問題を全て解決するのが先です。

step4 そもそも言語を設定しているのか (英語なら"en_US.UTF-8"と明記しているか)

これは結構盲点なのですが、何も設定してない場合には自動的にen_US.UTF-8になるわけではないので
結構英語ネイティブの人もそこ由来の不具合にハマっていたりします。

❯ locale                                                                                       
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

英語でインストールした人は
上記のように空欄の言語設定がないか確認しておくこと

エラーが出ていた場合には下記のようなコードで修正をする。

sudo localectl set-locale LC_MESSAGES=en_US.UTF-8

step5 /etc/X11/xorg.conf.d/00-keyboard.conf に変な設定を打ち込んでいないか?

Archを使っているとありがちなのですが
試行錯誤でググった対処方法を片っ端から試している間に、おかしな設定が残ったままになっている場合があります。

❯ setxkbmap -query                                                           ─╯
rules:      evdev
model:      sun_type7_jp_usb
layout:     jp,jp
variant:    sun_type7

ここが英語や怪しい他の文字列になっている場合には修正しておきましょう

step6 設定ファイルのスペルをミスっている

新規作成するタイプの設定ファイルが必要な場合
制作の際にスペルミスをしている可能性があります。
筆者がやらかした例ですと

.pam_enviroment # 誤
.pam_environment # 正

こんなパターンがありましたorz

設定ファイルをゼロから作る機会の多いArchLinuxではやりがちなミスなので気をつけましょう。

.pam_environmentの書式を間違えている

.xinitrcなどとは違って、構文中にexportの文字は必要ないので気をつけましょう。
コピペでexportを付与したまま作成していませんか?

そもそもDMが.pam_environmentに対応していない。

Arch Wikiではさも万能なようにかかれている上記設定ファイルですが
実際のところはDMによっては初期設定では読み込まないので無意味な設定となっている場合があります。

素直に.xinitrcと.xprofileに

export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS="@im=fcitx5"

と打ち込んで再起動しましょう
(fcitx5)の部分は適宜書き換えること。

番外編

日本語入力関連のあるあるのハマりポイントもついでに解決しておきましょう。

日本語入力が即座に反映されない、毎回エンターを押す必要がある

拡張機能のon the topスタイルを有効化する

日本語入力のポップアップが常に左下に表示されてしまう

モジュールのインストールがされていないのが原因なのでインストールしましょう
(fcitx5-gtkやfcitx5-qtのこと)
Arch Linux以外の方にも似たようなパッケージがあるはずなので探してください。

日本語入力がめっちゃバグる

pam_environmentファイルでfcitx5と書くところを間違えてfcitxと書くと入力がバグるので修正しましょう。

以上です!!!!!!!!!!!

これでもうArch Linuxの日本語入力環境の整備も怖くないですね!!