SU-8W with N900

いやぁいいっすね^^

SU-8Wにはデバイスを立てかけるためのスタンドが左側に付属しているのですが、N900は自前でスタンドを持っていますので、画面の位置から考えても自分で立たせる方が快適だと思います。

さて、N900でSU-8Wを使うためのメモです。例によって参考になる、というかそのままのサイトがありますんでそいつを見れば問題ありません。

Maemo.org ~Talk~ Does N900 support Nokia's SU-8W Bluetooth Keyboard ?

https://talk.maemo.org/showthread.php?t=33397

Maemo.org ~ Fremantle Unsupported Bluetooth Profiles

https://wiki.maemo.org/Fremantle_Unsupported_Bluetooth_profiles

Maemo.org ~Fremantle Bluetooth Keyboard Layout

https://wiki.maemo.org/Fremantle_Bluetooth_Keyboard_Layout

基本的には2つめと3つ目のリンクをみればOKです。一応以下のような流れになります。

  1. rootshの導入(前提)
  2. bluetooth HID profileの有効化
  3. SU-8Wのペアリング
  4. xkb-chinookのダウンロード・展開・配置
  5. SU-8W用のxkb設定

というわけでメモしていきます。

1. rootshの導入(前提)

特に手順は書きません。App. Mgrから入れてください。

2. bluetooth HID profileの有効化

N900はデフォルトでBluetoothのHID profileが無効になっているようです。まぁマウスとかキーボードとかゲームパッド(?)とかつなぐことは想定してませんよね?

有効にするのはとても簡単です、まずterminalを起動し、rootshでrootになって/etc/bluetooth/main.confを編集します。

sudo gainroot
vi /etc/bluetooth/main.conf

最初のほうに

DisablePlugins = network,input,hal

という行がありますんで、ここから"input"を外します。

DisablePlugins = network,hal

変更したら保存して、bluetoothサービスを再起動します。

stop bluetoothd
start bluetoothd

これで、BTキーボードとペアリングできるようになります。

3. SU-8Wのペアリング

SU-8Wの電源を入れ、N900のBluetoothの設定からペアリングしてください。ちょっとわかりにくかったのは、ペアリングのコードが表示された後、ボタンをタップしてN900がペアリング中の画面になったらSU-8Wでコードを入力するというところです。てか常識かこれは。あんまりやったことないので^^;

これでもうSU-8Wのキー入力を受け付けるようになります。ただし、キーマップが設定されていないため、最上段のキーなど、いくつかのキーで入力できない状態です。もうちょっと設定する必要があります。

4. xkb-chinookのダウンロード・展開・配置

ここからxkb-chinook.tarというファイルをダウンロードします。wgetを入れておくと、以下のコマンドで一発でダウンロードできます。

wget https://talk.maemo.org/attachment.php?attachmentid=5221 -O xkb-chinook.tar

ダウンロードしたら、/usr/share/X11/の下に展開してください。ディレクトリ操作は自分の環境に合わせてくださいね。

cd /usr/share/X11
tar xf /home/user/MyDocs/xkb-chinook.tar

で、ファイルをコピーします。

cp -i xkb-chinook/symbols/pc xkb/symbols/.
cp -i xkb-chinook/symbols/us xkb/symbols/.
cp -i xkb-chinook/geometry/pc xkb/geometry/.

これで準備完了。

5. SU-8W用のxkb設定

以下のコマンドで、キーボードのDevice IDを確認しておきます。

hildon-im-xkbtool --list
ID 0, Name: "Virtual core pointer"
ID 1, Name: "Virtual core keyboard"
ID 2, Name: "TSC2005 touchscreen"
ID 3, Name: "omap_twl4030keypad"
ID 4, Name: "Nokia SU-8W"

このように、SU-8Wが認識されていることを確認できます。接続していないと表示されません。

そして、以下のコマンドでキーマップを変更してあげれば、その瞬間からキーが正しく入力できるようになります。

setxkbmap -device 4 -I -I/usr/share/X11/xkb-chinook -rules base -model nokiasu8w -layout us

kimitakeさんのmaemocjk for N900を使ってscimをインライン入力にで使っている場合にも、SU-8Wから問題なく入力できる...はず。まだ試してません。ちなみにibusでは問題なく入力できてますんで大丈夫かと。

やはり外付けでキーボードが使えると全然違いますね。特にN900のキーボードでは直接入力できず、記号パッドを呼び出さなければならないようなキーの入力がとても楽です。インライン入力をscimに変更している場合等も重宝しますね。

もちろん、デバイスとして別物なので、その状態でN900のキーボードもそのまま使用できます。

1点注意というか面倒な点は、BT接続が切れてしまうと設定がなくなってしまうので、接続される度にsetxkbmapを実行してあげる必要があります。ワンタッチで実効できるようにメニューを作ってあげてもいいでしょう。 メニューの作りかたはももやんさんのブログのエントリが参考になります。

Momoyan's Blog ~[N900] アプリケーションのリストをもっと便利に

https://blog.livedoor.jp/momoyan0306/archives/1091823.html

もしかしたら接続されたというBTのイベントかなんかをトリガーにしてセットするようなCoolな方法があるかもしれませんが、それはまた別の機会に調べてみたいと思います。

N900とSU-8Wの組み合わせで、出先のメモ書きとかなんかはとても便利になりそう。惜しむらくはmaemo5自体のOS操作にキーボードが使えない(ショートカットやメニュー遷移やウィンドウ操作)ことでしょうか。このへんはPCの流れを汲むMeeGoに期待したいところ。

あと...MeeGoでiPad的な何かみたいな大きさのやつが欲しいです(笑