Ultimate Linux Remote Control (Wiimote on Fedora)
I have been building Linux media center and one thing that was missing was a great remote control. I was impressed with Fiire Chief remote, but it is too expensive and the Fiire company stopped making it ;(
Then I found out that you can use Wiimote on Linux and that it costs 40$ on Ebay.
This guide isn't intended only for those with Media Centers, because you can use Wiimote as a remote for any desktop application, presentations or even games.
There are some basic hardware requirement likes usb bluetooth dongle or bluetooth already built in your laptop and Nintendo Wiimote.
This guide is more focused on Fedora but you can use it with OpenSuse, Arch and Ubuntu. The main difference is how to install tools, other things should be same. There is also an Ubuntu guide that you can use as parallel with this guide.
yum install cwiid cwiid-wminput cwiid-utils
Now start wmgui application and from file menu choose connect, after that press buttons 1+2 on wiimote to put it in discovery mode so that wmgui can connect to it.
wmgui
After Wiimote is connected try pressing buttons, if you see buttons work in wmgui app then everything is working ok.
Main utility that we will be using is wminput and it needs access to /dev/input/uinput interface so let's give it ;)
su -
chmod 666 /dev/input/uinput
Now you as regular user can start wminput and use Wiimote as mouse pointer and also as customize it's buttons.
wminput
If you see this, then you haven't succeeded to connect Wiimote to your Linux machine:
Put Wiimote in discoverable mode now (press 1+2)...
No wiimotes found
unable to connect
But if you see this, then everything is working ok:
Put Wiimote in discoverable mode now (press 1+2)...
Ready.
By default you have Wiimote working as a mouse with buttons A and B mapped as mouse left/right buttons.
Next step is to customize Wiimote buttons for specific application that you intend to use. You can use Wiimote in any application you wish but I see it as multimedia remote so I'll show examples how to use Wiimote with Elisa Media Center (renamed to Moovida) and MythTV.
For MythTV I map button A to Enter key, button B to Escape key, Wiimote + and - keys to F10 and F11 for volume control, button 1 to P key for Pause/Play, and so on.
Here is how MythTV config file looks like:
# This is the wminput-mythtv file
Wiimote.A = KEY_ENTER
Wiimote.B = KEY_ESC
Wiimote.Up = KEY_UP
Wiimote.Down = KEY_DOWN
Wiimote.Left = KEY_LEFT
Wiimote.Right = KEY_RIGHT
Wiimote.Minus = KEY_FN_F10
Wiimote.Plus = KEY_FN_F11
Wiimote.Home = KEY_M
Wiimote.1 = KEY_P
Wiimote.2 = KEY_ESC
With this custom config file Wiimote will work optimally with MythTV:
wminput -d -w -c wminput-mythtv
There is still room for improvement in this config file. For example you can use Wiimote accelerometers and tilt Wiimote for fast forwards and rewinds functions. If you do that, or anything else, please provide your config file in the comments of this blog.
You can check out full Wiimote range of keys, and also check out MythTV shortcut keys so you can connect right keys together.
For Elisa/Moovida Media Center I use this config file:
# This is the wminput-elisa file
Wiimote.A = KEY_ENTER
Wiimote.B = KEY_SPACE
Wiimote.Up = KEY_UP
Wiimote.Down = KEY_DOWN
Wiimote.Left = KEY_LEFT
Wiimote.Right = KEY_RIGHT
Wiimote.Minus = KEY_DOWN
Wiimote.Plus = KEY_UP
Wiimote.Home = KEY_F23
Wiimote.1 = KEY_BACKSPACE
Wiimote.2 = KEY_ESC
Also if you create config files for XBMC or Boxee please share them. If you have any additional questions feel free to ask me.
Links: