2010-11-03

iPadで非純正外部キーボードをJIS配列で使用する方法(Bluetooth/USB)

iPadはBluetoothキーボード、またはiPad Camera Connection Kit経由でUSBキーボードが接続できます。
Apple純正キーボードの場合はJIS配列でもUS配列でもキー配列通りで使用できるようになっていますが、非純正キーボードの場合はUS配列に強制的になってしまい、記号がキー刻印と異なり非常に不便です。
私の場合はUSBキーボードを主に使用しているのですが、オンスクリーンキーボードに比べて非常に快適に入力でき、画面も広く使えるので、キー配列の不一致が非常に残念でなりませんでした。

いろいろ試してみたところ、下記のようにしてJIS配列を実現できました。
  • iPadではキーボード設定で、ソフトウェアキーボード配列と、ハードウェアキーボード配列が独立して選べるようになっています。
  • ハードウェアキーボード配列の方は、US、フランス語、ドイツ語の3種類しかなく、JIS配列が用意されていません。
  • そこで、とりあえずあまり使わないドイツ語キーボード配列をJIS配列で上書きすれば、と考えました。
  • iOSではキーボード配列の定義は /System/Library/KeyboardLayouts/USBKeyboardLayouts.bundle/uchrs/ にuchrs形式で格納されています(Mac OS Xとは違う方式)。
  • US.uchrsを元にバイナリエディタで編集して、JIS配列のuchrsファイルを作成。
  • German.uchrを上書き。
今回作成したuchrsファイルを公開いたします。
実験的に作成しただけなので、問題等あればぜひともお知らせください
iOS用JISキーボード配列ファイル JIS-fake.uchr (2010-11-02 #001) [Download]

インストール手順は以下です。
JB必要です。
意味が分からない方にはお勧めできません(aa.bb.cc.ddはiPadのIPアドレス)。
作業はMacでもPCでも問題ありません。
$ curl https://www.dropbox.com/sh/9zl7r539zlqkry0/HUP9NXR5A0/JIS-fake-101102-01.uchr.zip  -o JIS-fake.zip
$ unzip JIS-fake.zip
$ scp JIS-fake.uchr root@aa.bb.cc.dd:/System/Library/KeyboardLayouts/USBKeyboardLayouts.bundle/uchrs/
$ ssh root@aa.bb.cc.dd
# cd /System/Library/KeyboardLayouts/USBKeyboardLayouts.bundle/uchrs/
# cp -pi German.uchr German.uchr.save
# cp JIS-fake.uchr German.uchr
# respring
インストール後、再起動(respring)が必要です。
インストール後の設定は、[設定] アプリの [一般] => [キーボード] => [各国のキーボード] で [日本語] と [英語] の両方で、[ハードウェアキーボード配列を選択] を [ドイツ語] にしてください。

なお、私自身はUSBキーボードでしか試していませんので、Bluetoothで試されたらぜひとも結果をお知らせください(原理的には同じはずです)。
その他、ご意見、ご感想もお待ちしています。

[2011-10-18] iOS 5では標準機能になったようです。 JISはJISかなの意味のようです。
[2012-07-25] MobileMeのサービス終了によりiDiskにおいていたucharファイルが公開できなくなったため、新しい場所に移しました。
引き続きよろしくお願いいたします。

11 comments:

  1. iPadで日本語入力と英語入力の切り替えは [Win]+[Space] 2回押しでできます。

    ReplyDelete
  2. http://fski.com/blog/?itemid=36
    にJISのマップファイルが用意されている、と書かれていましたのでやってみました。
    Apple JIS bluetoothキーボード+ATOKでうまくいきました。
    ATOKでない場合、「か゛」などのようになってしまいますし、変換も出来ません。
    フランス語に入れ替えたからでしょうかね。

    日本語のファイルに入れ替えるといけないのでしょうか?
    怖いので試していません。
    (説明を見れば試せる程度の初心者なので)

    ReplyDelete
  3. iphone4 ios3.3.1
    elecom TK-FBM023
    escとctrl以外は入力できましたよ

    ReplyDelete
  4. エレコムのBluetooth JISキーボードで実際に動いたとのこと、貴重な情報ありがとうございます。

    ReplyDelete
  5. バッファローBSKBB01で入力可能でした。記事ありがとうございます

    ReplyDelete
  6. 初めまして
    iOS用JISキーボード配列ファイル JIS-fake.uchr (2010-11-02 #001)
    もう一度公開してもらえないでしょうか。

    ReplyDelete
  7. 2012-07-22にご指摘いただいた方、iDiskがなくなっていたことを失念していたのを、思い出させてくださってありがとうございます。
    再度公開させていただきました。

    ReplyDelete
  8. JIS-fake.uch依頼したものです。
    ありがとうございました。
    ニンテンドーワイヤレスキーボード
    バッチリです。

    ReplyDelete
  9. ELECOMの折り畳みキーボードでもばっちり動きました。
    あとCtrlとCaps Lockを入れ替えられるといいのですが。。。。

    ReplyDelete
  10. iPad3 + iOS6.1.3 + ThinkPad Bluetooth ワイヤレス・トラックポイント・キーボード
    上記の組み合わせで動作を確認しました。
    すばらしいハックありがとうございます。

    ReplyDelete
  11. iOS7.1 iPod touch 5 ポケモンキーボードで出来ました。iOS8でも物理キーボードのUSマッピング問題は解決していないと知り、脱獄に踏み切りました。余談ですが、iOS8ではキーボードをBTでつなげてatokなどを使うことが出来ないようです(強制的にネイティブの日本語変換モードになる)。全体としてiOSはバランスがとれているので、androidへの乗り換えまでは決断できなかったのですが、JIS-fake.uchr (http://fski.com/blog/?itemid=48ではかなマップの方も配布しているようですね)によってまともに日本語が打てるようになりました。ご報告まで。

    ReplyDelete