Gaming Linux

WiiCan Turns Your WiiMote Into a Linux Gamepad, Mouse and More

Justin Pot 05-10-2013

Use your WiiMote as a gamepad, remote control or even a mouse for your Linux computer. If you’ve got Bluetooth, free application WiiCan is a great way to set up your WiiMote to do just about anything.


You may not use your Wii as much as you used to, but that doesn’t mean you need to keep your WiiMotes in a dusty box somewhere. If you play games on your computer, you can use them for that. We showed you how to connect your WiiMote to your PC How To Connect Your Wiimote To Your PC How do you prefer to interact with your computer? Sometimes a mouse and keyboard just isn’t enough. Depending on what you’re doing, a completely different interface method is required for you to get the most... Read More , use your WiiMote as a Mac gamepad Use Your WiiMote As A Mac Gamepad With WJoy Do you want a gamepad for your Mac, but don't want to buy yet another controller? Use your WiiMote as a gamepad with Wjoy. This app doesn't enable motion controls on your Mac, but it... Read More and even connect it to an Android device How to Use Your WiiMote as a Controller for Your Android Device Use your WiiMote as a gamepad for your Android tablet or phone. Touch screens are great for some games, but for others you just need tactile response. So, if you prefer to do your gaming... Read More . But what about Linux?

Well, if you’ve searched for the term “use WiiMote as gamepad Linux” you’ve probably been frustrated with the result – I know I was. At least, until I discovered WiiCan. It’s a little buggy, and not altogether simple to use, but it works.

Yes Wiican!

You might be a touch confused the first time you see WiiCan, but don’t worry: it’s simple once you grasp it. What you’re seeing is a list of potential “Mappings”:


By default, the program includes two mappings for using the WiiMote as a mouse (one with an IR bar, one without), a mapping for using the Classic controller as a gamepad and another for using a WiiMote and Nunchuck the same way. You can also edit and create your own mappings, programming the WiiMote buttons to simulate anything from gamepads to your mouse, to keys on the keyboard, but we’ll get to that later.


For now, just know that the mappings with checkmarks beside them will show up if you click the application’s tray icon (a WiiMote, naturally):


Click any of your options from here and you’ll be told to press the 1 and 2 buttons on your WiiMote:



Doing so connects your WiiMote and the computer. Unlike with the Wii, the device won’t vibrate upon connection and no indicator light will show you that the device is connected. You’re simply going to have to test it yourself, by playing a game.

Here’s me using a custom mapping I made to play Fez:

Done using your WiiMote? Click the WiiMote in the tray again, then click “Disconnect”.



The radio signals surrounding the icon will turn off, letting you know the device is disconnected. If you’re not sure, however, simply press the “A” button on your WiiMote – if it’s disconnected, the blue lights on it should flash briefly.

Editing Mappings

If all you want to do is play a game, the default mappings should more than suffice. If you’re annoying with the result in some way, however, you have the flexibility to create your own mapping. I utterly failed in finding simple documentation for doing so, but piece together enough knowledge to get Fez working well. I’m going to share some of this with you.

Go ahead and open any mapping. You’ll see it’s a simple list of WiiMote functions, followed by what they should do:



In the above example, the WiiMote.Dpad’s X and Y axises are mapped as ABS (absolute) axises, while the A and B buttons are (appropriately) mapped as A and B buttons. An equal sign surrounded by spaces separates the button with the result, but where does this bizarre language used here come from?

You can probably learn the Wii inputs yourself, just by exploring the mappings that come with the program. For reference, however, here they all are.

WiiMote inputs

To begin, here’s a list of the buttons on the WiiMote:

  • Wiimote.A
  • Wiimote.B
  • Wiimote.Minus
  • Wiimote.Plus
  • Wiimote.Home
  • Wiimote.1
  • Wiimote.2

The DPad can be mapped as a DPad:

  • Wiimote.Dpad.X
  • Wiimote.Dpad.Y

Or, if you prefer, as a series of buttons:

  • Wiimote.Up
  • Wiimote.Down
  • Wiimote.Left
  • Wiimote.Right

NunChuck inputs

There are two buttons unique to the Nunchuck:

  • Nunchuk.C
  • Nunchuk.Z

Additionally, you can define the function of the X and Y axis for the nun-chuck stick:

  • Nunchuk.Stick.X
  • Nunchuk.Stick.Y

Classic Controller inputs

You can also map every button on the Classic Controller, if you have one:

  • Classic.Minus
  • Classic.Plus
  • Classic.Home
  • Classic.A
  • Classic.B
  • Classic.X
  • Classic.Y
  • Classic.ZL
  • Classic.ZR
  • Classic.L
  • Classic.R

The classic controller can be mapped as four separate buttons, if you want:

  • Classic.Up
  • Classic.Down
  • Classic.Left
  • Classic.Right

Or as a Dpad defined by an X and Y axis:

  • Classic.Dpad.X
  • Classic.Dpad.Y

You must also define the X and Y axis for the remaining two analog sticks:

  • Classic.LStick.X
  • Classic.LStick.Y
  • Classic.RStick.X
  • Classic.RStick.Y
  • Classic.LAnalog
  • Classic.RAnalog

Potential Actions

So that covers the first part of a line in a mapping: the WiiMote buttons. What about the commands these trigger? You can also learn most of these by exploring the included mappings, but here’s a quick primer.

The most obvious thing you can do is map buttons to keys on the keyboard. “KEY_1” would be the 1 key on your keyboard; “KEY_A”, the A key; “KEY_LEFTCONTROL” the left control key. You get the idea.

The concept isn’t that different for gamepad buttons. “BTN_A” would be the “A” button; “BTN_START”, the Start button.

A file called action_enum.txt outlines all possible actions, which I couldn’t hope to list here. Here’s a copy of that list, from It’s long, but with it you can find the correct name of every key and button you’re thinking of.

You can, potentially, create your own mappings for just about anything. You could create a remote for your favorite media player, by mapping the keyboard shortcuts to your WiiMote. You could set up your WiiMote to work with a game that doesn’t support gamepads. Or you could tweak things so a game that’s not quite working as you want does.

That’s what I did with Fez. Here’s the mapping I made, but the main difference here is that I set up the WiiMote’s DPad to function as individual buttons, and changed the Plus and Minus buttons to function as regular buttons instead of Start and Select:

# Gamepad axis 0 (analog)
Nunchuk.Stick.X = ABS_X
Nunchuk.Stick.Y = ABS_Y<

# Main gamepad buttons
Wiimote.A = BTN_A
Wiimote.B = BTN_B
Nunchuk.C = BTN_C
Nunchuk.Z = BTN_Z

# Other gamepad buttons
Wiimote.Home = BTN_5
Wiimote.Minus = BTN_6
Wiimote.Plus = BTN_7
Wiimote.1 = BTN_8
Wiimote.2 = BTN_9


The result still required that I configure things in-game, but ultimately worked better than the default could have.

Download WiiCan

Ready to get started? Go ahead and download WiiCan from [Broken URL Removed]. You’ll find a package at GetDeb for Debian/Ubuntu and source code for other distros.

Note that upon installation you’ll likely be unable to use the software – there’s a cryptic message when you click the WiiMote tray icon. There’s a quick fix for this at Open the Terminal and paste the following:

sudo gedit /etc/udev/rules.d/76-wiican.rules


This will create a new document, in which you should paste the following code:

KERNEL=="uinput", MODE:="0666"


Save the document. This creates a udev rule that enables you to use WiiCan without admin access. Reboot and you should be good to go.


This app took me a while to figure out, but I’m glad I took the time. Playing Fez is way more fun with my WiiMote than my keyboard, and I can’t wait to try out other fun uses.

Are you guys creating any cool mappings for WiiCan? Please, share them below. Also let me know any easier way to get things set up, because I always love learning from you. Thanks!

Related topics: Game Controller, Nintendo.

Affiliate Disclosure: By buying the products we recommend, you help keep the site alive. Read more.

Whatsapp Pinterest

Leave a Reply

Your email address will not be published. Required fields are marked *

  1. Bla
    April 2, 2017 at 7:03 am

    Dead link

  2. Arron W
    October 6, 2013 at 6:43 am

    Pro stuff - I tend to use my XBox pad now, but I remember trying to map the first Halo to my Wiimote when I first discovered GlovePIE. If I ever get a pc for my living room, this is so going on it.