2011年12月11日日曜日

TK-FBM023 の何か

もう、何かって何だろうね(笑)

ところで、おいらがA1本体のみでハックするときに使ってるBluetoothキーボード、ELECOM TKFBM023。
正直、使い勝手はあまりよくない。
でもまぁ、単独ハックにはとても役立ってるのでよし。
これで日本語文章を打とうとは思わないけど(笑)

さて、AndroidはqwertyキーのUSマッピングがデフォルトなので、ふつーに入力すると記号などキートップと違う文字が打てる。
うぬ、よくある話。
で、USキーマップを覚えられない俺のために、キーマップの修正をする何かを作ってみたかもしれない。

少し詳しく言うと、
キーボードがHID認識されたとき、デバイスに対応したキーレイアウトとマップファイルが読み込まれる。
デフォルトは、
/system/usr/keylayout/qwerty.kl
/system/usr/keychars/qwerty.kcm.bin
これと同じように、TKFBM023用の定義ファイルを用意してやれば問題なく読み込まれてちゃんとキートップどおりのキー入力ができるって寸法。

んで、捏造してみたものは、こんな感じ patch-TKFBM023_signed.zip になる。
いつものとおり、update.zipで適用できるかもしれない。
扱いは、★無保証、完全自己責任で扱ってね。

注意事項が何点か。
  • 一応、入力には困らないようにキーマップしてるが、機能キーは使用できないものがある。これは手抜きである。
  • A1の場合、正ポートレイト(ロゴが上にくる縦置き)の状態で矢印キーが正しく動くように固定されている。ローテーションした場合、矢印キーは(画面に対して)正しく動かない。
  • AndroidにはCtrlキーが無いのでCtrlキーは意味が無い。ただし、端末エミュレータでCtrl+C(中断)コードを送りたい都合、CtrlキーにはVOLUME_DOWNを割り当てている。
    これを変更するには、TK-FBM023_Series.klの該当箇所を書き換えればよい。
  • TK-FBM023_Series.klには、本来の意味とは異なるキーラベルを使用している箇所がある。

そんなわけで、中身を取り出してファイル名を変えれば、他のキーボードにも使えたりするかもしれない。

あーこれで、イライラせずに青空ハックができるわい。

追記 2011-12-12
キー割り当て一部修正。リンクを更新。

0 件のコメント:

コメントを投稿