========================== Updated: XGGI - X server for LibGGI 2000-10-15 ========================== Introduction ============ XGGI is a partly accelerated and fully multihead capable X server which uses LibGGI to do hardware independent graphics and input. It supports 8, 15, 16, 24 and 32 bit modes on any LibGGI target that has a pixellinear DirectBuffer, and should run in any resolution the target supports. XGGI has been successfully tested on the X, fbdev, svga, dga and tile targets. Note that even though XGGI is built from the XFree sources it is not an XFree86 server. No code from hw/xfree86 is used, and therefore an eventual /etc/XF86Config file is completely ignored. This is likely to change in the future, as the XFree86 DGA, Misc and VidMode extensions and XAA are desireable features in XGGI. Commandline =========== In addition to the normal X server commandline arguments (listed by XGGI -h) the following are supported by XGGI. -targets the target(s) we should open the screen(s) on -modes the mode(s) we should use -rows number of screen rows in multihead configurations -buttons specify number of pointer buttons -dontzap disable the server abort sequence -ggivtswitch don't set GII_CTRLALT_VTSWITCH automaticly -newvt set GGI_NEWVT environment variable -noxfreeemu does nothing, provided only for backward compability with previous XGGI releases. may be either the name of a single LibGGI display target, or a list on the format "(target1):(target2):(target3)..." containing between one and nine LibGGI targets (if you want support for more than 9 screens you can just change MAXSCREENS in xc/programs/Xserver/include/misc.h and recompile XGGI). XGGI will start one screen on each target specified. is either a single LibGGI mode or a list of modes on the same format as . In a multihead configuration each entry corresponds to a target in . See the ggiParseMode(3) man-page for a description of the LibGGI mode format. If any of these parameters are left out or if an entry is empty (just "()") the LibGGI defaults and environment variables will be used like for any normal LibGGI application. is used to specify the screen layout in a multihead configuration. For example a three screen configuration can be layed out in the following ways: == 1 == 2 == 3 ------------- --------- ----- | 1 | 2 | 3 | | 1 | 2 | | 1 | ------------- --------- ----- | 3 | | 2 | ----- ----- | 3 | ----- specifies the maximum number of buttons your pointer device have. The default is 5, which will work just fine if your device has five or less buttons. If it has more buttons you need to specify manually. Normally the XGGI server can be killed by pressing Ctrl-Alt-Backspace, but if you start the server with the -dontzap option this is disabled. Normally the XGGI server automaticly sets the GGI_NEWVT and GII_CTRLALT_VTSWITCH environment variables (see doc/env.txt in the LibGGI and LibGII documentation respectively) to resemble the behaviour of an XFree server as close as possible. If you pass -noxfreeemu to the server it will not do this. Keyboard handling ================= Due to the fact that the X server core wants to be fed keycodes, while LibGGI delivers key "labels" and "symbols", some special treatment is required for the keyboard. Bascicly XGGI translates LibGGI "labels" into pseudo keycodes, which is then mapped into X keysyms as in any other X server. The huge benefit of this compared to the old schemes is that XGGI keymapping works identical on all LibGGI targets. This also means that keycodes will differ between XGGI and any "native" X server you are/have been running, which in turn means that any xmodmap files you have probably are useless with XGGI. This is however not that bad, because XGGI comes with pre-made keymaps which are ready to be fed to xmodmap. These keymaps can be found in the keymaps/ directory. To load a keymap file you simply type: xmodmap path_to_keymap_file The required xmodmap commands should be put in your X server init scripts so they always get run when XGGI starts. IMPORTANT: You need to have at least one X client (like an xterm or the window manager) running when you execute the xmodmap command(s), or else xmodmap will be ignored silently. (To be precise - it is not actually ignored, but the X server will normally reset itself after the last client terminates, and if xmodmap is the only client...) Currently there are six keymaps in this archive: xggimap.base which will more or less restore the default keymap in the server, xggimap.se_se, xggimap.de_de, xggimap.it_it, xggimap.no_no and xggimap.pl_pl which contains the necessary overrides to produce a Swedish, German, Italian. Norwegian and Polish keymapping respectively. More keymaps will be added as I recieve them from contributors. Font path ========= As XGGI does not read /etc/XF86Config you have to specify the fontpath by passing the -fp option to XGGI. The -fp option takes a comma separated fontpath as an argument. Note that if you have your fonts in the standard location /usr/X11R6/lib/X11/fonts/ you don't need to specify a fontpath. Hardware acceleration ===================== Currently only the window/area moving/blitting code and rectangle fills take advantage of HW acceleration in LibGGI targets. More acceleration is planned to be added. Where to get XGGI ================= The latest version can always be found at http://www.stacken.kth.se/~mackan/ggi/xggi/ or in /afs/stacken.kth.se/home/mackan/public_html/ggi/xggi New releases will also be uploaded to the GGI FTP server (see below). Other GGI resources =================== Web site: http://www.ggi-project.org/ FTP site: ftp://ftp.ggi-project.org/pub/ggi //Marcus Sundberg [marcus@ggi-project.org]