LeopardでWindows用JISキーボードのみでもJIS配列を認識させる[追記あり]
Mac OS X Leopard 10.5.1〜10.5.8まで、Windows用JISキーボードだけでは、ことえりなどの日本語(かな)入力時に、キーボード配列がUSになってしまう事を確認してきました。その解決方法を見つける事が出来ました。作者のなすこじさん、ありがとうございます。
要点は、Windows用JISキーボードのIDを強制的にMac OS X Leopardに認識させ、純正JISキーボードの様に振る舞わさせると言う事です。
具体的には、/System/Library/AppleHIDKeyboard.kext/Contents/Info.plistを書き換えます。
その詳しい手順は、上記記事からたどれる、設定手順に詳しく書かれています。
この手順の通りに設定すればOKです。自分のメモの為に、まとめてみます。メモなので、若干手順は変えてあります。
- ioreg -Sl -p IOUSB -w 0 > reg2.txt
- 該当するWindowsキーボードを外す
- ioreg -Sl -p IOUSB -w 0 > reg1.txt
(ターミナルのペーストメニューで入力) - キーボードを取り付ける
- diff reg1.txt reg2.txt > diff.txt
- diff.txtから、idProductとidVendorを調べておく
- /System/Library/Extensions/AppleHIDKeyboard.kextをバックアップ(コピーなど)
- Contents/Info.plistを修正(後述)
- sudo touch /System/Library/Extensions
- 再起動
Info.plistの修正が、肝です。
- 「Wired Keyboard 2007 JIS 1」「Wired Keyboard 2007 JIS 2」「Wired Keyboard 2007 JIS Map」の項目(<key>〜</key>、<dict>〜</dict>部分)をコピーして追加
- key名を変更(私は"Buffalo BKBCJ91SBKA"に変更しています)
- コピーした項目中のidProduct(ProductID)、idVendor(VendorID)に、diff.txtから調べた値を記入
- FnFunctionUsageMapのkeyとstringを取り除く
この4番の修正は、オリジナルの修正方法には載っていませんでした。ただ、これが無いと、ファンクションキーが効かない様です。この修正方法を入れても、完璧ではありません。通常の状態だと、F12の長押しで、CD/DVDのイジェクトになるのですが、それが効きません。
ここまで書いた所で、なすこじさんからご回答がありました。FnFunctionUsageMapの指定方法についてです。F12をEjectに割り付ける方法が書かれていました。ただし、この方法では、F12が使えなくなってしまいます…。
もっと良い方法が無いかと考えた所、ありました。Windows用USB JISキーボードの未使用キーを利用するのです。
- Print Screen→Eject
- 無変換→英数
- 変換→Space
- ひらがな/カタカナ→かな/カナ
左がWindows用USB JISキーボードの刻印、右がApple JISキーボードの刻印です。
Ejectキーの割り付け以外に、Apple JISキーボード独自の、「英数」「かな/カナ」も割り付けてみました。
Option+Ejectで、セカンド・オプティカルドライブ(CD/DVD-ROMドライブ)も開閉できました。Control+Ejectでシステム終了ダイアログが出ますし、Option+Command+Ejectでスリープもしました。「英数」(無変換)「かな/カナ」(ひらがな/カタカナ)で入力モードも切り替わります。完璧です。
この割当には、次の資料を参考にしました。
- Hut1_12.pdf → Hut1_12v2.pdf (変更になっていました)
- USBキーボードのキーコード
USBキーボードのキーコードには、Apple JISキーボード独自のキーコード(Usage)が載っていて、ありがたかったです。
結局、FnFunctionUsageMapには、次の値を設定しています(表示のために改行を入れています)。
<key>FnFunctionUsageMap</key> <String>0x00070046,0x000C00B8,0x0007008B,0x00070091, 0x0007008A,0x0007002C,0x00070088,0x00070090</string>
Stringの部分はカンマで区切られた二つの値で一組になっています。カンマの左側は、置き換え前のUsage、右側は置き換え後のUsageです。"0x00070046″は、Usage Pageの0x07、Usage ID 0x46、つまりPrint Screenを示します(Hut1_12.pdfの55ページ)。"0x000C00B8″は、Usage Pageの0x0C、Usage ID 0xB8、つまりEjectを示します(Hut1_12.pdfの77ページ)。
“Usage"と言うのは、USBのHIDデバイスのコードを表す言葉のようです。
この状態でも、Scroll Lock, Pause/Break, Applicationキーが、未使用状態で残っています。他のキー(音量調節やPowerなど)に割り付け可能と思われます。
私のキーボード(キーボード|BKBCJ91SBKA)には、音量調節、Power(Sleep)キーがついているので、これ以上のカスタマイズは不要でした。
[amazonjs asin="B000TW9A4G" locale="JP"]【関連記事】
- Mac OS X Leopard環境の確認結果[追記あり]
- Mac OS X Leopard 10.5.2[追記あり]
- Mac OS X 10.5.2 + egbridge Universal 2 + USB JISキーボード
- AppleキーボードとUSB JISキーボードを同時につなぐと
- Mac OS X 10.5.3/10.5.4とUSB JISキーボード[追記あり]
- LeopardでUSB JISキーボードがUS配列になってしまう問題をAppleCareで聞いてみました
- Mac OS X 10.5.5とUSB JISキーボード
- Mac OS X 10.5.6とWindows用USB JISキーボード
- Mac OS X 10.5.7/10.5.8とWindows用USB JISキーボード
(追記 2010-06-27 23:19)
修正の方法は、なすこじさんの「「Mac
OS 10.5(Leopard)+他社製JISキーボード」のキー配列問題に対処する」が非常にわかりやすいです。ファンクションキーの設定部分だけ、注意が必要です。
“Wired Keyboard 2008 JIS Map"でも使えます。こちらの方は、一つにまとまっているので、修正が楽だと思います。
うまく動かない時は、一度設定を戻してから、最初からやり直してみて下さい。私は、これでうまく行きました。
Snow Leopardでは、Windows用USB JISキーボードの問題は解決されています。でも、英数、かなキーの割り付けをすると便利です。次の記事をご参照下さい。
(追記 2014-04-12 16:12)
システム領域のファイルを書き換える事になるので、最悪、システムが立ち上がらなくなる可能性があります。ご注意ください。
万一に備えてのバックアップなどの対策をおとりください。
(追記 2014-04-13 10:45)
アプリケーションによる対策方法は次の通りです。「システム環境設定」にメニューが追加されます。
- MarvericksでWindows用JISキーボードを有効利用する : プラスα空間 (2014年4月12日)
ディスカッション
Dell の似非マックの Win 用 JIS キーボードを使って親指入力をしようと、「なすこじ」+「お市のかた」方式の対策をしてみましたが、うまくいきません。AppleHIDKeyboard.kext の plist は改変されていますが、サンワサプライ製の当方のキーボードがアップル製として認識されていないようです。手順が違ったかと思い、2度やってみましたが、変化なし。idVendor などの数値が違っているのでしょうか。
キーボードを2つ接続していたときに Win 用キーボードでも親指入力ができました。スペースキーの両脇のキーが u となるので実用にはなりませんでしたが。今は両脇のキーは昔どおり a となってます。
宮崎山茶さんへ、初コメントありがとうございます。
状況が違うのでなんとも言えないのですが、原理的には、idProduct(ProductID)、idVendor(VendorID)が合っていれば、動きそうな気がします。
こりゃまた失礼しました@植木等
3度目の正直でやり直してみたらうまくいきました!
スペースキーの両脇のキーも、ウィンドウズキーも入れ替えて、ほぼ iMacG3CRT付属の JISキーボードと同じにできました。
感謝感激です!
こうなるとエレコムのキーボードの出来の悪さが光ってきました。早速スペースキーをはずして削ったり油をつけたりしてタッチを軽くしています。
宮崎山茶さんへ、再びコメントありがとうございます。
うまく行きましたか!!
最初にコメントをいただいた後も、色々考えたのですが、やはり他に原因が思い当たりませんでした。
記事を書く時、自分の環境では試すのですが、他の方の環境でうまく行くかどうかはわかりません。
ご報告をいただき、うまく行った事がわかり、安心しました。
ありがとうございます。
初めまして。
私も「なすこじ」+「お市のかた」方式で試してみました。info.plistの書き換えを2,3回くらい繰り返した結果、上手くいきました。どうやらidVendorとidProductの数値を純正品のものの方を入れていたようで、diff.txtをちゃんと手順を再確認したら違う部分を使っていたみたいでした;あと、どこのFnFunctionUsageMapを書き換えるのかもよく分かっていなかったので理解してからやり直しました。
数値をちゃんと入れ直したら無反応だった無変換や変換、ひらがな/カタカナがちゃんと動いてるではありませんか!感動しました。感謝。
北海の蟹さんへ、初コメントありがとうございます。
うまく行ったようで、良かったです。こうして、ご報告をいただけると、嬉しいです。
設定は、何故か一発目はうまく行かないんですよ…。やり直すとうまく行くので、どこかで間違えていると思うのですが…。
LeopardでJISキーボードが使えないのが長年の悩みで、なすこじさんのおかげで、やっと解決できました。
FnFunctionUsageMapは、なすこじさんからヒントをいただき、割り当てを独自に開発しました。
「無変換」「ひらがな」を「英数」「かな」として使えるのは、非常に便利です。
Snow Leopardでも使えますので、そちらのリンクもご覧下さい。