From Openmoko

Jump to: navigation, search
In progress: This article or section documents one or more features whose implementation are in progress.

ReMoko is one of the applications that runs on the Openmoko Phones. For a list of all applications, visit Applications

Remoko menu.jpg



  • Openmoko remote controller is a Summer of Code 2008 project, that aims to write a application that can make Openmoko-powered devices appear to be a mixed Bluetooth keyboard-and-mouse device.
  • Student: Valério Valério
  • Mentor: Daniel Willmann


ReMoko video

ReMoko v0.3


ReMoko Packages

Install Instructions

  • ReMoko dependencies
    • bluez-utils (>= 3.23) remokoserver python-ecore python-edbus python-edje python-evas python-dbus python-textutils
  • FSO Milestone 2
    • Runs "out of the box"
  • FSO Milestone 3
    • Runs "out of the box"
    • Requires ReMoko version >= 0.3.2.
  • FSO Milestone 4
    • Runs "out of the box"
    • Requires ReMoko version >= 0.3.2.
  • ASU 2008.08
    • Runs "out of the box", if all dependencies are satisfied
    • Careful with this bug: Ticket #1744;
  • ASU 2008.09
    • Runs "out of the box", if all dependencies are satisfied
    • Careful with this bug: Ticket #1744;
  • FDOM
    • Runs "out of the box", if all dependencies are satisfied
  • Debian
    • Runs "out of the box" - Thanks to Joachim Breitner
    • Could require a small fix dependent on the BlueZ-utils version, see readme.debian in the doc folder of ReMoko for more details


  • Linux
    • Start the remoko app in the neo;
    • In a shell type 'hcitool scan' to find the address of the neo.
    • In a shell type 'hidd --connect <neo_bt_addr>' (need root privileges) or use a user interface to choose the neo as a bluetooth keyboard; Note: In Ubuntu Intrepid Ibex you have to install bluez-compat package to get hidd. Otherwise you can try using the bluetooth GUI, but as of now (2008-10-23) this is not working for me.
  • Windows XP and Media Center Edition
    • Start the remoko app in the neo;
    • Go to the bluetooth preferences and choose 'Add a new device';
    • Choose the neo (default name is 'BlueZ (0)') and choose 'no password';

Using custom keys

  • The keys bellow don't exist by default in the Illume/qtopia keyboard's, to add this keys to a profile you have to write the keys (e.g: f1 -> press f and then 1).

Allowed Keys: f1-f12 win (plus any letter or number)

Using Gestures

  • To use gestures to send events, you just need to install the gestures package (no need to start the gestures listener). You can also train the gestures.


  • Connection
    • Connection to the majority of the bluetooth stacks;
    • Connection status daemon (possibility to connect to the remote device when the connection are closed);
    • Information about the remote device;
  • Mouse Profile
    • 3 button's mouse;
    • Left button mouse holding (for drawing for example);
    • Tapping functionality, like a touchpad;
    • Vertical Scroll;
  • Keyboard Profile
    • Full qwerty keyboard;
    • Numeric keyboard;
    • Holding for Capslock, Shift, Control, Alt and Control + Alt;
    • Mouse area with tapping functionality;
  • Settings Profile
    • Option to run the app in fullscreen mode or window mode;
    • Option to set the sensitivity of the mouse scroll;

Known Issus

  • The installer is a little bit broken at the moment, so check all the ReMoko dependencies, for Om 2008.8 the package: python-textutils should be the only dependence missing by default.
  • In some images (last FSO) the keyboard only show up, if the app is in window mode;
  • The mouse profile can slow down a little bit if you have the gestures daemon and other program running on the phone.
  • Connection problems with Symbian S60 devices with BT-HID keyboard app provided by Nokia;

Tested Bluetooth Stacks

  • Working
    • Linux BlueZ Stack
    • Windows XP SP2
    • Windows Media Center Edition (Toshiba Bluetooth Stack)
    • Nokia Maemo bluetooth stack (based in BlueZ)
  • Not Working
    • Symbian Nokia's S60 - tested with Nokia Navigator (probably a BlueZ SDP bug)


  • Games profile;

Need help in:

  • Application logo (Tag name: ReMoko);
  • Set of menu icon related to the neo (Icons in use are from the Gnome project, enlightenment project and Nenadgrujicic. ReMoko icon made by Fradeve11)


  • Remoko Menu
    Remoko menu.jpg
  • Remoko Mouse profile
    Remoko mouse.jpg
  • Remoko Presentation menu
    Remoko presentation menu.jpg
  • Remoko Multimedia menu
    Remoko multimedia menu.jpg
  • Remoko Multimedia menu configurations
    Remoko multimedia conf.jpg
  • Remoko About Screen
    Remoko about.jpg

Ideas for the application name

  • MokoRemote
  • BlueRemote
  • ReMoko or ReMoto (maybe some character that's a combination of t and k, at least in the splash/logo)
  • Mokomote
  • Mokomo (shorter) -- + 1 vote
  • FreeMote (Builds on freerunner and remote) -- +3 vote
  • MokoKeyMouse (It can be a bit too long, so you can make it shorter as: MKM)
  • Add your idea here

  • Mokomote.png
    svg source avaiable, contact me --Fradeve11 15:14, 27 April 2008 (CEST)
  • Add your idea here

Wish List

  • Possibility to use it with a PS3
  • Possibility to control presentations easily (few buttons, PG-UP, PG-DOWN for example) - Done
    • maybe even navigation via gestures[+1]
    • possibly use the touchscreen similar to a touchpad (mouse) - Done
      • maybe it is too much, but if you manage to make the touchpad, you could get a small screenshot of the big screen (it is useful for presentations if you want to draw/write something without quality). - unsupported feature in HID Bluetooth profile
  • ideally generic GUI that loads controls from some xml config file to make it fully customizable for different purposes (media remote, presenter stick, ...)
  • Connect as a Bluetooth remote to a Sony Playstation 3 for Bluray/DVD playback. (JReese)
  • Make use of profiles to change the interface easy and fast (interface for mouse, keyboard, a mix of those two, presentations, remote controller for videos and music, ...) - Done
    • Use a number of different profiles for the media players. MediaPlayer uses different buttons then Real or VLC or Winamp or Exaile... One could switch between apps without tedious remapping of keys. Of course one could change the key bindings on some of the controlled software to be the same, but that's not always possible, so shouldn't be assumed as an option.
  • Top part of screen as touch-pad, row of three mouse buttons across middle and whichever keyboard the user usually uses on the phone popped-up at the bottom as when adding text in any other app. - Done
  • A MythTV remote would be handy, just a subset of a BT keyboard for common commands with a few nice icons rather than letters on (large) keys.
    • E.g. all four arrows, 'Enter', 'p' (for play/pause), 'Escape', and 'a' and 'z' (or 'home' and 'end', to skip forward and back to flagged points, such as the beginning and end of commercials). Perhaps also comma and period, for rewind and fast-forward, respectively.
  • Avahi search for HTTP services labeled say "remote" via ethernet (BT/LAN or Wifi). MythTV/Elisa and OOPresentation can develop their own html/flash/javascript/etc. "remotes" to hearts content without fine-grain syncing every change of code/GUI/API with your "Openmoko Remote App". Avahi/HTTP also lets desktop/laptop browsers to control "remotes"; this means a bigger community. - unsupported feature in HID Bluetooth profile
  • Have one Neo work as a keyboard for another Neo (which becomes the screen)! (should be possible even now i guess)
  • Change the icons on the mouse screen, so they are oriented as one's mouse would be. Right now the left mouse button is on the left, which is good. However, the image of the mouse is facing the user and the left mouse button is to the right of the image.
  • Do all that, but through usb0 or Wifi next to bluetooth. Not every computer has bluetooth.
  • Playlist data of running media application on computer could be send through bluetooth and than controled via BT. - unsupported feature in HID Bluetooth profile
  • Using mouse through accelerometers, much like wiimote. A softbutton can be used to enable and disable this at will.
  • See on the FreeRunner screen the notifications of the pc. eg "new mail received" or "playing song xxx" or "xxx connected on jabber"... - unsupported feature in HID Bluetooth profile
  • Use FreeRunners AUX button as left mouse key. On other hardware a userdefineable key can be used. This would make things like drag-n-drop much more handy than the actual solution. Disabling the default screen locking functionality of the AUX button while in remote controle mode should be acceptable.
  • Add your wish here


  • 1- Write a HID BlueZ driver that can enable the Openmoko to be seen as a mixed keyboard and mouse in the three major OS's. - Done
  • 2- Map keys and mouse gestures to the USB HID usage tables. - Done
  • 3- Write the UI and some other features. - In progress

Remoko menu.jpg ReMoko

ReMoko connects through Bluetooth and turns your FreeRunner into a remote control for presentations, a multimedia (or media player) remote control, a mouse for another computer and much more.

Tested on:

See also

Personal tools