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
はキーボードの配列やキーマッピングの管理を行っている。(キーマッピングとは、キーボードの操作を変えること。例えば、Enter
をESC
の様な役割に変更させたりできる)
また、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)」を一番下に追加してあげると、キーボードが上手く動くようになった。
明確な理由は分からないが、色々試してみると起動後に「入力ソース」の中の「日本語(かな漢字)」を削除したり追加したりする等、手動でいじった時にキーボードが正常に動くようになることが分かった。
あくまでも推測の域だが、GNOMEのキーボードの設定では、まずUSキーボードの設定を探そうとしており、もしUSキーボードがなければ強制的に/etc/X11/xorg.conf.d/00-keyboard.conf
の設定を上書きするようにキーボード配列を変えている可能性があると思う。
(明確なソースがないので、ハッキリとは分からない。ただ、GNOME設定が何かしらの悪さをしているのは正しいだろう)