CentOS 7でキーボードを日本語配列にできず記号入力等で困る事象の対処

注意事項

■概要

仮想環境上のCentOS7のキー入力が日本語配列にならず、記号('@'や'='等)の入力が面倒なことになっていたので、その対処に本腰を入れた時の記録。
最終的には日本語配列に変更できたが、釈然としない結果に。
理屈はよく分からないがとりあえず直ったので備忘。

環境:
 MacOS Monterey 12.2.1
 VMware Fusion 12.2.3
 CentOS 7.9
 物理キーボード:iMac付属のJIS配列日本語キーボード

■結論

「地域と言語」の設定で、入力ソースに「日本語(かな漢字)」だけでなく、「日本語」も追加する。

■背景説明

Mac上で動かしている VMware Fusion 上に、CentOS仮想マシンを動かしている。
キーボードはiMac付属の日本語配列のものを使用。
CentOSの言語やキーボード設定をしてもなぜか入力が英語配列のままになり、特にコマンドで記号を打つ場合に困っていた。(「:」はShift+「;」、「=」はShitf+「^」など)

数年前にも対処に乗り出したが結局分からず退散、今回二度目の挑戦。

解決前の設定状況

解決前の時点では下記の設定をしていた。
ただ下記の設定が問題解決のために必要な設定だったのかは不明。
#そもそも下記のように locale や keymap をjp106 にしても
#この事象が起きている場合、下記がus設定であろうと
#本記事で記載している対処をすれば日本語配列にできると思われる。

# localectl status
   System Locale: LANG=ja_JP.utf8
     VC Keymap: jp106
     X11 Layout: jp
       X11 Model: jp106
     X11 Options: terminate:ctrl_alt_bksp

# cat /etc/vconsole.conf 
KEYMAP=jp106
FONT=latarcyrheb-sun16

なお、日本語入力自体はできている状態。
あまり関係ないがmacキーボードの「英数」キー、「かな」キーの操作は、VMwareのキーマップ設定 & CentOSの「日本語(かな漢字)」のショートカット設定によって、直接入⇄かな の入力変換をできるようにしている。

対処方法

試行錯誤の末、入力ソースに「日本語」を追加すれば日本語配列になると分かった。

元々入力ソースは「日本語(かな漢字)」のみを設定していた。
そこに「日本語」も追加する。

まだこの時点では、「日本語(かな漢字)」は英語配列のはず(キーボードアイコンからキーボード配列を確認すると英語配列になっている)。
一方「日本語」は日本語配列になっている。
そこで入力を、先ほど追加した「日本語」に設定する(デスクトップ上部メニューの曜日の左にある入力設定から変更)。
すると何故かその時点で「日本語(かな漢字)」も日本語配列になる(キーボードアイコンからキーボード配列を確認しても日本語配列に変わっている)。

そうなれば入力ソースの「日本語」を削除しても「日本語(かな漢字)」は日本語配列のまま使える。
ただし「日本語」を削除して「日本語(かな漢字)」だけの状態に戻すと、OS再起動時にまた英語配列になってしまう。
「日本語」を削除せずに残しておくと、OS再起動後も「日本語(かな漢字)」が日本語配列のまま使える。

この辺りの理屈がいまいちよく分からず、釈然としない...。

※先ほど追加した入力ソースの「日本語」は元から日本語配列のようなのでそもそもこちらを使ってもいいかもしれないが、ショートカットが設定できなかったので「日本語(かな漢字)」を使っている。

多分入力ソース「日本語」が持っている日本語配列の設定情報が反映されて「日本語(かな漢字)」も日本語配列に置き換わる動きをしているような気がするので、その大元の設定の仕組みが分かれば根本的な解決ができそうな気がする。
ただ根本対処ならずとも実質恒久対処できたのでこの件はこれでクローズ。