ReadMe for Xcpad

An X11 server displaying on a Synaptics cPad

Up to Date Information

Here is up to date information on the cPad X11 server.

Requirements

  1. First of all, you will need a machine equipped with a Synoptic cPad, for example one of the newer Toshiba laptops.
  2. You will need the cpad.o kernel module available from . Rob Miller's page
  3. For building this X11 server you will need the XFree86 4.3.0 sources available from . Not all sources are needed but apparently you will need
  4. You will need the patch supplying the Xcpad source which is available from here.

Build and Installtion

I haven't fiddled much with the build system and just plugged things into the normal XFree86 build process. This takes quite a while when building from scratch... Assuming the needed packages are dropped into the directory /tmp the following should work:
  1. Untar the XFree86 sources, eg.:
         cd /tmp
         for f in 1 2 3; do tar zxvf X430src-$f.tgz; done
            
  2. Untar the Xcpad sources, eg.:
         cd /tmp
         tar zxvf Xcpad-0.1.tar.gz
            
  3. Apply the patch:
         cd /tmp/xc
         patch -p1 < ../Xcpad-0.1/Xcpad-0.1.patch
            
  4. Compile the X11 stuff (this just compiles the whole XFree86; I haven't investigated yet how to omit unecessary parts):
         cd /tmp/xc
         make World
            
  5. Finally, install either just the Xcpad executable and man page
         cd /tmp/xc/programs/Xserver
         cp Xcpad /usr/X11R6/bin
         cp hw/cpad/Xcpad._man /usr/X11R6/bin/man/man1/Xcpad.1x
            
    or install the whole XFree86 stuff
         cd /tmp/xc
         make install
            

Running and Using

Running and using the Xcpad server is pretty simple: you start the server with the new display number as parameter, for example:
    nohup Xcpad :1&
    
Once your Xcpad server is running, you can simple direct any X11 program (well, at least those which can cope with just two planes and a display of 240x160 pointer) to this display. Normally, this is done either by using the -display command line option or by setting the DISPLAY environment variable. For example:
    xclock -update 1 -display :1 &
    
... or from some remote machine:
    xload -display machine.with.cpad:1 &
    

Problems

Currently, there is no input support yet. This is the next thing I need to work on. Thus, when you are using a window manager you might want to instruct it to do automatic placement of new windows: you won't be able to place them manually.

As a consequence of lacking pointer support, the pointer is currently stuck in the middle of the display! This is pretty ugly but I haven't found a way to work around this problem, yet.

Bugs

There are probably bugs and problems. The current state of the code is more a proof of concept than a working implementation although you should have no problems displaying X11 programs.

Future Plans

I want to support input, at least support for pointer (I'm not sure whether keyboard support would be that useful...).

There are probably some performance improvements by avoiding unnecessary updates: currently, always the whole display is written even if only a small portion of the screen was changed.

When I know how to direct input to this X11 server I also want to provide a PS/2 interface which provides the possibility of using the display edges as mouse wheels. The "real" X11 server would then use the corresponding PS/2 interface.

Author

Dietmar Kuehl, (dietmar_kuehl@yahoo.com), Phaidros Software AG