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
-
First of all, you will need a machine equipped with a Synoptic
cPad, for example one of the newer Toshiba laptops.
-
You will need the cpad.o kernel module available from
.
Rob Miller's page
-
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
-
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:
-
Untar the XFree86 sources, eg.:
cd /tmp
for f in 1 2 3; do tar zxvf X430src-$f.tgz; done
-
Untar the Xcpad sources, eg.:
cd /tmp
tar zxvf Xcpad-0.1.tar.gz
-
Apply the patch:
cd /tmp/xc
patch -p1 < ../Xcpad-0.1/Xcpad-0.1.patch
-
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
-
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