Developing X Windows Servers for Android

One of my kids recently closed a pair of ear buds in my wife’s HP notebook, severely damaging the LCD display. While I’m building up inspiration to replace the LCD, she’s sitting at my Asus/Xubuntu notebook and using a Secure Shell (SSH) to remote into her HP running Xubuntu, using the -X option. This lets her run Firefox, Thunderbird, and other programs, remotely, while displaying the windows on my notebook. For now, it’s an acceptable situation for her.

Then, I got the bright idea that we might be able to do the same thing with the Asus tablet.

Well, not so fast.

Few and Far Between

It turns out there’s been very little development of X-Windows servers for Android. I’m not talking about remote control programs, such as, Remote for VLC or Remote VNC,  but something else. What I wanted was to run my X Windows application on my Linux notebook (or my wife’s machine) and have it show up on my Transformer Prime tablet.

Recently, I found a basic X server for Android that kind of works.

Matt Kwan, a PhD candidate at RMIT University in Melbourne, Australia, has somehow found the time between his studying to write a primitive X server for Android.

He admits, however, significant development on the project is still needed.

How it Works

Kwan’s software starts an X server on a tablet, which allows you to remotely log into your remote Linux box.  The Android X Server relies on a ConnectBot Android app for SSH duties and it works fairly well.

I’ve been able to run some very basic X applications like xeyes, xcalc, etc. But large complex programs like Firefox, Google Chrome and even a very lightweight Netsurf browser can crash and burn. Hey, it’s a start.

The software allows one of two choices:

  • Run an X program directly from the notebook, displaying the output on the tablet. It looks something like this: rob-notebook$ xeyes -display 192.168.1.100:0.0 (sitting on a terminal on my Asus notebook)
  • Start up a window manager in the tablet and SSH into a Linux machine like FVWM. You can run programs from the menu, however, it’s kind of clunky.

On the Transformer tablet screen, move the cursor around with your finger. The “up” volume rocker switch serves as the left mouse button and the “down” volume switch is the right mouse.

Results, Please…

As you would expect, the response time is pretty darn slow. The X Windows network traffic is constantly going back and forth between the tablet and Linux notebook on every little move.

I even tried other window managers, like Enlightenment, icewm and xfce. Sadly, I received a bunch of errors and all refused to run.

X Server on Android has a long way to go, before it becomes stable and is actually usable. It’s a start, however.

Feel free to share any alternative applications, or opinions, on X server for Android tablets in the comments area.

Related link

Comments

  1. BY jef says:

    I have installed it on an ASUS transformer Pad (on work). I have spend some couple of hours searching for a ssh client that performs X11 forwarding (ConnectBot does not and it was needed at work). No success. I have brought the tablet home to test the server without needing this X11 forward.

    It is unusable. It works enough for xeyes or xclock, but not for xterm. Maybe fonts are missing ?

    This is really sad that such basic stuff like Xserver and ssh X11 forwarding are missing. All the windows PC around me have putty and an Xserver (either Xming, reflection X or exceed).

    According to my first search, it exists on iOS (ipod). Could anyone confirm ?

  2. BY Merlin Ludwig says:

    I have been keeping my eyes on this particular app. It seems to me that android, being a part of the linux family (as of kernel version 3.4) it is rather sad that there isnt more of an effort in porting the full linux systems to android.

Post a Comment

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>