一見するとすごい難しそうだが、実は非常に簡単。内容的には自分の備忘録に近い。
必要なもの
- OS は Linux とする
- デスクトップは KDE とする。
- GNOME のことはちょっとわからぬ。
- Amarok
- ぶっちゃけた話、Amarok である必要はない。ただ、GNOME のアプリなどはショートカットのカスタマイズができないものが多くて使いにくい。
- CWiid の wminput では Ctrl+X のような組合せキーを発行することができないので、ショートカットがカスタマイズできるソフトが是非とも欲しい。
- Wii リモコン
- CWiid
- Bluetooth アダプター
- ここでは RCBT-MX (2.0 EDR) を使った。
- 実はこのアダプター、結構遠くまで届く。無線LAN ほどではないが。
手順
Bluetooth アダプターを指す。
- RCBT-MX の場合は Connect ボタンを押しながら。
wmgui で確認
$ wmgui
を起動し、指示にしたがって Wii リモコンの 1 と 2 を押してリモコンの LED を全部点滅させる (ディスカバリモード)。
点滅が消えないうちに OK を押す。
ボタンを押して GUI の対応するところが光るか確認する。
wminput の設定内容
/usr/include/linux/input.h
の中からピックアップして書けばいい。んだが、実は問題がいくつかある。例えば、
- KEY_STOP
は Qt では認識できなかった。また、
- KEY_PLAY
は認識できるようだが、機能しなかった。認識できるキーで、使いそうもないキーを選ぶ。認識できるかは実際に押してみないと分からないので、試行錯誤で。
手元の環境では
$ cat /etc/cwiid/wminput/amarok_ctrl #buttons Wiimote.A = KEY_PLAYPAUSE Wiimote.B = KEY_STOPCD Wiimote.Up = KEY_VOLUMEUP Wiimote.Down = KEY_VOLUMEDOWN Wiimote.Left = KEY_REWIND Wiimote.Right = KEY_FASTFORWARD Wiimote.Minus = KEY_PREVIOUSSONG Wiimote.Plus = KEY_NEXTSONG Wiimote.Home = KEY_MEDIA Wiimote.1 = KEY_PROG1 Wiimote.2 = KEY_PROG2 Nunchuk.C = BTN_LEFT Nunchuk.Z = BTN_RIGHT Classic.Up = KEY_UP Classic.Down = KEY_DOWN Classic.Left = KEY_LEFT Classic.Right = KEY_RIGHT Classic.Minus = KEY_BACK Classic.Plus = KEY_FORWARD Classic.Home = KEY_HOME Classic.A = BTN_LEFT Classic.B = BTN_RIGHT #Classic.X = #Classic.Y = #Classic.ZL = #Classic.ZR = #Classic.L = #Classic.R =
とした。ヌンチャクやクラシックコントローラを使えば、もっといっぱい機能を割り当てられる。
開始
# wminput -c /etc/cwiid/wminput/amarok_ctrl
指示どおり、1 と 2 を同時に押してディスカバリモードにしておけば、Ready! が表示されて使えるようになる。
root で動かすのが嫌ならば、
$ cat /lib/udev/rules.d/55-udev-wminput.rules KERNEL="uinput" MODE="664" GROUP="wminput"
を作り、自分を wminput グループに追加する。
TROUBLE SHOOTING
/usr/include/linux/input.h が無い
kernel-headers に入っています。