これはLenovoのWeb shopで英語キーボードで言語は日本語の設定にカスタマイズして注文したもの。英語キーボードなのに日本語のドライバが設定されていた。そうするとキートップと異なる字が出ることになる。例えば、"P"の右側のキーの"["を押すと@が出たり(英語キーボードでは"Shift"+"2"の位置)する。きっとWindowsの仕様そのままだろう。Lenovoは余計なお世話のプリインストールソフトは入れるくせに、ドライバの変更はやってくれない訳だ。私はregistry editorを使って英語のドライバに変更したが、この方法は間違えるとパソコンが動かなくなる危険性がある。
実はもっと安全な方法を見つけた。"Win"+"X"で登場するメニューからデバイスマネージャを選択する。キーボードの項目を展開すると、日本語PS/2キーボードになっている(英語の設定なら、標準PS/2キーボード)から、ダブルクリックしてプロパティのウィンドウを開きドライバのタブを選択、そこでドライバの更新を実行して標準PS/2キーボードを選べば良いらしい。
まあ、これだけでも一応使えるのだが、IMEを起動させるには、タスクバーのAの文字をクリックする必要があるので、かなり面倒。私の場合、半角英数字を使うときはIMEをOFFにする習慣なので尚更だ。
それで、IMEのON/OFFに"右Alt"を割り当てる。Altは左側にもあるからそれでも問題ないのだ。ついでに、"CapsLock"を変換に割り当てる。このキーは押しやすい一等地にあるのに役立たずの機能(押し間違えて邪魔だと感じることもある)を割り当てられていて、可哀想なのだ。
具体的にはregistryの変更で"右Alt"をF13に、"CapsLock"をF14に割り当てる。以下のテキストをメモ帳アプリに取り込んで、拡張子を".reg"として保存後、そのファイルを実行すれば良い。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:\
00,00,00,00,\
00,00,00,00,\
03,00,00,00,\
64,00,38,e0,\
65,00,3a,00,\
00,00,00,00
ここで、このテキストに出てくる数字の意味をちょっと説明。まず、これらは16進数4桁の数字であるが、2桁ずつに区切って順番を入れ換えている。例えば、7行目の"38,e0"は16進数でe038のWindows流の表現である。これはIntelのCPUがリトルエンディアンという方式を採用していたことが理由らしい。
6行目の"03,00"は、10進数で3だ。これは変更するキーの数+1を書くことになっている。今回は2つのキーを変更するから3となっている。
7行目の意味は16進数でe038のキー(右Alt)を16進数で64のキー(F13)に変更する。
8行目の意味は16進数で3aのキー(CapsLock)を16進数で65のキー(F14)に変更する。
そして、私はMS IMEではなく、Google日本語入力を使っている。これの予測変換が秀逸なのとカスタマイズがやり易い点が好きだから。そのプロパティでキー設定の選択"カスタム"で編集…を押すとキー設定の画面が出る。そこのキー入力の欄のHankaku/Zenkakuを全部F13に、Shift + Hankaku/Zenkakuを全部Shift + F13に置き換える。更に、Henkanを全部F14に、Shift + Henkanを全部Shift + F14に置き換える。
所で、キーの割り当てはHankaku/Zenkakuは16進数で29、Henkanは16進数で79らしいから、そのようにキーを変更すればわざわざGoogle日本語入力のカスタマイズしなくても同じ様に使えそうだ。でも、私は日本語キーボード独自のキー割り当てはやりたくなかったから、あえてF13やF14を使ってみた。だって、英語キーボードだから。通常はF12迄しか実装されないが、定義はF24迄されているらしい。
後日談: 実験的にキーの割当てをF13とF14からHankaku/ZenkakuとHenkanに変えてみたけど、英語キーボードドライバでは上手く働かなかった。よく考えれば当然の結果だけど、右Altを押してもIMEのOn/Offはしなくて、単に"`"が出るだけだった。これで、IMEのON/OFFは"右Alt"に、変換は"CapsLock"に割り当てられた。予測変換が"Tab"で変換が"CapsLock"って、並び方が絶妙な気がする。そして、変換に使われていた"Space"を半角空白に、"Shift" + "Space"を全角空白に割り当ててみる。これで日本語の分かち書きが簡単に出来るようになった。いずれ、このブログも分かち書きで書きたいと思っている。