CentOS7で日本語入力&日本語106キーボードを使うための設定

CentOS7で日本語入力&キーボードを使いために色々苦労してしまったので、備忘録として記録を残しておきます。

環境

  • 仮想マシン CentOS 7.5
  • ホストマシン Windows10

日本語入力をできるようにする方法

日本語入力できるようにするためには、以下の場所をクリックしていく。

  • 左上の「アプリケーション」ボタンをクリック。
  • 「システムツール」→「設定」を順番にクリック。
  • 「地域と言語」をクリック。
  • 「入力ソース」と言う項目があるので、そこの「+」をクリック。
  • 「日本語」をクリック→「日本語(かな漢字)」をクリック。

上記の方法をすることで、「Windowsキー(Windowsのマークのやつ)」+「スペースキー」でローマ字と日本語の切り替えができるようになる。

日本語キーボード配列に直す

日本語キーボードにするのにかなり手間取ってしまった。

結論から言うと、cd /etc/X11/xorg.conf.dを行った後にlsコマンドを行い、ディレクトリ内のファイルを確認する。(僕の場合は00-keyboard.confと言うファイルがあった。)

そして、sudo vim 00-keyboard.confをした後にファイルを以下の様に変更する。

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "jp106"
        Option "XkbModel" "jp106"
EndSection

特に重要なのはOption "XkbLayout" "jp106"Option "XkbModel" "jp106"の部分でこれでキーボードのレイアウトとモデルをjp106に修正できる。(つまり、普段使っているキーボードの配置)

ちなみにXkbLayoutのkbはkeyboardの略。これをjp106に設定することでキーボード配列が正常に戻った。

CentOS7でのキーボード配列の管理はどのようになっているのか?

しかし、このまま終わると何の進歩もないので、そもそもCentOSのキーボード管理がどのようになっているのか調べてみた。(おそらく、ubuntuでも同じだと思う)

ネットでは、コマンドでlocalectl set-keymap jp106等として解決しようとしていた記事も見かけたが、根本的な解決にはならない。

そもそも、CentOS7はキーボード入力をどのように管理しているかと言うと、

  • localectl
  • Xorg

と言う2つのもので管理している。localectlは名前の通り、CentOSの言語やキーボードを管理しており、Xorgはキーボードの配列やキーマッピングの管理を行っている。(キーマッピングとは、キーボードの操作を変えること。例えば、EnterESCの様な役割に変更させたりできる)

また、localectl起動後に設定を変更する場合に行うコマンドの一種で、キーボード配列の管理はXorgが行っている

参考記事:Xorg/Keyboard configuration - ArchWiki

参考記事:localectl

一時的にXorgの設定の変更を行いたい場合は、以下のコマンドを行えば良い。

setxkbmap -model jp106 -layout jp106

もしくは、以下の様に行う。

localectl set-x11-keymap  -model jp106 -layout jp106

しかし、これらのコマンドは一時的な処置に過ぎず、シャットダウン後は設定が失われる。なので、永続的にキーボード配列の設定をしたい場合は、上記で説明したように/etc/X11/xorg.conf.d/ディレクトリ内の00-keyboard.confの様なファイルの設定を行えば良い。

上記の設定を行っても治らない場合の対処法

上記の設定をした後しばらくは快適にCentOSを扱えたが、再度USキーボードになる事態が発生した。

不具合が生じた場合は、まずは/etc/X11/xorg.conf.d/00-keyboard.confをチェックして設定が正しくされているかチェックする。

次にGNOMEにおいてのキーボードの設定をチェックする。(GNOMEとは、画面として表示されるデスクトップのこと)

先ほど日本語入力ができるとようにするために、以下の設定をしたと思う。

  • 左上の「アプリケーション」ボタンをクリック。
  • 「システムツール」→「設定」を順番にクリック。
  • 「地域と言語」をクリック。
  • 「入力ソース」と言う項目があるので、そこの「+」をクリック。
  • 「日本語」をクリック→「日本語(かな漢字)」をクリック。

ボクの場合は、この時に「入力ソース」に「英語(US)」を一番下に追加してあげると、キーボードが上手く動くようになった

f:id:toumasuxp:20190209082611p:plain

明確な理由は分からないが、色々試してみると起動後に「入力ソース」の中の「日本語(かな漢字)」を削除したり追加したりする等、手動でいじった時にキーボードが正常に動くようになることが分かった。

あくまでも推測の域だが、GNOMEのキーボードの設定では、まずUSキーボードの設定を探そうとしており、もしUSキーボードがなければ強制的に/etc/X11/xorg.conf.d/00-keyboard.confの設定を上書きするようにキーボード配列を変えている可能性があると思う。

(明確なソースがないので、ハッキリとは分からない。ただ、GNOME設定が何かしらの悪さをしているのは正しいだろう)