
	XGGI V1.4 (ALPHA)
	*****************

Introduction
============

This is XGGI, an X server which uses libGGI for input and display
operation. It corresponds to XFree86 3.3.1, as this is the source tree
that the GGI code has been built upon.

However, XGGI is no XFree86 server, and it does not (yet) make use of
data contained in /etc/XF86Config. Because of that you will most
probably have to override the default font path with the `-fp'
argument. XGGI also takes the `-ggimode' argument, which must be
followed by a string of the form WxHxD.

XGGI has been developed and tested on an AMD K5 machine with Linux
kernel 2.1.59, using the X display target of libGGI in 16 bits mode
most of the time. The X server used was XFree86 3.3. 8bpp and 16bpp
modes have also been tested using the Trio64V+ KGI driver in a GGI
kernel.

The provided XGGI binary is linked against libc 5. Binaries for glibc
2 (libc 6) systems are available from Stefan Mars' homepage:
http://www.lysator.liu.se/~mars/features.html


Keyboard Support
================

XGGI V1.4 requires you to specify the keymap layout the surrounding
display (and input) target uses. E.g., if you're using a GGI kernel
with the kbd-german.c map compiled in, select xggikeys-german. A
german and an american keymap file is contained in this archive,
tables for other countries have to be generated by you (see
below). You could also use one of the supplied files, but some keys
may be mapped in a funny way.

The filename of the keymap file must be specified with the `-keymap'
option to XGGI. If no file is specified or the file can't be found,
you won't be able to type.

Until then, the keyboard should work 100% when running XGGI on the KGI
target, the X target might make some trouble.

Creating a new ~/map file
-------------------------

From the ggi source distribution, choose a kbd-*.c file from directory
patches/Linux/linux/drivers/char/default/. Copy this file to the
xggimakemap directory of the XGGI distribution and rename it to
"keymap.inc". cd into xggimakemap and type "make map". This should
produce the file "map" which can be specified as an argument to
`-keymap'.

Uglicity
--------

Admittedly all this is very ugly. But it is because X keyboard
handling is sick (relies on 8-bit keycodes) and libGGI currently does
not support retrieving a key mapping table.  As soon as libGGI has the
necessary extensions, it will be fixed. The table creation code will
go into the server then, being much more flexible.


Using
=====

A script to start the server and the window manager is very useful;
I'm using this one:

./XGGI :1 -ggimode 640x400x16 -fp /usr/X11R6/lib/X11/fonts/misc,/usr/X11R6/lib/X11/fonts/75dpi -keymap /home/rawstyle/dev/XGGI-1.4/xggikeys-german &
sleep 1
fvwm2 -display :1 &
xterm -display :1 &
echo "Press ^D to abort..."
cat >/dev/null
killall XGGI


Compiling It Yourself
=====================

You need a fresh XFree86 3.3.1 source tree. Apply the patch by cd'ing
into the directory containing the xc and contrib directories, and
executing "patch -p0 < xggipatch" there. "cd xc", "make World".  Only
the server is built, no additional libraries. It will be located in
xc/programs/Xserver. "/usr/include/linux" must be a symlink into a
GGI-patched kernel, the patched keyboard.h is required.


Known Bugs
==========

Netscape 3.01 has trouble with its menu bar, getting error:
Warning: 
    Name: menuBar
    Class: XmRowColumn
    Illegal mnemonic character;  Could not convert X KEYSYM to a keycode

I don't know if Speedo and Type1 fonts work now. Could someone who has
installed those test them?


Things To Do
============

Fix the bugs ;D

Put comments into the source code.. I'll do that as soon as I've
understood it ;-)

Add acceleration.

Add monochrome mode


Changes
=======

V1.4 (26-Oct-97)

- Complete keyboard support, it's a kludge nevertheless.
- 32bpp mode working.
- 24bpp mode implemented, but untested.

V1.3 (17-Oct-97)

- Jason McMullan gave up maintaining XGGI.
- The existing 1.2 sources for XFree86 3.2pl1 were changed to compile
  with the XFree86 3.3.1 sources.
- Mouse button mapping changed to the new numbering scheme.
- Keyboard support, but no complete keymap yet.
- Fixed the display code to support TrueColor visuals, only 16 bit
  supported for now.
- The bug from 1.2 (no Expose events for some apps) has disappeared.


Current Maintainer
==================

Michael Krause - rawstyle@ms.demo.org - http://ms.demo.org/rst/











