IRKでぱたぱたを使えるようにしよう


トラップ <CXL00145_AT_nifty.com>
2005.03.21 Create
2005.03.31 Modify


対応確認機種:SL-A300/B500/C860/C3000

プロローグ

ぱたぱたキーボードをSL-B500で使おう・・・と思ったら、キー割り当ては合わないわ、 Ctrl も Fn も効かないわで、もう大変(--;。 設定ファイル ser_code_ksim.ini をあれこれ調整してみたものの、 一部入力できないキーがあるし、どうにもうまくいきません。 SL-B500 と SL-C700 はカーネルソースは共通のはずですが、 あれこれ違うんですよねぇ・・・。

ところで、筆者は Palm Wireless Keyboard を使うために、irk-zaurus-j を入れています。 ここで、よく考えてみれば、ほとんどのアプリは Qtopia 上で動いているのだから、 素のコンソールでなければ Qtopia 上のインプット・メソッドでいけるんですよね。

かくして、急遽、『IRK でぱたぱたを使えるようにしよう』計画が浮上したのでした。


irk-zaurus とは

Craigさんの、LinuxZaurus で赤外線キーボードを使えるようにするための Qtopia Pluginです。 キー入力だけでなくマクロ機能もあり、 version 0.11.0 からは KeyHelper と同様のタスク選択、タスク切替機能もつきました。 本文書作成時点の最新版は 0.11.0 で、PocketopTargus Universal Wireless Keyboard に 対応しています。

Craig's Zaurus Stuff


irk-zaurus-j とは

bakeoさんが、Palm Wireless Keyboard 対応を行い、 日本語の LinuxZaurus で満足に動作するように改良したものです。 初公開時は 0.10.0 ベースでしたが、本文書作成時点の最新版は 0.11.1f となり、 Bluetooth 対応で更に多くのキーボードがサポートされています。

Zaurus and IR Keyboards


irk へのぱたぱた対応処理組み込み

はじめは irk-zaurus をベースに進めていましたが、途中で irk-zaurus-j のソースが公開されていることに気づいたので、 irk-zaurus-j ベースでぱたぱた用の処理を追加することにしました。

もともと複数のキーボードに対応できる構造になってますから、 IRポートだけでなくシリアルポートをオープンできるようにして、 ぱたぱたキーボード用の処理を追加。 あとは、キーコード変換テーブルを整備すれば完了です。

これに、元からあったアプリ実行機能を拡張して引数を渡せるようにし、 CtrlとCapsの入れ替えを追加。 加えて、KeyHelper を参考に Qtopia Application (*.desktop) の起動処理、クリップボード経由のペーストを付け加えてみました。

追加・変更点


ソースの展開とコンパイル

source-tp4.tar.gz を落として展開すると、source ディレクトリが作成され irk-zaurus-j のファイル群が展開されます。 source ディレクトリに移り、./build.sh でコンパイルし、 ./makerel.sh でパッケージを作ることができます。

元の irk-zaurus では、~/Zaurus/SDK/ に dev-arm-qpe.sh と ipkg-build.sh が配置されており、 source ディレクトリの1つ上にもこれらがあるという前提になっていますので、 お使いの環境に合わせて、 build.sh と makerel.sh を変更して、dev-arm-qpe.sh と ipkg-build.sh の位置を 正しく指定してください。

コンパイル方法

tar xzvf source-tp4.tar.gz
cd source
./build.sh
./makerel.sh

※ irk-zaurus-j-0.11.1f からのパッチは patapata.patch4.gz に置きます。 (cd source; zcat ../patapata.patch4.gz | patch -p1 でパッチを当てられます)


導入と使い方

  1. Zaurus に ipkファイル をコピーし、ソフトウェアの追加/削除 等からインストールを行う

    ごく普通のインストールです。 なお、インストール最後のフェーズで Qtopia のリブートが行われます。 画面に大きく砂時計のアイコンが表示されますので、しばらく待っててください (復帰後、時刻の設定画面が現れます)。

  2. Qtopia上のインプットメソッドから irk を選択

    選択しているキーボードの種類によって表示名は変わりますが、 Patapata とか Palm とか Targus とか出るので、それを選択してください。 Qtアイコンの右隣にアイコンがあるので、タッチすると On/Off ボタンと CapsLock, NumLock の選択、Settings ボタンが表示されます。

  3. ラジオボタンで On を選ぶと IRK が働きます。

※インストール直後に多少不安定なことがあるようですが、 その場合は再起動するなどしてみてください。


IRK の設定方法

irk では、Shift キーなどの修飾キーを押した場合に送信するコードを、~/Settings/IRK.conf で自由に定義できます。 キーボード自体の配列を変えたい場合(英語キーボードを日本語キーボードに等)はソースの修正が必要ですが、 修飾キーと組み合わせたものであれば GUI から簡単に変更できます。

Qt アイコン横の、インプット・メソッドのアイコンを押して、Settingsボタンで設定画面を開いてください。

設定画面

設定画面 (Settingsタブ)
設定画面 Keyboard: でキーボード種別を選択
Zaurus Model: で通信ポートを選択
(上から順に /dev/ttyS2, /dev/ttyS1, /dev/rfcomm0, /dev/rfcomm1, /dev/ttyS0)
Swap Ctrl-Caps により Ctrl と Caps の入れ替えが可能
Cmdキー押下時の設定画面 (Keymapタブ)
Cmdタブ Keymapタブで、Shift, Cmd 等の修飾キー押下時の割り当てを変更可能
左図では Cmd + Return(Enter)で OKボタンを割り当てています
(キーコードは10進数表記のQtopiaキーコード)
Key: で割り当てるキーを選び、その右のエリアで割り当てる内容を入力
最初の1文字 (#, $, %, *, +, :, <) により下表のように機能が異なります
Fnキー押下時の設定画面 (Keymapタブ)
Punctタブ ぱたぱたキーボード用には、Fn キーを Punct に割り当て
デフォルトで SL-C の Fn+n に合わせて設定済

新しいエントリを追加するには、Newボタンで入力欄をクリア後 Keyボタンを押し 割り当てたいキーを押下、 入力欄に 割り当てたい文字 もしくは、下表に従ってマクロを入力します

設定詳細

内容設定例
よく使う文字列を入力(半角文字のみ)Hello World
クリップボード経由での文字列入力(日本語可)<こんにちは
10進数表記でQtopiaキーコードを指定#8207
任意のアプリを実行*qtmail
引数を指定してアプリを実行
※半角スペース1個で区切ること
*zeditor /home/zaurus/test.txt
任意の.desktopを実行%Applications/qtmail
QCOPメッセージの送信:QPE/System:setBacklight(int):0
タスク切替$taskSwap
タスクの一覧を表示し選択$taskSelector
ネットワーク接続(A)%__6x010netconnect
ネットワーク切断(A)%__6x020netdisconnect
ネットワーク接続(B):QPE/Network:connectRequest(QString,QString):app:msg
ネットワーク切断(B):QPE/Network:disconnectRequest()

※ SL-C3000 の場合、ネットワーク接続・切断(A) の設定はそのままでは動きません。 (B) のように QCOP メッセージで行うか、または __6x010netconnect.desktop と __6x020netdisconnect.desktop を修正し、それぞれ次の行を加えれば動くようです。

[/home/QtPalmtop/apps/__6x010netconnect.desktop]
Exec=__network_connect
[/home/QtPalmtop/apps/__6x020netdisconnect.desktop]
Exec=__network_disconnect

設定ファイルでの書式

設定ファイル ~/Settings/IRK.conf には、GUIで行った設定が、 キーボード種別毎に、修飾キーの略称(Cmd=C, Shift=S など)と番号をつけて次のように記述されます。

C[0] = a:$taskSwap

設定行は = と : で区切られて、大きく 3つのパートに分かれます。 C[0] は、修飾キー Cmd の 0 番目の定義を意味します。 a は、割り当てるキーが a であることを意味します。 $taskSwap は、このキーに割り当てる機能を意味します。

例えば、ネットワーク切断(B) を Cmd + n に割り当てた場合は、(仮に3番目だとしたら)次のようになります。

C[3] = n::QPE/Network:disconnectRequest()


ぱたぱた用キーバインド覚え書き


更新履歴

2005.03.31 irk-zaurus-j_0.11.1f-tp4 版公開
2005.03.21 irk-zaurus-j_0.11.1f-tp3 版公開


最後に

こうして簡単にぱたぱたを使えるようになったのも、ソースが公開されていればこそです。 公開されている皆々様に感謝します。


Download

install package: irk-zaurus-j_0.11.1f-tp4_arm.ipk
patch for irk-zaurus-j_0.11.1f: patapata.patch4.gz
all source file: source-tp4.tar.gz


参考文献

  1. Craig's Zaurus Stuff
  2. Zaurus and IR Keyboards
  3. LinuZau ToolBox

追記

    野田さんのブログ (PIC で PS/2 -> IrDA インタフェースを作り、Linux Zaurus と繋がれています!)

[INDEX]