Mega mouse icon

Overview


Mega Mouse is a iPhone application that provides mouse or keyboard input for Windows and Linux PCs.  It uses WiFi to communicate with a server on the PC and emulates all basic mouse and keyboard functionality, including special keys such as Control and Alt.  It features the two finger scroll that Mac users enjoy as well as the auto text correction available on the iPhone.  Space mouse mode works like a gyro mouse using the accelerometers to move the pointer for when there is no desk available.

Requirements


To use the Mega Mouse application you must have a current version of one of the major distributions of Linux listed in the supported platform list or Windows XP or Vista.  See the compatibility list for usable distributions.  You must have a wireless access point that the iPhone or iPod Touch can connect to. The PC must be connected to this same access point and on the same network.  The PC may be wired via ethernet or connect wirelessly.  Lastly you must download and install the Mega Mouse application from the Apple Store onto your iPhone or iPod Touch.

Installation

 

For a Windows installation

 

Download the Windows Server from the menu on the left. Run the application and follow the instructions.  In addition to installing Mega Mouse, the installer installs Bonjour.  This is a required component.

Once the Mega Mouse application is running a new Mega Mouse icon will appear in the system tray.  Be sure to allow the server to open a connection to the network in any firewall or virus software.  The default port is 29909 and the protocol is UDP.  The server is set to start on login automatically but you can prevent this by deleting the link Start Menu->All Programs->Startup->Mega Mouse. To temporarily stop the server or to configure the server you can right click on the icon in the system tray for a menu of options. When you select "configure", the server will display a configuration page with a modifiable port number.  If you change it be sure to press the "update" button before continuing.  To minimize back to the system tray, simply press the "close X" and say "No" to the question "Quit Server?".   To manually start the app if you have closed it or disabled it from autostarting, find the icon in the "StartMenu->All Programs->MegaMouse" and click it.

On the iPhone, if the app's navigation bar turns red it indicates that the connection is not working.  Check the troubleshooting section or FAQ for help configuring your network.  If all else fails use the Contact link on the page to send us a message.  Be sure to include all details including host operating system and any anti-virus/firewall programs you are running.

 

For a standard Linux installation


Using the menu on the left side of the screen select the appropriate distribution for your hardware.  Untar and unzip the tarball.
    tar -xvzf megamouse.tgz
Change into the newly created directory megamouse
    cd megamouse
Run the install script.  You will need to run this as root user.
    sudo ./install.sh

For unusual Linux distributions


The binary relies on avahi-common 3, avahi-client 3 and glibc.  The specifics can be acquired with objdump or ldd. It expects the libraries to be in /usr/lib.  If avahi is not installed, use the package manager of your choice to acquire the avahi package.  On Debian based systems
    sudo apt-get install avahi
Fedora based users can use yum or the GUI to install the avahi package.
The startup script expects to be put in /etc/init.d/ and the runlevel directory.  It relies on start-stop-daemon to daemonize the application for Debian or daemonize in Fedora.
The keyboard and mouse talk to the kernel through uinput.  This kernel module must be available and dynamically installable.  If not the application will be unable to run.

If all else fails, contact me and I will attempt to get a binary or source working for you.

Installing the iPhone App


Use the menu on the left to download and install the application on your iPhone or iPod Touch.  

Using the Application


The application has four screens as shown below.

On startup you are at the trackpad screen.  To get to other modes, such as the configuration mode use the navigation buttons at the top of the screen.   The first thing to do is to find and connect to your Linux machine.  Navigate to the configuration page.  If your server is running and visible there should be a single field in the hosts list.  If it is there, select it and return to the trackpad screen. The navigation bar will be red if the connection is selected but not working.  It will turn gray when a connection is solid.  Note that as you use the application if the connection fades the navigation bar may turn orange or red until the connection returns.    If you do not see any entries go to the troubleshooting section for more help.

The track pad works like a Mac trackpad.  One finger moves the pointer, two fingers scroll the focused scroll window and the buttons at the bottom click like left and right track pad buttons.  An image of a fingerprint is provided for visual feedback to the user.

Next try the space mouse.  It works like a presentation mouse or a gyro mouse using the accelerometers.  The difference in position is only registered when a finger is placed on the screen.  Place one finger on the screen and tilt the mouse. The pointer will follow.  The buttons at the bottom work the same as the trackpad buttons.

The keyboard is a full featured keyboard with text correction and all function keys.  The alpha-numeric keyboard is the same as on most iPhone applications.  When typing, text appears in a small window at the top of the screen along with possible corrections.  To accept the correction hit space.  To ignore it either continue typing or press the 'X' associated with the correction text.  Above the alpha-numeric keyboard is the special buttons keyboard which has all the additional buttons of a 102 key PC keyboard.  To use the buttons simply press them.  More are available by dragging the row of buttons left or right.  If you press a button it turns blue.  When you then drag the button, it will turn tan to indicate it is not going to send that key-press to the PC and instead will move the buttons over.  If you simply press and release a button with no dragging it will send the key-press to the PC.  The 'Alt' and 'Ctl' keys lock down to allow you to do key combinations such as 'Ctl-C'.  They will show that they are press by staying blue after being pressed.  To release them simply press again.

The configuration page allows you to select a target platform.  The computer name is used to uniquely identify machines.  Selecting one turns it blue and forwards all input to that machine until a different one is selected.  The sound switch turns on and off sound effects for the mouse buttons and keyboard keys.  The mouse and trackpad sensitivity sliders control how much to multiply the motion by before sending it to the machine. For faster motion move the sliders to the right.  For more fine control move them to the left.

Troubleshooting


If installation fails email me with the details and I will attempt to correct the problem.

If your server does not show up in the list, or you cannot connect to your server after selecting it in the list, it is almost always a firewall or network issue.
    Verify that you can ping your iPhone or iPod Touch.  To find the IP of the iPhone go to Settings->Wi-Fi->(AccessPointName).  It will list the IP address for this device on your wireless network.
    Disable all firewalls temporarily.   NOTE: if you do not have any other protection from the Internet, such as a routing (NAT) access point be cautious and disconnect the Internet connection while doing this.
    If this fails, you can diagnose your avahi service visibility using the Avahi Zeroconf browser.  It is available in the package manager of most major distributions.  Running it on a third machine would be helpful.
    If you determine that the firewall is the problem, add an exception for the default port 29909 or change the script in /etc/init.d to select a port that is open in the firewall.  Be sure to allow all IPs in the local subnet range if the iPhone is DHCPing the IP address