Introduction
Valence turns your Android phone or tablet into a remote
keyboard and mouse for any computer. The inspiration for Valence
was a need to control a home theater PC from the couch, but it can be
useful in any situation where a computer doesn't have a keyboard and
mouse handy. Your computer must be reachable over the network from
your Android device, and be running a VNC server.
Most computer remote control apps require that the controlled computer
be running special software, unique to the app, that relays mouse and
keyboard events to the operating system. Not only does this add yet
another single-purpose ever-running program to your computer, but the
author may not have support for your operating system yet. To solve
this problem, Valence uses the industry standard
VNC
system and its RFB
(remote framebuffer) protocol. Many operating systems come with VNC
built-in, and many people may already have VNC installed and enabled.
Instead of using VNC to see the screen of a remote computer, Valence
uses VNC in a strictly one-way fashion—input events are
transmitted from the Android handset to the VNC server, but video
frames are never sent from the server to the handset.
Installing a VNC server on your computer
To use Valence, make sure you have VNC server software installed on
your computer, and configured to allow connections:
Mac OS X 10.6 Snow Leopard
Macs have built-in VNC software, so no additional software needs to be
installed.
- In "System Preferences," go to the "Sharing" tab and make
sure "Remote Management" is selected.
- Click "Computer Settings...", make sure "VNC viewers may control
screen with password" is selected, and provide a password.
- When configuring this server in Valence, do not select "Mac
authentication." If you prefer to use "Mac authentication," you'll need
to follow the directions for Lion, below.
NOTE: In July 2011, Apple pushed an update to Snow Leopard users
which included a newer version of Apple Remote Desktop, the built-in VNC
server. This new version, v3.5, breaks Valence's support for sending
a right-click when you two-finger tap. To restore right-click support,
be sure to check the "Send mouse button-2 instead of button-3" option when
configuring this server in Valence.
Mac OS X 10.7 Lion
Macs have built-in VNC software, so no additional software needs to be
installed.
- In "System Preferences," go to the "Sharing" tab and make
sure "Remote Management" is selected.
- Click "Options..." and make sure "Observe" and "Control"
are selected.
- When configuring this server in Valence, select "Mac authentication"
and provide your username.
NOTE: Valence cannot use standard VNC authentication to connect
to the built-in VNC server in Lion. You must use Mac
authentication. Starting with Lion, Apple Remote Desktop presents a
special login screen to users connecting with standard VNC
authentication, which you cannot see with an input-only VNC client such
as Valence.
Ubuntu Linux
Ubuntu Linux has built-in VNC software, so no
additional software needs to be installed. In the System menu, select
Preferences then Remote Desktop. Check "Allow other users to view your
desktop" and "Allow other users to control your desktop," uncheck "You
must confirm each access to this machine," and check "Require the user
to enter this password." Assign a password.
Windows
Windows does not have a built-in VNC server, so
you'll need to install one. I recommend downloading the latest version
of TightVNC. On TightVNC's
download page,
click the "download" link next to "Self-installing package for Windows."
Open the downloaded package, click "Run," and proceed through the setup
wizard. (Just keep hitting "Next" and "I agree".)
Enter a password when prompted in the "Service Configuration" dialog,
click "Install," and complete the installation.
Configuring Valence
Before using Valence, you must configure the app with information
about the computer you wish to control. There are two ways to do this.
When you first launch Valence, you will be presented with a list
of configured VNC servers, the option to manually add a new server, and the
option to automatically discover VNC servers.
-
Manually add a VNC server. Select "Add a new VNC server...". Enter
the IP address or hostname of your VNC server and the password, then click
"Connect." The server will then be configured in Valence.
-
Discover a VNC server. Select "Discover VNC servers...". VNC servers
that are capable of advertising themselves on the network will appear in a
list. (Note: Not all VNC servers support this feature—in particular,
TightVNC does not. Also, some Android handsets such as the HTC EVO 4G have
trouble performing discovery.) Select the desired server from the list, and
you will be presented with a server configuration screen. Enter your password,
click "Connect," and the server will be configured in Valence.
Using Valence
To control a computer, select its name from the list which appears when you
launch Valence. After connecting, you will see a large touchpad
area on the screen. You can use this touchpad to move the mouse pointer of
the computer in much the same way you use a touchpad on a laptop—swipe
your finger in the direction you want the pointer to move. To click the
mouse, quickly tap your finger anywhere in the touchpad area. To perform
a right-click, tap on the touchpad with two fingers at the same time. To
scroll, swipe two fingers up and down.
If your Android device has a physical keyboard, you can use it to type on
the remote computer. Otherwise, pressing the keyboard icon will present the
soft keyboard which can be used for typing.
When finished, press your device's back key.
Security considerations
The VNC protocol (RFB) performs authentication using a DES-based
challenge-response system, so your VNC password is never transmitted in
the clear. However, security-conscious users should note the following:
-
Keys and mouse movements are transmitted in the clear.
Therefore, if you type a password on your computer via a VNC session,
that password will be sent in the clear. If you only use Valence
on your home network with a WPA-secured wireless access point, this
is probably acceptable since everything is being encrypted by your
wireless network.
-
Valence stores your VNC passwords on your Android device in
an encrypted format. However, since it is necessary for Valence
itself to possess the means to decrypt these passwords, this
is only a deterrent to the most casual snooping. A determined and
skilled criminal with physical access to your phone could still
uncover your stored VNC passwords.
Miscellaneous comments
What does the name Valence mean?
The name Valence has the letters V, N, and C, so it seemed like
an appropriate name for a VNC client. In chemistry,
"valence"
refers to an atom's capacity for joining with other atoms to form
compounds by sharing electrons. This connection of atoms using their
valence electrons is called a covalent bond.
In much the same way that valence helps hold the universe together,
I hope that Valence helps bring your home electronics together.