From 767c9384c1150238dfd4fdd90c67794c86e3471b Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Oct 18 2007 00:12:10 +0000 Subject: * Thu Oct 18 2007 Dave Airlie 1.3.0.0-33 - xserver-1.3.0-xorg-conf-man-randr-update.patch - update man page for randr setup - xserver-1.3.0-update-quirks.patch - update quirks for more monitor issues - BuildReq: mesa-source >= 7.0.1-6. --- diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 036a086..6d72c80 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -9,7 +9,7 @@ Summary: X.Org X11 X server Name: xorg-x11-server Version: 1.3.0.0 -Release: 32%{?dist} +Release: 33%{?dist} URL: http://www.x.org License: MIT Group: User Interface/X @@ -74,6 +74,8 @@ Patch2012: xserver-1.3.0-add-really-slow-bcopy.patch Patch2013: xserver-1.3.0-document-fontpath-correctly.patch Patch2014: xserver-1.3.0-intel-by-default.patch Patch2015: xserver-1.3.0-accidental-abi.patch +Patch2016: xserver-1.3.0-xorg-conf-man-randr-update.patch +Patch2017: xserver-1.3.0-update-quirks.patch # assorted PCI layer shenanigans. oh the pain. Patch2500: xorg-x11-server-1.2.99-unbreak-domain.patch @@ -148,7 +150,7 @@ BuildRequires: libXaw-devel BuildRequires: libXfixes-devel BuildRequires: mesa-libGL-devel >= 7.0.1 -BuildRequires: mesa-source >= 7.0.1-5 +BuildRequires: mesa-source >= 7.0.1-6 # XXX silly... BuildRequires: libdrm-devel >= 2.3.0 %if %{with_hw_servers} @@ -339,6 +341,8 @@ Xserver source code needed to build VNC server (Xvnc) %patch2013 -p1 -b .fontpath-doc %patch2014 -p1 -b .intel %patch2015 -p1 -b .accidental-abi +%patch2016 -p1 -b .document-randr +%patch2017 -p1 -b .update-quirk %patch2500 -p1 -b .unbreak-domains %patch2501 -p1 -b .pci-bus-count @@ -616,6 +620,11 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Thu Oct 18 2007 Dave Airlie 1.3.0.0-33 +- xserver-1.3.0-xorg-conf-man-randr-update.patch - update man page for randr setup +- xserver-1.3.0-update-quirks.patch - update quirks for more monitor issues +- BuildReq: mesa-source >= 7.0.1-6. + * Mon Oct 15 2007 Adam Jackson 1.3.0.0-31.jx - xserver-1.3.0-late-sigusr1.patch: Test, move kill(getppid(), SIGUSR1) as late as possible. diff --git a/xserver-1.3.0-update-quirks.patch b/xserver-1.3.0-update-quirks.patch new file mode 100644 index 0000000..091e280 --- /dev/null +++ b/xserver-1.3.0-update-quirks.patch @@ -0,0 +1,291 @@ +From: Eric Anholt +Date: Thu, 11 Oct 2007 23:48:56 +0000 (-0700) +Subject: Bug #10304,12784,11603: Add quirks for several physical size issues. +X-Git-Url: http://gitweb.freedesktop.org/?p=xorg/xserver.git;a=commitdiff;h=fc092334ac0a323b80a9602cb8bf60ca9dee3bfa + +Bug #10304,12784,11603: Add quirks for several physical size issues. + +A lot of EDID writers apparently end up stuffing centimeters (like the +maximum image size field) into the detailed timings, instead of millimeters. +Some of them only get it wrong in one direction. Also, add a quirk to let +us mark the largest 75hz mode as preferred, which will often be used for +EDID 1.0 CRTs. +--- + +--- a/hw/xfree86/modes/xf86Crtc.c ++++ b/hw/xfree86/modes/xf86Crtc.c +@@ -2134,8 +2134,12 @@ _X_EXPORT xf86MonPtr + xf86OutputGetEDID (xf86OutputPtr output, I2CBusPtr pDDCBus) + { + ScrnInfoPtr scrn = output->scrn; ++ xf86MonPtr mon; + +- return xf86DoEDID_DDC2 (scrn->scrnIndex, pDDCBus); ++ mon = xf86DoEDID_DDC2 (scrn->scrnIndex, pDDCBus); ++ xf86DDCApplyQuirks (scrn->scrnIndex, pDDCBus); ++ ++ return mon; + } + + static char *_xf86ConnectorNames[] = { "None", "VGA", "DVI-I", "DVI-D", +--- a/hw/xfree86/modes/xf86EdidModes.c ++++ b/hw/xfree86/modes/xf86EdidModes.c +@@ -54,6 +54,16 @@ typedef enum { + DDC_QUIRK_PREFER_LARGE_60 = 1 << 0, + /* 135MHz clock is too high, drop a bit */ + DDC_QUIRK_135_CLOCK_TOO_HIGH = 1 << 1, ++ /* Prefer the largest mode at 75 Hz */ ++ DDC_QUIRK_PREFER_LARGE_75 = 1 << 2, ++ /* Convert detailed timing's horizontal from units of cm to mm */ ++ DDC_QUIRK_DETAILED_H_IN_CM = 1 << 3, ++ /* Convert detailed timing's vertical from units of cm to mm */ ++ DDC_QUIRK_DETAILED_V_IN_CM = 1 << 4, ++ /* Detailed timing descriptors have bogus size values, so just take the ++ * maximum size and use that. ++ */ ++ DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE = 1 << 5, + } ddc_quirk_t; + + static Bool quirk_prefer_large_60 (int scrnIndex, xf86MonPtr DDC) +@@ -81,6 +91,52 @@ static Bool quirk_prefer_large_60 (int s + return FALSE; + } + ++static Bool quirk_prefer_large_75 (int scrnIndex, xf86MonPtr DDC) ++{ ++ /* Bug #11603: Funai Electronics PM36B */ ++ if (memcmp (DDC->vendor.name, "FCM", 4) == 0 && ++ DDC->vendor.prod_id == 13600) ++ return TRUE; ++ ++ return FALSE; ++} ++ ++static Bool quirk_detailed_h_in_cm (int scrnIndex, xf86MonPtr DDC) ++{ ++ /* Bug #10304: "LGPhilipsLCD LP154W01-A5" */ ++ /* Bug #12784: "LGPhilipsLCD LP154W01-TLA2" */ ++ if (memcmp (DDC->vendor.name, "LPL", 4) == 0 && ++ DDC->vendor.prod_id == 0) ++ return TRUE; ++ ++ /* Bug #11603: Funai Electronics PM36B */ ++ if (memcmp (DDC->vendor.name, "FCM", 4) == 0 && ++ DDC->vendor.prod_id == 13600) ++ return TRUE; ++ ++ return FALSE; ++} ++ ++static Bool quirk_detailed_v_in_cm (int scrnIndex, xf86MonPtr DDC) ++{ ++ /* Bug #11603: Funai Electronics PM36B */ ++ if (memcmp (DDC->vendor.name, "FCM", 4) == 0 && ++ DDC->vendor.prod_id == 13600) ++ return TRUE; ++ ++ return FALSE; ++} ++ ++static Bool quirk_detailed_use_maximum_size (int scrnIndex, xf86MonPtr DDC) ++{ ++ /* Bug #10304: LGPhilipsLCD LP154W01-A5 */ ++ if (memcmp (DDC->vendor.name, "LPL", 4) == 0 && ++ DDC->vendor.prod_id == 0) ++ return TRUE; ++ ++ return FALSE; ++} ++ + static Bool quirk_135_clock_too_high (int scrnIndex, xf86MonPtr DDC) + { + /* Envision Peripherals, Inc. EN-7100e. See bug #9550. */ +@@ -106,6 +162,22 @@ static const ddc_quirk_map_t ddc_quirks[ + quirk_135_clock_too_high, DDC_QUIRK_135_CLOCK_TOO_HIGH, + "Recommended 135MHz pixel clock is too high" + }, ++ { ++ quirk_prefer_large_75, DDC_QUIRK_PREFER_LARGE_75, ++ "Detailed timing is not preferred, use largest mode at 75Hz" ++ }, ++ { ++ quirk_detailed_h_in_cm, DDC_QUIRK_DETAILED_H_IN_CM, ++ "Detailed timings give horizontal size in cm." ++ }, ++ { ++ quirk_detailed_v_in_cm, DDC_QUIRK_DETAILED_V_IN_CM, ++ "Detailed timings give vertical size in cm." ++ }, ++ { ++ quirk_detailed_use_maximum_size, DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE, ++ "Detailed timings give sizes in cm." ++ }, + { + NULL, DDC_QUIRK_NONE, + "No known quirks" +@@ -303,6 +375,98 @@ DDCGuessRangesFromModes(int scrnIndex, M + } + } + ++static ddc_quirk_t ++xf86DDCDetectQuirks(int scrnIndex, xf86MonPtr DDC, Bool verbose) ++{ ++ ddc_quirk_t quirks; ++ int i; ++ ++ quirks = DDC_QUIRK_NONE; ++ for (i = 0; ddc_quirks[i].detect; i++) { ++ if (ddc_quirks[i].detect (scrnIndex, DDC)) { ++ if (verbose) { ++ xf86DrvMsg (scrnIndex, X_INFO, " EDID quirk: %s\n", ++ ddc_quirks[i].description); ++ } ++ quirks |= ddc_quirks[i].quirk; ++ } ++ } ++ ++ return quirks; ++} ++ ++/** ++ * Applies monitor-specific quirks to the decoded EDID information. ++ * ++ * Note that some quirks applying to the mode list are still implemented in ++ * xf86DDCGetModes. ++ */ ++void ++xf86DDCApplyQuirks(int scrnIndex, xf86MonPtr DDC) ++{ ++ ddc_quirk_t quirks = xf86DDCDetectQuirks (scrnIndex, DDC, FALSE); ++ int i; ++ ++ for (i = 0; i < DET_TIMINGS; i++) { ++ struct detailed_monitor_section *det_mon = &DDC->det_mon[i]; ++ ++ if (det_mon->type != DT) ++ continue; ++ ++ if (quirks & DDC_QUIRK_DETAILED_H_IN_CM) ++ det_mon->section.d_timings.h_size *= 10; ++ ++ if (quirks & DDC_QUIRK_DETAILED_V_IN_CM) ++ det_mon->section.d_timings.v_size *= 10; ++ ++ if (quirks & DDC_QUIRK_DETAILED_USE_MAXIMUM_SIZE) { ++ det_mon->section.d_timings.h_size = 10 * DDC->features.hsize; ++ det_mon->section.d_timings.v_size = 10 * DDC->features.vsize; ++ } ++ } ++} ++ ++/** ++ * Walks the modes list, finding the mode with the largest area which is ++ * closest to the target refresh rate, and marks it as the only preferred mode. ++*/ ++static void ++xf86DDCSetPreferredRefresh(int scrnIndex, DisplayModePtr modes, ++ float target_refresh) ++{ ++ DisplayModePtr mode, best = modes; ++ ++ for (mode = modes; mode; mode = mode->next) ++ { ++ mode->type &= ~M_T_PREFERRED; ++ ++ if (mode == best) continue; ++ ++ if (mode->HDisplay * mode->VDisplay > ++ best->HDisplay * best->VDisplay) ++ { ++ best = mode; ++ continue; ++ } ++ if (mode->HDisplay * mode->VDisplay == ++ best->HDisplay * best->VDisplay) ++ { ++ double mode_refresh = xf86ModeVRefresh (mode); ++ double best_refresh = xf86ModeVRefresh (best); ++ double mode_dist = fabs(mode_refresh - target_refresh); ++ double best_dist = fabs(best_refresh - target_refresh); ++ ++ if (mode_dist < best_dist) ++ { ++ best = mode; ++ continue; ++ } ++ } ++ } ++ if (best) ++ best->type |= M_T_PREFERRED; ++} ++ + _X_EXPORT DisplayModePtr + xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC) + { +@@ -312,15 +476,9 @@ xf86DDCGetModes(int scrnIndex, xf86MonPt + + xf86DrvMsg (scrnIndex, X_INFO, "EDID vendor \"%s\", prod id %d\n", + DDC->vendor.name, DDC->vendor.prod_id); +- quirks = DDC_QUIRK_NONE; +- for (i = 0; ddc_quirks[i].detect; i++) +- if (ddc_quirks[i].detect (scrnIndex, DDC)) +- { +- xf86DrvMsg (scrnIndex, X_INFO, " EDID quirk: %s\n", +- ddc_quirks[i].description); +- quirks |= ddc_quirks[i].quirk; +- } +- ++ ++ quirks = xf86DDCDetectQuirks(scrnIndex, DDC, TRUE); ++ + preferred = PREFERRED_TIMING_MODE(DDC->features.msc); + if (quirks & DDC_QUIRK_PREFER_LARGE_60) + preferred = 0; +@@ -357,32 +515,11 @@ xf86DDCGetModes(int scrnIndex, xf86MonPt + Modes = xf86ModesAdd(Modes, Mode); + + if (quirks & DDC_QUIRK_PREFER_LARGE_60) +- { +- DisplayModePtr best = Modes; +- for (Mode = Modes; Mode; Mode = Mode->next) +- { +- if (Mode == best) continue; +- if (Mode->HDisplay * Mode->VDisplay > best->HDisplay * best->VDisplay) +- { +- best = Mode; +- continue; +- } +- if (Mode->HDisplay * Mode->VDisplay == best->HDisplay * best->VDisplay) +- { +- double mode_refresh = xf86ModeVRefresh (Mode); +- double best_refresh = xf86ModeVRefresh (best); +- double mode_dist = fabs(mode_refresh - 60.0); +- double best_dist = fabs(best_refresh - 60.0); +- if (mode_dist < best_dist) +- { +- best = Mode; +- continue; +- } +- } +- } +- if (best) +- best->type |= M_T_PREFERRED; +- } ++ xf86DDCSetPreferredRefresh(scrnIndex, Modes, 60); ++ ++ if (quirks & DDC_QUIRK_PREFER_LARGE_75) ++ xf86DDCSetPreferredRefresh(scrnIndex, Modes, 75); ++ + return Modes; + } + +--- a/hw/xfree86/modes/xf86Modes.h ++++ b/hw/xfree86/modes/xf86Modes.h +@@ -95,4 +95,7 @@ xf86GetMonitorModes (ScrnInfoPtr pScrn, + DisplayModePtr + xf86GetDefaultModes (Bool interlaceAllowed, Bool doubleScanAllowed); + ++void ++xf86DDCApplyQuirks(int scrnIndex, xf86MonPtr DDC); ++ + #endif /* _XF86MODES_H_ */ diff --git a/xserver-1.3.0-xorg-conf-man-randr-update.patch b/xserver-1.3.0-xorg-conf-man-randr-update.patch new file mode 100644 index 0000000..ffe70da --- /dev/null +++ b/xserver-1.3.0-xorg-conf-man-randr-update.patch @@ -0,0 +1,2374 @@ +diff -up xorg-server-1.3.0.0/hw/xfree86/doc/man/xorg.conf.man.pre.da xorg-server-1.3.0.0/hw/xfree86/doc/man/xorg.conf.man.pre +--- xorg-server-1.3.0.0/hw/xfree86/doc/man/xorg.conf.man.pre.da 2007-10-05 11:43:43.000000000 +1000 ++++ xorg-server-1.3.0.0/hw/xfree86/doc/man/xorg.conf.man.pre 2007-10-05 11:43:52.000000000 +1000 +@@ -3,7 +3,7 @@ + .ds q \N'34' + .TH __xconfigfile__ __filemansuffix__ __vendorversion__ + .SH NAME +-__xconfigfile__ - Configuration File for __xservername__ ++__xconfigfile__ \- configuration File for __xservername__ X server + .SH INTRODUCTION + .B __xservername__ + supports several mechanisms for supplying/obtaining configuration and +@@ -21,9 +21,10 @@ manual page. + .SH DESCRIPTION + .B __xservername__ + uses a configuration file called +-.B __xconfigfile__ +-for its initial setup. This configuration file is searched for in the +-following places when the server is started as a normal user: ++.I __xconfigfile__ ++for its initial setup. ++This configuration file is searched for in the following places when the ++server is started as a normal user: + .PP + .RS 4 + .nf +@@ -31,30 +32,31 @@ following places when the server is star + .IR __projectroot__/etc/X11/ + .IB /etc/X11/ $XORGCONFIG + .IB __projectroot__/etc/X11/ $XORGCONFIG +-.I /etc/X11/__xconfigfile__-4 ++.I /etc/X11/__xconfigfile__\-4 + .I /etc/X11/__xconfigfile__ + .I /etc/__xconfigfile__ + .IR __projectroot__/etc/X11/__xconfigfile__. +-.I __projectroot__/etc/X11/__xconfigfile__-4 ++.I __projectroot__/etc/X11/__xconfigfile__\-4 + .I __projectroot__/etc/X11/__xconfigfile__ + .IR __projectroot__/lib/X11/__xconfigfile__. +-.I __projectroot__/lib/X11/__xconfigfile__-4 ++.I __projectroot__/lib/X11/__xconfigfile__\-4 + .I __projectroot__/lib/X11/__xconfigfile__ + .fi + .RE + .PP + where + .I +-is a relative path (with no ".." components) specified with the ++is a relative path (with no \(lq..\(rq components) specified with the + .B \-config + command line option, + .B $XORGCONFIG +-is the relative path (with no ".." components) specified by that ++is the relative path (with no \(lq..\(rq components) specified by that + environment variable, and + .I +-is the machine's hostname as reported by gethostname(3). ++is the machine's hostname as reported by ++.BR gethostname (__oslibmansuffix__). + .PP +-When the __xservername__ server is started by the "root" user, the config file ++When the __xservername__ server is started by the \(lqroot\(rq user, the config file + search locations are as follows: + .PP + .RS 4 +@@ -66,14 +68,14 @@ search locations are as follows: + .IB /etc/X11/ $XORGCONFIG + .IB __projectroot__/etc/X11/ $XORGCONFIG + .BI $HOME /__xconfigfile__ +-.I /etc/X11/__xconfigfile__-4 ++.I /etc/X11/__xconfigfile__\-4 + .I /etc/X11/__xconfigfile__ + .I /etc/__xconfigfile__ + .IR __projectroot__/etc/X11/__xconfigfile__. +-.I __projectroot__/etc/X11/__xconfigfile__-4 ++.I __projectroot__/etc/X11/__xconfigfile__\-4 + .I __projectroot__/etc/X11/__xconfigfile__ + .IR __projectroot__/lib/X11/__xconfigfile__. +-.I __projectroot__/lib/X11/__xconfigfile__-4 ++.I __projectroot__/lib/X11/__xconfigfile__\-4 + .I __projectroot__/lib/X11/__xconfigfile__ + .fi + .RE +@@ -90,13 +92,13 @@ environment variable (absolute or relati + is the path specified by that environment variable (usually the home + directory), and + .I +-is the machine's hostname as reported by gethostname(3). ++is the machine's hostname as reported by ++.BR gethostname (__oslibmansuffix__). + .PP + The +-.B __xconfigfile__ +-file is composed of a number of sections which may be present in any +-order. Each section has +-the form: ++.I __xconfigfile__ ++file is composed of a number of sections which may be present in any order. ++Each section has the form: + .PP + .RS 4 + .nf +@@ -121,13 +123,14 @@ The section names are: + .BR "Modes " "Video modes descriptions" + .BR "Screen " "Screen configuration" + .BR "ServerLayout " "Overall layout" +-.BR "DRI " "DRI-specific configuration" +-.BR "Vendor " "Vendor-specific configuration" ++.BR "DRI " "DRI\-specific configuration" ++.BR "Vendor " "Vendor\-specific configuration" + .fi + .RE + .PP + The following obsolete section names are still recognised for compatibility +-purposes. In new config files, the ++purposes. ++In new config files, the + .B InputDevice + section should be used instead. + .PP +@@ -144,35 +147,38 @@ section is no longer recognised. + .PP + The + .B ServerLayout +-sections are at the highest level. They bind together the input and +-output devices that will be used in a session. The input devices +-are described in the ++sections are at the highest level. ++They bind together the input and output devices that will be used in a session. ++The input devices are described in the + .B InputDevice +-sections. Output devices usually consist of multiple independent +-components (e.g., a graphics board and a monitor). These multiple +-components are bound together in the ++sections. ++Output devices usually consist of multiple independent components (e.g., ++a graphics board and a monitor). ++These multiple components are bound together in the + .B Screen + sections, and it is these that are referenced by the + .B ServerLayout +-section. Each ++section. ++Each + .B Screen +-section binds together a graphics board and a monitor. The graphics +-boards are described in the ++section binds together a graphics board and a monitor. ++The graphics boards are described in the + .B Device + sections, and the monitors are described in the + .B Monitor + sections. + .PP +-Config file keywords are case-insensitive, and "_" characters are +-ignored. Most strings (including ++Config file keywords are case\-insensitive, and \(lq_\(rq characters are ++ignored. ++Most strings (including + .B Option + names) are also case-insensitive, and insensitive to white space and +-"_" characters. ++\(lq_\(rq characters. + .PP +-Each config file entry usually takes up a single line in the file. +-They consist of a keyword, which is possibly followed by one or +-more arguments, with the number and types of the arguments depending +-on the keyword. The argument types are: ++Each config file entry usually takes up a single line in the file. They ++consist of a keyword, which is possibly followed by one or more arguments, ++with the number and types of the arguments depending on the keyword. ++The argument types are: + .PP + .RS 4 + .nf +@@ -182,17 +188,18 @@ on the keyword. The argument types are: + .fi + .RE + .PP +-Note: hex integer values must be prefixed with "0x", and octal values +-with "0". ++Note: hex integer values must be prefixed with \(lq0x\(rq, and octal values ++with \(lq0\(rq. + .PP + A special keyword called + .B Option +-may be used to provide free-form data to various components of the server. ++may be used to provide free\-form data to various components of the server. + The + .B Option +-keyword takes either one or two string arguments. The first is the option +-name, and the optional second argument is the option value. Some commonly +-used option value types include: ++keyword takes either one or two string arguments. ++The first is the option name, and the optional second argument is the ++option value. ++Some commonly used option value types include: + .PP + .RS 4 + .nf +@@ -209,8 +216,8 @@ Note that + .B Option + values, not just strings, must be enclosed in quotes. + .PP +-Boolean options may optionally have a value specified. When no value +-is specified, the option's value is ++Boolean options may optionally have a value specified. ++When no value is specified, the option's value is + .BR TRUE . + The following boolean option values are recognised as + .BR TRUE : +@@ -263,56 +270,97 @@ When the unit name is omitted, the corre + the value and the expectations of the appropriate range of the value. + It is recommended that the units always be specified when using frequency + option values to avoid any errors in determining the value. +-.SH FILES SECTION ++.SH "FILES SECTION" + The + .B Files + section is used to specify some path names required by the server. +-Some of these paths can also be set from the command line (see Xserver(__appmansuffix__) +-and __xservername__(__appmansuffix__)). The command line settings override the values specified +-in the config file. The ++Some of these paths can also be set from the command line (see ++.BR Xserver (__appmansuffix__) ++and ++.BR __xservername__ (__appmansuffix__)). ++The command line settings override the values specified in the config ++file. ++The + .B Files + section is optional, as are all of the entries that may appear in it. + .PP + The entries that can appear in this section are: + .TP 7 + .BI "FontPath \*q" path \*q +-sets the search path for fonts. This path is a comma separated list of +-font path elements which the __xservername__ server searches for font databases. ++sets the search path for fonts. ++This path is a comma separated list of font path elements which the __xservername__ ++server searches for font databases. + Multiple + .B FontPath + entries may be specified, and they will be concatenated to build up the +-fontpath used by the server. Font path elements may be either absolute +-directory paths, or a font server identifier. Font server identifiers +-have the form: ++fontpath used by the server. Font path elements can be absolute ++directory paths, catalogue directories or a font server identifier. The ++formats of the later two are explained below: + .PP +-.RS 11 +-.IR / : ++.RS 7 ++Catalogue directories: ++.PP ++.RS 4 ++Catalogue directories can be specified using the prefix \fBcatalogue:\fR ++before the directory name. The directory can then be populated with ++symlinks pointing to the real font directories, using the following ++syntax in the symlink name: ++.PP ++.RS 4 ++.IR : [attribute]: pri= + .RE + .PP ++where ++.I ++is an alphanumeric identifier, ++.I [attribute] ++is an attribute wich will be passed to the underlying FPE and ++.I ++is a number used to order the fontfile FPEs. Examples: ++.PP ++.RS 4 ++.nf ++.I 75dpi:unscaled:pri=20 -> /usr/share/X11/fonts/75dpi ++.I gscript:pri=60 -> /usr/share/fonts/default/ghostscript ++.I misc:unscaled:pri=10 \-> /usr/share/X11/fonts/misc ++.fi ++.PP ++.RE .RE .RE ++.PP + .RS 7 ++Font server identifiers: ++.PP ++.RS 4 ++Font server identifiers have the form: ++.RS 4 ++.PP ++.IR / : ++.RE ++.PP + where + .I + is the transport type to use to connect to the font server (e.g., + .B unix +-for UNIX-domain sockets or ++for UNIX\-domain sockets or + .B tcp + for a TCP/IP connection), + .I + is the hostname of the machine running the font server, and +-.I ++.I + is the port number that the font server is listening on (usually 7100). ++.RE + .PP + When this entry is not specified in the config file, the server falls back +-to the compiled-in default font path, which contains the following +-font path elements: ++to the compiled\-in default font path, which contains the following ++font path elements (which can be set inside a catalogue directory): + .PP + .RS 4 + .nf +-.I __projectroot__/share/X11/fonts/misc/ +-.I __projectroot__/share/X11/fonts/TTF/ +-.I __projectroot__/share/X11/fonts/Type1/ +-.I __projectroot__/share/X11/fonts/75dpi/ +-.I __projectroot__/share/X11/fonts/100dpi/ ++.I __projectroot__/lib/X11/fonts/misc/ ++.I __projectroot__/lib/X11/fonts/TTF/ ++.I __projectroot__/lib/X11/fonts/Type1/ ++.I __projectroot__/lib/X11/fonts/75dpi/ ++.I __projectroot__/lib/X11/fonts/100dpi/ + .fi + .RE + .PP +@@ -320,14 +368,14 @@ The recommended font path contains the f + .PP + .RS 4 + .nf +-.I __projectroot__/share/X11/fonts/local/ +-.I __projectroot__/share/X11/fonts/misc/ +-.I __projectroot__/share/X11/fonts/75dpi/:unscaled +-.I __projectroot__/share/X11/fonts/100dpi/:unscaled +-.I __projectroot__/share/X11/fonts/Type1/ +-.I __projectroot__/share/X11/fonts/Speedo/ +-.I __projectroot__/share/X11/fonts/75dpi/ +-.I __projectroot__/share/X11/fonts/100dpi/ ++.I __projectroot__/lib/X11/fonts/local/ ++.I __projectroot__/lib/X11/fonts/misc/ ++.I __projectroot__/lib/X11/fonts/75dpi/:unscaled ++.I __projectroot__/lib/X11/fonts/100dpi/:unscaled ++.I __projectroot__/lib/X11/fonts/Type1/ ++.I __projectroot__/lib/X11/fonts/Speedo/ ++.I __projectroot__/lib/X11/fonts/75dpi/ ++.I __projectroot__/lib/X11/fonts/100dpi/ + .fi + .RE + .PP +@@ -338,7 +386,7 @@ font path when the server starts up. + .BI "RGBPath \*q" path \*q + sets the path name for the RGB color database. + When this entry is not specified in the config file, the server falls back +-to the compiled-in default RGB path, which is: ++to the compiled\-in default RGB path, which is: + .PP + .RS 11 + .I __projectroot__/share/X11/rgb +@@ -350,9 +398,10 @@ is added to this path if the server was + binary format RGB color databases. + .TP 7 + .BI "ModulePath \*q" path \*q +-sets the search path for loadable __xservername__ server modules. This path is +-a comma separated list of directories which the __xservername__ server searches +-for loadable modules loading in the order specified. Multiple ++sets the search path for loadable __xservername__ server modules. ++This path is a comma separated list of directories which the __xservername__ server ++searches for loadable modules loading in the order specified. ++Multiple + .B ModulePath + entries may be specified, and they will be concatenated to build the + module search path used by the server. +@@ -360,8 +409,8 @@ module search path used by the server. + .ig + .TP 7 + .BI "LogFile \*q" path \*q +-sets the name of the __xservername__ server log file. The default log file name +-is ++sets the name of the __xservername__ server log file. ++The default log file name is + .PP + .RS 11 + .RI __logdir__/__xservername__. .log +@@ -372,15 +421,18 @@ where + .I + is the display number for the __xservername__ server. + .. +-.SH SERVERFLAGS SECTION ++.SH "SERVERFLAGS SECTION" + In addition to options specific to this section (described below), the + .B ServerFlags + section is used to specify some global +-__xservername__ server options. All of the entries in this section are ++__xservername__ server options. ++All of the entries in this section are + .BR Options , + although for compatibility purposes some of the old style entries are +-still recognised. Those old style entries are not documented here, and +-using them is discouraged. The ++still recognised. ++Those old style entries are not documented here, and using them is ++discouraged. ++The + .B ServerFlags + section is optional, as are the entries that may be specified in it. + .PP +@@ -392,11 +444,12 @@ may be overridden by + .B Options + specified in the active + .B ServerLayout +-section. Options with command line equivalents are overridden when their +-command line equivalent is used. The options recognised by this section +-are: ++section. ++Options with command line equivalents are overridden when their command ++line equivalent is used. ++The options recognised by this section are: + .TP 7 +-.BI "Option \*qDefaultServerLayout\*q \*q" layout-id \*q ++.BI "Option \*qDefaultServerLayout\*q \*q" layout\-id \*q + This specifies the default + .B ServerLayout + section to use in the absence of the +@@ -404,148 +457,185 @@ section to use in the absence of the + command line option. + .TP 7 + .BI "Option \*qNoTrapSignals\*q \*q" boolean \*q +-This prevents the __xservername__ server from trapping a range of unexpected +-fatal signals and exiting cleanly. Instead, the __xservername__ server will die +-and drop core where the fault occurred. The default behaviour is +-for the __xservername__ server to exit cleanly, but still drop a core file. In +-general you never want to use this option unless you are debugging +-an __xservername__ server problem and know how to deal with the consequences. ++This prevents the __xservername__ server from trapping a range of unexpected fatal ++signals and exiting cleanly. ++Instead, the __xservername__ server will die and drop core where the fault occurred. ++The default behaviour is for the __xservername__ server to exit cleanly, but still drop a ++core file. ++In general you never want to use this option unless you are debugging an __xservername__ ++server problem and know how to deal with the consequences. + .TP 7 + .BI "Option \*qDontVTSwitch\*q \*q" boolean \*q + This disallows the use of the + .BI Ctrl+Alt+F n + sequence (where + .RI F n +-refers to one of the numbered function keys). That sequence is normally +-used to switch to another \*qvirtual terminal\*q on operating systems +-that have this feature. When this option is enabled, that key sequence has +-no special meaning and is passed to clients. Default: off. ++refers to one of the numbered function keys). ++That sequence is normally used to switch to another \*qvirtual terminal\*q ++on operating systems that have this feature. ++When this option is enabled, that key sequence has no special meaning and ++is passed to clients. ++Default: off. + .TP 7 + .BI "Option \*qDontZap\*q \*q" boolean \*q + This disallows the use of the + .B Ctrl+Alt+Backspace +-sequence. That sequence is normally used to terminate the __xservername__ server. +-When this option is enabled, that key sequence has no special meaning +-and is passed to clients. Default: off. ++sequence. ++That sequence is normally used to terminate the __xservername__ server. ++When this option is enabled, that key sequence has no special meaning and ++is passed to clients. ++Default: off. + .TP 7 + .BI "Option \*qDontZoom\*q \*q" boolean \*q + This disallows the use of the +-.B Ctrl+Alt+Keypad-Plus ++.B Ctrl+Alt+Keypad\-Plus + and +-.B Ctrl+Alt+Keypad-Minus +-sequences. These sequences allows you to switch between video modes. ++.B Ctrl+Alt+Keypad\-Minus ++sequences. ++These sequences allows you to switch between video modes. + When this option is enabled, those key sequences have no special meaning +-and are passed to clients. Default: off. ++and are passed to clients. ++Default: off. + .TP 7 + .BI "Option \*qDisableVidModeExtension\*q \*q" boolean \*q + This disables the parts of the VidMode extension used by the xvidtune client +-that can be used to change the video modes. Default: the VidMode extension +-is enabled. ++that can be used to change the video modes. ++Default: the VidMode extension is enabled. + .TP 7 + .BI "Option \*qAllowNonLocalXvidtune\*q \*q" boolean \*q + This allows the xvidtune client (and other clients that use the VidMode +-extension) to connect from another host. Default: off. ++extension) to connect from another host. ++Default: off. + .TP 7 + .BI "Option \*qDisableModInDev\*q \*q" boolean \*q +-This disables the parts of the __xservername__-Misc extension that can be used to +-modify the input device settings dynamically. Default: that functionality +-is enabled. ++This disables the parts of the __xservername__\-Misc extension that can be used to ++modify the input device settings dynamically. ++Default: that functionality is enabled. + .TP 7 + .BI "Option \*qAllowNonLocalModInDev\*q \*q" boolean \*q + This allows a client to connect from another host and change keyboard +-and mouse settings in the running server. Default: off. ++and mouse settings in the running server. ++Default: off. + .TP 7 + .BI "Option \*qAllowMouseOpenFail\*q \*q" boolean \*q + This allows the server to start up even if the mouse device can't be +-opened/initialised. Default: false. ++opened/initialised. ++Default: false. + .TP 7 + .BI "Option \*qVTInit\*q \*q" command \*q + Runs + .I command + after the VT used by the server has been opened. +-The command string is passed to "/bin/sh -c", and is run with the +-real user's id with stdin and stdout set to the VT. The purpose +-of this option is to allow system dependent VT initialisation +-commands to be run. This option should rarely be needed. Default: not set. ++The command string is passed to \*q/bin/sh \-c\*q, and is run with the real ++user's id with stdin and stdout set to the VT. ++The purpose of this option is to allow system dependent VT initialisation ++commands to be run. ++This option should rarely be needed. ++Default: not set. + .TP 7 + .BI "Option \*qVTSysReq\*q \*q" boolean \*q +-enables the SYSV-style VT switch sequence for non-SYSV systems +-which support VT switching. This sequence is +-.B Alt-SysRq +-followed +-by a function key ++enables the SYSV\-style VT switch sequence for non\-SYSV systems ++which support VT switching. ++This sequence is ++.B Alt\-SysRq ++followed by a function key + .RB ( Fn ). + This prevents the __xservername__ server trapping the + keys used for the default VT switch sequence, which means that clients can +-access them. Default: off. ++access them. ++Default: off. + .TP 7 + .BI "Option \*qXkbDisable\*q \*q" boolean \*q +-disable/enable the XKEYBOARD extension. The \-kb command line +-option overrides this config file option. Default: XKB is enabled. ++disable/enable the XKEYBOARD extension. ++The \-kb command line option overrides this config file option. ++Default: XKB is enabled. + .\" The following four options are "undocumented". + .ig + .TP 7 + .BI "Option \*qPciProbe1\*q" +-Use PCI probe method 1. Default: set. ++Use PCI probe method 1. ++Default: set. + .TP 7 + .BI "Option \*qPciProbe2\*q" +-Use PCI probe method 2. Default: not set. ++Use PCI probe method 2. ++Default: not set. + .TP 7 + .BI "Option \*qPciForceConfig1\*q" +-Force the use PCI config type 1. Default: not set. ++Force the use PCI config type 1. ++Default: not set. + .TP 7 + .BI "Option \*qPciForceConfig2\*q" +-Force the use PCI config type 2. Default: not set. ++Force the use PCI config type 2. ++Default: not set. + .. + .TP 7 + .BI "Option \*qBlankTime\*q \*q" time \*q +-sets the inactivity timeout for the blanking phase of the screensaver. ++sets the inactivity timeout for the ++.B blank ++phase of the screensaver. + .I time +-is in minutes. This is equivalent to the __xservername__ server's `-s' flag, +-and the value can be changed at run-time with xset(__appmansuffix__). Default: 10 +-minutes. ++is in minutes. ++This is equivalent to the __xservername__ server's ++.B \-s ++flag, and the value can be changed at run\-time with ++.BR xset(__appmansuffix__). ++Default: 10 minutes. + .TP 7 + .BI "Option \*qStandbyTime\*q \*q" time \*q +-sets the inactivity timeout for the "standby" phase of DPMS mode. ++sets the inactivity timeout for the ++.B standby ++phase of DPMS mode. + .I time +-is in minutes, and the value can be changed at run-time with xset(__appmansuffix__). +-Default: 20 minutes. This is only suitable for VESA DPMS compatible +-monitors, and may not be supported by all video drivers. It is only +-enabled for screens that have the ++is in minutes, and the value can be changed at run\-time with ++.BR xset(__appmansuffix__). ++Default: 20 minutes. ++This is only suitable for VESA DPMS compatible monitors, and may not be ++supported by all video drivers. ++It is only enabled for screens that have the + .B \*qDPMS\*q + option set (see the MONITOR section below). + .TP 7 + .BI "Option \*qSuspendTime\*q \*q" time \*q +-sets the inactivity timeout for the "suspend" phase of DPMS mode. ++sets the inactivity timeout for the ++.B suspend ++phase of DPMS mode. + .I time +-is in minutes, and the value can be changed at run-time with xset(__appmansuffix__). +-Default: 30 minutes. This is only suitable for VESA DPMS compatible +-monitors, and may not be supported by all video drivers. It is only +-enabled for screens that have the ++is in minutes, and the value can be changed at run\-time with ++.BR xset(__appmansuffix__). ++Default: 30 minutes. ++This is only suitable for VESA DPMS compatible monitors, and may not be ++supported by all video drivers. ++It is only enabled for screens that have the + .B \*qDPMS\*q + option set (see the MONITOR section below). + .TP 7 + .BI "Option \*qOffTime\*q \*q" time \*q +-sets the inactivity timeout for the "off" phase of DPMS mode. ++sets the inactivity timeout for the ++.B off ++phase of DPMS mode. + .I time +-is in minutes, and the value can be changed at run-time with xset(__appmansuffix__). +-Default: 40 minutes. This is only suitable for VESA DPMS compatible +-monitors, and may not be supported by all video drivers. It is only +-enabled for screens that have the ++is in minutes, and the value can be changed at run\-time with ++.BR xset(__appmansuffix__). ++Default: 40 minutes. ++This is only suitable for VESA DPMS compatible monitors, and may not be ++supported by all video drivers. ++It is only enabled for screens that have the + .B \*qDPMS\*q + option set (see the MONITOR section below). + .TP 7 + .BI "Option \*qPixmap\*q \*q" bpp \*q +-This sets the pixmap format to use for depth 24. Allowed values for ++This sets the pixmap format to use for depth 24. ++Allowed values for + .I bpp +-are 24 and 32. Default: 32 unless driver constraints don't allow this +-(which is rare). Note: some clients don't behave well when this value +-is set to 24. ++are 24 and 32. ++Default: 32 unless driver constraints don't allow this (which is rare). ++Note: some clients don't behave well when this value is set to 24. + .TP 7 + .BI "Option \*qPC98\*q \*q" boolean \*q +-Specify that the machine is a Japanese PC-98 machine. This should not +-be enabled for anything other than the Japanese-specific PC-98 +-architecture. Default: auto-detected. ++Specify that the machine is a Japanese PC\-98 machine. ++This should not be enabled for anything other than the Japanese\-specific ++PC\-98 architecture. ++Default: auto\-detected. + .\" Doubt this should be documented. + .ig + .TP 7 +@@ -555,48 +645,54 @@ Default: 0. + .. + .TP 7 + .BI "Option \*qNoPM\*q \*q" boolean \*q +-Disables something to do with power management events. Default: PM +-enabled on platforms that support it. ++Disables something to do with power management events. ++Default: PM enabled on platforms that support it. + .TP 7 + .BI "Option \*qXinerama\*q \*q" boolean \*q +-enable or disable XINERAMA extension. Default is disabled. ++enable or disable XINERAMA extension. ++Default is disabled. + .TP 7 + .BI "Option \*qAllowDeactivateGrabs\*q \*q" boolean \*q + This option enables the use of the +-.B Ctrl+Alt+Keypad-Divide +-key sequence to deactivate any active keyboard and mouse grabs. Default: +-off. ++.B Ctrl+Alt+Keypad\-Divide ++key sequence to deactivate any active keyboard and mouse grabs. ++Default: off. + .TP 7 + .BI "Option \*qAllowClosedownGrabs\*q \*q" boolean \*q + This option enables the use of the +-.B Ctrl+Alt+Keypad-Multiply +-key sequence to kill clients with an active keyboard or mouse grab as +-well as killing any application that may have locked the server, normally +-using the XGrabServer(__libmansuffix__) Xlib function. Default: off. ++.B Ctrl+Alt+Keypad\-Multiply ++key sequence to kill clients with an active keyboard or mouse grab as well ++as killing any application that may have locked the server, normally using ++the ++.BR XGrabServer(__libmansuffix__) ++Xlib function. ++Default: off. + .br + Note that the options +-.BI AllowDeactivateGrabs ++.B AllowDeactivateGrabs + and +-.BI AllowClosedownGrabs ++.B AllowClosedownGrabs + will allow users to remove the grab used by screen saver/locker programs. +-An API was written to such cases. If you enable this option, make sure +-your screen saver/locker is updated. ++An API was written to such cases. ++If you enable this option, make sure your screen saver/locker is updated. ++Default: off. + .TP 7 + .BI "Option \*qHandleSpecialKeys\*q \*q" when \*q + This option controls when the server uses the builtin handler to process + special key combinations (such as + .BR Ctrl+Alt+Backspace ). +-Normally the XKEYBOARD extension keymaps will provide mappings for each +-of the special key combinations, so the builtin handler is not needed +-unless the XKEYBOARD extension is disabled. The value of ++Normally the XKEYBOARD extension keymaps will provide mappings for each of ++the special key combinations, so the builtin handler is not needed unless ++the XKEYBOARD extension is disabled. ++The value of + .I when + can be + .BR Always , + .BR Never , + or + .BR WhenNeeded . +-Default: Use the builtin handler only if needed. The server will scan +-the keymap for a mapping to the ++Default: Use the builtin handler only if needed. ++The server will scan the keymap for a mapping to the + .B Terminate + action and, if found, use XKEYBOARD for processing actions, otherwise + the builtin handler will be used. +@@ -604,24 +700,30 @@ the builtin handler will be used. + .BI "Option \*qAIGLX\*q \*q" boolean \*q + enable or disable AIGLX. AIGLX is enabled by default. + .TP 7 ++.BI "Option \*qUseDefaultFontPath\*q \*q" boolean \*q ++Include the default font path even if other paths are specified in ++xorg.conf. If enabled, other font paths are included as well. Enabled by ++default. ++.TP 7 + .BI "Option \*qIgnoreABI\*q \*q" boolean \*q + Allow modules built for a different, potentially incompatible version of + the X server to load. Disabled by default. +-.SH MODULE SECTION ++.SH "MODULE SECTION" + The + .B Module + section is used to specify which __xservername__ server modules should be loaded. + This section is ignored when the __xservername__ server is built in static form. + The types of modules normally loaded in this section are __xservername__ server +-extension modules, and font rasteriser modules. Most other module types +-are loaded automatically when they are needed via other mechanisms. ++extension modules, and font rasteriser modules. ++Most other module types are loaded automatically when they are needed via ++other mechanisms. + The + .B Module + section is optional, as are all of the entries that may be specified in + it. + .PP +-Entries in this section may be in two forms. The first and most commonly +-used form is an entry that uses the ++Entries in this section may be in two forms. ++The first and most commonly used form is an entry that uses the + .B Load + keyword, as described here: + .TP 7 +@@ -629,16 +731,31 @@ keyword, as described here: + This instructs the server to load the module called + .IR modulename . + The module name given should be the module's standard name, not the +-module file name. The standard name is case-sensitive, and does not +-include the "lib" prefix, or the ".a", ".o", or ".so" suffixes. ++module file name. ++The standard name is case\-sensitive, and does not include the \(lqlib\(rq ++prefix, or the \(lq.a\(rq, \(lq.o\(rq, or \(lq.so\(rq suffixes. + .PP + .RS 7 +-Example: the Type 1 font rasteriser can be loaded with the following entry: ++Example: the FreeType font rasteriser can be loaded with the following entry: + .PP + .RS 4 +-.B "Load \*qtype1\*q" ++.B "Load \*qfreetype\*q" + .RE + .RE ++.TP 7 ++.BI "Disable \*q" modulename \*q ++This instructs the server to not load the module called ++.IR modulename . ++Some modules are loaded by default in the server, and this overrides that ++default. If a ++.B Load ++instruction is given for the same module, it overrides the ++.B Disable ++instruction and the module is loaded. The module name given should be the ++module's standard name, not the module file name. As with the ++.B Load ++instruction, the standard name is case-sensitive, and does not include the ++"lib" prefix, or the ".a", ".o", or ".so" suffixes. + .PP + The second form of entry is a + .BR SubSection, +@@ -649,13 +766,13 @@ being + that are passed to the module when it is loaded. + .PP + Example: the extmod module (which contains a miscellaneous group of +-server extensions) can be loaded, with the XFree86-DGA extension ++server extensions) can be loaded, with the XFree86\-DGA extension + disabled by using the following entry: + .PP + .RS 4 + .nf + .B "SubSection \*qextmod\*q" +-.B " Option \*qomit XFree86-DGA\*q" ++.B " Option \*qomit XFree86\-DGA\*q" + .B EndSubSection + .fi + .RE +@@ -677,17 +794,20 @@ __projectroot__/lib/modules/extensions + .fi + .RE + .PP +-The "bitmap" font modules is loaded automatically. It is recommended +-that at very least the "extmod" extension module be loaded. If it isn't +-some commonly used server extensions (like the SHAPE extension) will not be +-available. +-.SH INPUTDEVICE SECTION ++The \(lqbitmap\(rq font module is loaded automatically. ++It is recommended ++that at very least the \(lqextmod\(rq extension module be loaded. ++If it isn't, some commonly used server extensions (like the SHAPE ++extension) will not be available. ++.SH "INPUTDEVICE SECTION" + The config file may have multiple + .B InputDevice +-sections. There will normally be at least two: one for the core (primary) +-keyboard, and one of the core pointer. If either of these two is missing, +-a default configuration for the missing ones will be used. Currently the +-default configuration may not work as expected on all platforms. ++sections. ++There will normally be at least two: one for the core (primary) keyboard, ++and one of the core pointer. ++If either of these two is missing, a default configuration for the missing ++ones will be used. ++Currently the default configuration may not work as expected on all platforms. + .PP + .B InputDevice + sections have the following format: +@@ -709,18 +829,21 @@ and + .B Driver + entries are required in all + .B InputDevice +-sections. All other entries are optional. ++sections. ++All other entries are optional. + .PP + The + .B Identifier +-entry specifies the unique name for this input device. The ++entry specifies the unique name for this input device. ++The + .B Driver + entry specifies the name of the driver to use for this input device. + When using the loadable server, the input driver module + .RI \*q inputdriver \*q + will be loaded for each active + .B InputDevice +-section. An ++section. ++An + .B InputDevice + section is considered active if it is referenced by an active + .B ServerLayout +@@ -730,7 +853,10 @@ or + .B \-pointer + command line options, or if it is selected implicitly as the core pointer + or keyboard device in the absence of such explicit references. +-The most commonly used input drivers are "keyboard" and "mouse". ++The most commonly used input drivers are ++.BR keyboard (__drivermansuffix__) ++and ++.BR mouse (__drivermansuffix__). + .PP + In the absence of an explicitly specified core input device, the first + .B InputDevice +@@ -738,21 +864,24 @@ marked as + .B CorePointer + (or + .BR CoreKeyboard ) +-is used. If there is no match there, the first ++is used. ++If there is no match there, the first + .B InputDevice +-that uses the "mouse" (or "keyboard" or "kbd") driver is used. The final +-fallback is to use built-in default configurations. ++that uses the \(lqmouse\(rq (or \(lqkeyboard\(rq or \(lqkbd\(rq) driver is used. ++The final fallback is to use built\-in default configurations. + .PP + .B InputDevice +-sections recognise some driver-independent ++sections recognise some driver\-independent + .BR Options , +-which are described here. See the individual input driver manual pages +-for a description of the device-specific options. ++which are described here. ++See the individual input driver manual pages for a description of the ++device\-specific options. + .TP 7 + .BI "Option \*qCorePointer\*q" + When this is set, the input device is installed as the core (primary) +-pointer device. There must be exactly one core pointer. If this option +-is not set here, or in the ++pointer device. ++There must be exactly one core pointer. ++If this option is not set here, or in the + .B ServerLayout + section, or from the + .B \-pointer +@@ -764,8 +893,9 @@ section is used. + .TP 7 + .BI "Option \*qCoreKeyboard\*q" + When this is set, the input device is to be installed as the core +-(primary) keyboard device. There must be exactly one core keyboard. If +-this option is not set here, in the ++(primary) keyboard device. ++There must be exactly one core keyboard. ++If this option is not set here, in the + .B ServerLayout + section, or from the + .B \-keyboard +@@ -779,19 +909,21 @@ section is used. + .TP 7 + .BI "Option \*qSendCoreEvents\*q \*q" boolean \*q + Both of these options are equivalent, and when enabled cause the +-input device to always report core events. This can be used, for +-example, to allow an additional pointer device to generate core +-pointer events (like moving the cursor, etc). ++input device to always report core events. ++This can be used, for example, to allow an additional pointer device to ++generate core pointer events (like moving the cursor, etc). + .TP 4 + .BI "Option \*qHistorySize\*q \*q" number \*q +-Sets the motion history size. Default: 0. ++Sets the motion history size. ++Default: 0. + .TP 7 + .BI "Option \*qSendDragEvents\*q \*q" boolean \*q + ??? +-.SH DEVICE SECTION ++.SH "DEVICE SECTION" + The config file may have multiple + .B Device +-sections. There must be at least one, for the video card being used. ++sections. ++There must be at least one, for the video card being used. + .PP + .B Device + sections have the following format: +@@ -817,27 +949,30 @@ sections. All other entries are optiona + .PP + The + .B Identifier +-entry specifies the unique name for this graphics device. The ++entry specifies the unique name for this graphics device. ++The + .B Driver + entry specifies the name of the driver to use for this graphics device. + When using the loadable server, the driver module + .RI \*q driver \*q + will be loaded for each active + .B Device +-section. A ++section. ++A + .B Device + section is considered active if it is referenced by an active + .B Screen + section. + .PP + .B Device +-sections recognise some driver-independent entries and ++sections recognise some driver\-independent entries and + .BR Options , +-which are described here. Not all drivers make use of these +-driver-independent entries, and many of those that do don't require them +-to be specified because the information is auto-detected. See the +-individual graphics driver manual pages for further information about +-this, and for a description of the device-specific options. ++which are described here. ++Not all drivers make use of these ++driver\-independent entries, and many of those that do don't require them ++to be specified because the information is auto\-detected. ++See the individual graphics driver manual pages for further information ++about this, and for a description of the device\-specific options. + Note that most of the + .B Options + listed here (but not the other entries) may be specified in the +@@ -846,118 +981,137 @@ section instead of here in the + .B Device + section. + .TP 7 +-.BI "BusID \*q" bus-id \*q +-This specifies the bus location of the graphics card. For PCI/AGP cards, ++.BI "BusID \*q" bus\-id \*q ++This specifies the bus location of the graphics card. ++For PCI/AGP cards, + the +-.I bus-id ++.I bus\-id + string has the form + .BI PCI: bus : device : function +-(e.g., "PCI:1:0:0" might be appropriate for an AGP card). ++(e.g., \(lqPCI:1:0:0\(rq might be appropriate for an AGP card). + This field is usually optional in single-head configurations when using +-the primary graphics card. In multi-head configurations, or when using +-a secondary graphics card in a single-head configuration, this entry is +-mandatory. Its main purpose is to make an unambiguous connection between +-the device section and the hardware it is representing. This information +-can usually be found by running the __xservername__ server with the ++the primary graphics card. ++In multi-head configurations, or when using a secondary graphics card in a ++single-head configuration, this entry is mandatory. ++Its main purpose is to make an unambiguous connection between the device ++section and the hardware it is representing. ++This information can usually be found by running the __xservername__ server ++with the + .B \-scanpci + command line option. + .TP 7 + .BI "Screen " number + This option is mandatory for cards where a single PCI entity can drive more + than one display (i.e., multiple CRTCs sharing a single graphics accelerator +-and video memory). One ++and video memory). ++One + .B Device + section is required for each head, and this + parameter determines which head each of the + .B Device +-sections applies to. The legal values of ++sections applies to. ++The legal values of + .I number + range from 0 to one less than the total number of heads per entity. + Most drivers require that the primary screen (0) be present. + .TP 7 + .BI "Chipset \*q" chipset \*q + This usually optional entry specifies the chipset used on the graphics +-board. In most cases this entry is not required because the drivers +-will probe the hardware to determine the chipset type. Don't +-specify it unless the driver-specific documentation recommends that you ++board. ++In most cases this entry is not required because the drivers will probe the ++hardware to determine the chipset type. ++Don't specify it unless the driver-specific documentation recommends that you + do. + .TP 7 +-.BI "Ramdac \*q" ramdac-type \*q ++.BI "Ramdac \*q" ramdac\-type \*q + This optional entry specifies the type of RAMDAC used on the graphics +-board. This is only used by a few of the drivers, and in most cases it +-is not required because the drivers will probe the hardware to determine +-the RAMDAC type where possible. Don't specify it unless the +-driver-specific documentation recommends that you do. ++board. ++This is only used by a few of the drivers, and in most cases it is not ++required because the drivers will probe the hardware to determine the ++RAMDAC type where possible. ++Don't specify it unless the driver-specific documentation recommends that you ++do. + .TP 7 + .BI "DacSpeed " speed + .TP 7 +-.BI "DacSpeed " "speed-8 speed-16 speed-24 speed-32" ++.BI "DacSpeed " "speed\-8 speed\-16 speed\-24 speed\-32" + This optional entry specifies the RAMDAC speed rating (which is usually +-printed on the RAMDAC chip). The speed is in MHz. When one value is +-given, it applies to all framebuffer pixel sizes. When multiple values +-are give, they apply to the framebuffer pixel sizes 8, 16, 24 and 32 +-respectively. This is not used by many drivers, and only needs to be +-specified when the speed rating of the RAMDAC is different from the +-defaults built in to driver, or when the driver can't auto-detect the +-correct defaults. Don't specify it unless the driver-specific +-documentation recommends that you do. ++printed on the RAMDAC chip). ++The speed is in MHz. ++When one value is given, it applies to all framebuffer pixel sizes. ++When multiple values are given, they apply to the framebuffer pixel sizes ++8, 16, 24 and 32 respectively. ++This is not used by many drivers, and only needs to be specified when the ++speed rating of the RAMDAC is different from the defaults built in to ++driver, or when the driver can't auto-detect the correct defaults. ++Don't specify it unless the driver-specific documentation recommends that you ++do. + .TP 7 + .BI "Clocks " "clock ..." +-specifies the pixel that are on your graphics board. The clocks are in +-MHz, and may be specified as a floating point number. The value is +-stored internally to the nearest kHz. The ordering of the clocks is +-important. It must match the order in which they are selected on the +-graphics board. Multiple ++specifies the pixel that are on your graphics board. ++The clocks are in MHz, and may be specified as a floating point number. ++The value is stored internally to the nearest kHz. ++The ordering of the clocks is important. ++It must match the order in which they are selected on the graphics board. ++Multiple + .B Clocks +-lines may be specified, and each is concatenated to form the list. Most +-drivers do not use this entry, and it is only required for some older +-boards with non-programmable clocks. Don't specify this entry unless +-the driver-specific documentation explicitly recommends that you do. ++lines may be specified, and each is concatenated to form the list. ++Most drivers do not use this entry, and it is only required for some older ++boards with non-programmable clocks. ++Don't specify this entry unless the driver-specific documentation explicitly ++recommends that you do. + .TP +-.BI "ClockChip \*q" clockchip-type \*q ++.BI "ClockChip \*q" clockchip\-type \*q + This optional entry is used to specify the clock chip type on graphics +-boards which have a programmable clock generator. Only a few __xservername__ +-drivers support programmable clock chips. For details, see the appropriate +-driver manual page. ++boards which have a programmable clock generator. ++Only a few __xservername__ drivers support programmable clock chips. ++For details, see the appropriate driver manual page. + .TP 7 + .BI "VideoRam " "mem" + This optional entry specifies the amount of video ram that is installed +-on the graphics board. This is measured in kBytes. In most cases this +-is not required because the __xservername__ server probes the graphics board to +-determine this quantity. The driver-specific documentation should +-indicate when it might be needed. ++on the graphics board. ++This is measured in kBytes. ++In most cases this is not required because the __xservername__ server probes ++the graphics board to determine this quantity. ++The driver-specific documentation should indicate when it might be needed. + .TP 7 + .BI "BiosBase " "baseaddress" + This optional entry specifies the base address of the video BIOS for +-the VGA board. This address is normally auto-detected, and should only +-be specified if the driver-specific documentation recommends it. ++the VGA board. ++This address is normally auto-detected, and should only be specified if the ++driver-specific documentation recommends it. + .TP 7 + .BI "MemBase " "baseaddress" + This optional entry specifies the memory base address of a graphics +-board's linear frame buffer. This entry is not used by many drivers, +-and it should only be specified if the driver-specific documentation +-recommends it. ++board's linear frame buffer. ++This entry is not used by many drivers, and it should only be specified if ++the driver-specific documentation recommends it. + .TP 7 + .BI "IOBase " "baseaddress" +-This optional entry specifies the IO base address. This entry is not +-used by many drivers, and it should only be specified if the +-driver-specific documentation recommends it. ++This optional entry specifies the IO base address. ++This entry is not used by many drivers, and it should only be specified if ++the driver-specific documentation recommends it. + .TP 7 + .BI "ChipID " "id" + This optional entry specifies a numerical ID representing the chip type. +-For PCI cards, it is usually the device ID. This can be used to override +-the auto-detection, but that should only be done when the driver-specific +-documentation recommends it. ++For PCI cards, it is usually the device ID. ++This can be used to override the auto-detection, but that should only be done ++when the driver-specific documentation recommends it. + .TP 7 + .BI "ChipRev " "rev" +-This optional entry specifies the chip revision number. This can be +-used to override the auto-detection, but that should only be done when +-the driver-specific documentation recommends it. ++This optional entry specifies the chip revision number. ++This can be used to override the auto-detection, but that should only be done ++when the driver-specific documentation recommends it. + .TP 7 + .BI "TextClockFreq " "freq" + This optional entry specifies the pixel clock frequency that is used +-for the regular text mode. The frequency is specified in MHz. This is +-rarely used. ++for the regular text mode. ++The frequency is specified in MHz. ++This is rarely used. ++.TP 7 ++.BI "Option \*qModeDebug\*q \*q" boolean \*q ++Enable printing of additional debugging information about modesetting to ++the server log. + .ig + .TP 7 + This optional entry allows an IRQ number to be specified. +@@ -966,19 +1120,22 @@ This optional entry allows an IRQ number + .B Options + Option flags may be specified in the + .B Device +-sections. These include driver-specific options and driver-independent +-options. The former are described in the driver-specific documentation. ++sections. ++These include driver\-specific options and driver\-independent options. ++The former are described in the driver\-specific documentation. + Some of the latter are described below in the section about the + .B Screen + section, and they may also be included here. + +-.SH VIDEOADAPTOR SECTION +-Nobody wants to say how this works. Maybe nobody knows ... ++.SH "VIDEOADAPTOR SECTION" ++Nobody wants to say how this works. ++Maybe nobody knows ... + +-.SH MONITOR SECTION ++.SH "MONITOR SECTION" + The config file may have multiple + .B Monitor +-sections. There should normally be at least one, for the monitor being used, ++sections. ++There should normally be at least one, for the monitor being used, + but a default configuration will be created when one isn't specified. + .PP + .B Monitor +@@ -1002,22 +1159,43 @@ entry. + .PP + The + .B Identifier +-entry specifies the unique name for this monitor. The ++entry specifies the unique name for this monitor. ++The + .B Monitor +-section provides information about the specifications of the monitor, +-monitor-specific ++section may be used to provide information about the specifications of the ++monitor, monitor-specific + .BR Options , +-and information about the video modes to use with the monitor. Specifying +-video modes is optional because the server now has a built-in list of +-VESA standard modes. When modes are specified explicitly in the ++and information about the video modes to use with the monitor. ++.PP ++With RandR 1.2-enabled drivers, monitor sections may be tied to specific ++outputs of the video card. Using the name of the output defined by the video ++driver plus the identifier of a monitor section, one associates a monitor ++section with an output by adding an option to the Device section in the ++following format: ++ ++.B Option \*qMonitor-outputname\*q \*qmonitorsection\*q ++ ++(for example, ++.B Option \*qMonitor-VGA\*q \*qVGA monitor\*q ++for a VGA output) ++.PP ++In the absence of specific association of monitor sections to outputs, if a ++monitor section is present the server will associate it with an output to ++preserve compatibility for previous single-head configurations. ++.PP ++Specifying video modes is optional because the server will use the DDC or other ++information provided by the monitor to automatically configure the list of ++modes available. ++When modes are specified explicitly in the + .B Monitor + section (with the + .BR Modes , + .BR ModeLine , + or + .B UseModes +-keywords), built-in modes with the same names are not included. Built-in +-modes with different names are, however, still implicitly included. ++keywords), built-in modes with the same names are not included. ++Built-in modes with different names are, however, still implicitly included, ++when they meet the requirements of the monitor. + .PP + The entries that may be used in + .B Monitor +@@ -1029,69 +1207,79 @@ This optional entry specifies the monito + .BI "ModelName \*q" model \*q + This optional entry specifies the monitor's model. + .TP 7 +-.BI "HorizSync " "horizsync-range" ++.BI "HorizSync " "horizsync\-range" + gives the range(s) of horizontal sync frequencies supported by the + monitor. +-.I horizsync-range ++.I horizsync\-range + may be a comma separated list of either discrete values or ranges of +-values. A range of values is two values separated by a dash. By default +-the values are in units of kHz. They may be specified in MHz or Hz if ++values. ++A range of values is two values separated by a dash. ++By default the values are in units of kHz. ++They may be specified in MHz or Hz ++if + .B MHz + or + .B Hz +-is added to the end of the line. The data given here is used by the +-__xservername__ server to determine if video modes are within the specifications +-of the monitor. This information should be available in the monitor's +-handbook. If this entry is omitted, a default range of 28\-33kHz is +-used. ++is added to the end of the line. ++The data given here is used by the __xservername__ server to determine if video ++modes are within the specifications of the monitor. ++This information should be available in the monitor's handbook. ++If this entry is omitted, a default range of 28\-33kHz is used. + .TP 7 +-.BI "VertRefresh " "vertrefresh-range" ++.BI "VertRefresh " "vertrefresh\-range" + gives the range(s) of vertical refresh frequencies supported by the + monitor. +-.I vertrefresh-range ++.I vertrefresh\-range + may be a comma separated list of either discrete values or ranges of +-values. A range of values is two values separated by a dash. By default +-the values are in units of Hz. They may be specified in MHz or kHz if ++values. ++A range of values is two values separated by a dash. ++By default the values are in units of Hz. ++They may be specified in MHz or kHz ++if + .B MHz + or + .B kHz +-is added to the end of the line. The data given here is used by the +-__xservername__ server to determine if video modes are within the specifications +-of the monitor. This information should be available in the monitor's +-handbook. If this entry is omitted, a default range of 43-72Hz is used. ++is added to the end of the line. ++The data given here is used by the __xservername__ server to determine if video ++modes are within the specifications of the monitor. ++This information should be available in the monitor's handbook. ++If this entry is omitted, a default range of 43\-72Hz is used. + .TP 7 + .BI "DisplaySize " "width height" + This optional entry gives the width and height, in millimetres, of the +-picture area of the monitor. If given this is used to calculate the +-horizontal and vertical pitch (DPI) of the screen. ++picture area of the monitor. ++If given this is used to calculate the horizontal and vertical pitch (DPI) of ++the screen. + .TP 7 +-.BI "Gamma " "gamma-value" ++.BI "Gamma " "gamma\-value" + .TP 7 +-.BI "Gamma " "red-gamma green-gamma blue-gamma" ++.BI "Gamma " "red\-gamma green\-gamma blue\-gamma" + This is an optional entry that can be used to specify the gamma correction +-for the monitor. It may be specified as either a single value or as +-three separate RGB values. The values should be in the range 0.1 to +-10.0, and the default is 1.0. Not all drivers are capable of using this +-information. ++for the monitor. ++It may be specified as either a single value or as three separate RGB values. ++The values should be in the range 0.1 to 10.0, and the default is 1.0. ++Not all drivers are capable of using this information. + .TP 7 +-.BI "UseModes \*q" modesection-id \*q ++.BI "UseModes \*q" modesection\-id \*q + Include the set of modes listed in the + .B Modes + section called +-.IR modesection-id. +-This make all of the modes defined in that section available for use by ++.IR modesection\-id. ++This makes all of the modes defined in that section available for use by + this monitor. + .TP 7 + .BI "Mode \*q" name \*q + This is an optional multi-line entry that can be used to provide +-definitions for video modes for the monitor. In most cases this isn't +-necessary because the built-in set of VESA standard modes will be +-sufficient. The ++definitions for video modes for the monitor. ++In most cases this isn't necessary because the built-in set of VESA standard ++modes will be sufficient. ++The + .B Mode + keyword indicates the start of a multi-line video mode description. + The mode description is terminated with the + .B EndMode +-keyword. The mode description consists of the following entries: ++keyword. ++The mode description consists of the following entries: + .RS 7 + .TP 4 + .BI "DotClock " clock +@@ -1127,52 +1315,60 @@ and + may be used to select the composite sync polarity. + .TP 4 + .BI "HSkew " hskew +-specifies the number of pixels (towards the right edge of the screen) +-by which the display enable signal is to be skewed. Not all drivers +-use this information. This option might become necessary to override +-the default value supplied by the server (if any). "Roving" horizontal +-lines indicate this value needs to be increased. If the last few pixels +-on a scan line appear on the left of the screen, this value should be +-decreased. ++specifies the number of pixels (towards the right edge of the screen) by ++which the display enable signal is to be skewed. ++Not all drivers use this information. ++This option might become necessary to override the default value supplied ++by the server (if any). ++\(lqRoving\(rq horizontal lines indicate this value needs to be increased. ++If the last few pixels on a scan line appear on the left of the screen, ++this value should be decreased. + .TP 4 + .BI "VScan " vscan + specifies the number of times each scanline is painted on the screen. +-Not all drivers use this information. Values less than 1 are treated +-as 1, which is the default. Generally, the ++Not all drivers use this information. ++Values less than 1 are treated as 1, which is the default. ++Generally, the + .B \*qDoubleScan\*q + .B Flag + mentioned above doubles this value. + .RE + .TP 7 +-.BI "ModeLine \*q" name \*q " mode-description" ++.BI "ModeLine \*q" name \*q " mode\-description" + This entry is a more compact version of the + .B Mode + entry, and it also can be used to specify video modes for the monitor. +-is a single line format for specifying video modes. In most cases this +-isn't necessary because the built-in set of VESA standard modes will be +-sufficient. ++is a single line format for specifying video modes. ++In most cases this isn't necessary because the built\-in set of VESA ++standard modes will be sufficient. + .PP + .RS 7 + The +-.I mode-description +-is in four sections, the first three of which are mandatory. The first +-is the dot (pixel) clock. This is a single number specifying the pixel +-clock rate for the mode in MHz. The second section is a list of four +-numbers specifying the horizontal timings. These numbers are the ++.I mode\-description ++is in four sections, the first three of which are mandatory. ++The first is the dot (pixel) clock. ++This is a single number specifying the pixel clock rate for the mode in ++MHz. ++The second section is a list of four numbers specifying the horizontal ++timings. ++These numbers are the + .IR hdisp , + .IR hsyncstart , + .IR hsyncend , + and + .I htotal +-values. The third section is a list of four numbers specifying the +-vertical timings. These numbers are the ++values. ++The third section is a list of four numbers specifying the vertical ++timings. ++These numbers are the + .IR vdisp , + .IR vsyncstart , + .IR vsyncend , + and + .I vtotal +-values. The final section is a list of flags specifying other +-characteristics of the mode. ++values. ++The final section is a list of flags specifying other characteristics of ++the mode. + .B Interlace + indicates that the mode is interlaced. + .B DoubleScan +@@ -1191,7 +1387,8 @@ Additionally, on some hardware, + .B +CSync + and + .B \-CSync +-may be used to select the composite sync polarity. The ++may be used to select the composite sync polarity. ++The + .B HSkew + and + .B VScan +@@ -1214,21 +1411,79 @@ monitors do not require it. The default + This optional entry specifies the vertical refresh rate that the server + should aim for when selecting video modes. Without this option, the + default is to prefer modes with higher refresh rates. ++.TP 7 ++.BI "Option " "\*qPreferredMode\*q " \*qstring\*q ++This optional entry specifies a mode to be marked as the preferred initial mode ++of the monitor. ++(RandR 1.2-supporting drivers only) ++.TP 7 ++.BI "Option " "\*qPosition\*q " "\*qx y\*q" ++This optional entry specifies the position of the monitor within the X ++screen. ++(RandR 1.2-supporting drivers only) ++.TP 7 ++.BI "Option " "\*qLeftOf\*q " \*qmonitor\*q ++This optional entry specifies that the monitor should be positioned to the ++left of the monitor of the given name. ++(RandR 1.2-supporting drivers only) ++.TP 7 ++.BI "Option " "\*qRightOf\*q " \*qmonitor\*q ++This optional entry specifies that the monitor should be positioned to the ++right of the monitor of the given name. ++(RandR 1.2-supporting drivers only) ++.TP 7 ++.BI "Option " "\*qAbove\*q " \*qmonitor\*q ++This optional entry specifies that the monitor should be positioned above the ++monitor of the given name. ++(RandR 1.2-supporting drivers only) ++.TP 7 ++.BI "Option " "\*qBelow\*q " \*qmonitor\*q ++This optional entry specifies that the monitor should be positioned below the ++monitor of the given name. ++(RandR 1.2-supporting drivers only) ++.TP 7 ++.BI "Option " "\*qEnable\*q " \*qbool\*q ++This optional entry specifies whether the monitor should be turned on ++at startup. By default, the server will attempt to enable all connected ++monitors. ++(RandR 1.2-supporting drivers only) ++.TP 7 ++.BI "Option " "\*qMinClock\*q " \*qfrequency\*q ++This optional entry specifies the minimum dot clock, in kHz, that is supported ++by the monitor. ++.TP 7 ++.BI "Option " "\*qMaxClock\*q " \*qfrequency\*q ++This optional entry specifies the maximum dot clock, in kHz, that is supported ++by the monitor. ++.TP 7 ++.BI "Option " "\*qIgnore\*q " \*qbool\*q ++This optional entry specifies that the monitor should be ignored entirely, ++and not reported through RandR. This is useful if the hardware reports the ++presence of outputs that don't exist. ++(RandR 1.2-supporting drivers only) ++.TP 7 ++.BI "Option " "\*qRotate\*q " \*qrotation\*q ++This optional entry specifies the initial rotation of the given monitor. ++Valid values for rotation are \*qnormal\*q, \*qleft\*q, \*qright\*q, and ++\*qinverted\*q. ++(RandR 1.2-supporting drivers only) + +-.SH MODES SECTION ++.SH "MODES SECTION" + The config file may have multiple + .B Modes +-sections, or none. These sections provide a way of defining sets of +-video modes independently of the ++sections, or none. ++These sections provide a way of defining sets of video modes independently ++of the + .B Monitor + sections. + .B Monitor + sections may include the definitions provided in these sections by + using the + .B UseModes +-keyword. In most cases the ++keyword. ++In most cases the + .B Modes +-sections are not necessary because the built-in set of VESA standard modes ++sections are not necessary because the built\-in set of VESA standard modes + will be sufficient. + .PP + .B Modes +@@ -1256,21 +1511,24 @@ and + entries that are described above in the + .B Monitor + section. +-.SH SCREEN SECTION ++.SH "SCREEN SECTION" + The config file may have multiple + .B Screen +-sections. There must be at least one, for the "screen" being used. +-A "screen" represents the binding of a graphics device ++sections. ++There must be at least one, for the \(lqscreen\(rq being used. ++A \(lqscreen\(rq represents the binding of a graphics device + .RB ( Device + section) and a monitor + .RB ( Monitor +-section). A ++section). ++A + .B Screen +-section is considered "active" if it is referenced by an active ++section is considered \(lqactive\(rq if it is referenced by an active + .B ServerLayout + section or by the + .B \-screen +-command line option. If neither of those is present, the first ++command line option. ++If neither of those is present, the first + .B Screen + section found in the config file is considered the active one. + .PP +@@ -1298,94 +1556,97 @@ The + .B Identifier + and + .B Device +-entries are mandatory. All others are optional. ++entries are mandatory. ++All others are optional. + .PP + The + .B Identifier +-entry specifies the unique name for this screen. The ++entry specifies the unique name for this screen. ++The + .B Screen + section provides information specific to the whole screen, including +-screen-specific ++screen\-specific + .BR Options . +-In multi-head configurations, there will be multiple active ++In multi\-head configurations, there will be multiple active + .B Screen + sections, one for each head. + The entries available + for this section are: + .TP 7 +-.BI "Device \*q" device-id \*q ++.BI "Device \*q" device\-id \*q + This mandatory entry specifies the + .B Device +-section to be used for this screen. This is what ties a specific +-graphics card to a screen. The +-.I device-id ++section to be used for this screen. ++This is what ties a specific graphics card to a screen. ++The ++.I device\-id + must match the + .B Identifier + of a + .B Device + section in the config file. + .TP 7 +-.BI "Monitor \*q" monitor-id \*q ++.BI "Monitor \*q" monitor\-id \*q + specifies which monitor description is to be used for this screen. + If a + .B Monitor +-name is not specified, a default configuration is used. Currently the default +-configuration may not function as expected on all platforms. ++name is not specified, a default configuration is used. ++Currently the default configuration may not function as expected on all ++platforms. + .TP 7 +-.BI "VideoAdaptor \*q" xv-id \*q ++.BI "VideoAdaptor \*q" xv\-id \*q + specifies an optional Xv video adaptor description to be used with this + screen. + .TP 7 + .BI "DefaultDepth " depth +-specifies which color depth the server should use by default. The ++specifies which color depth the server should use by default. ++The + .B \-depth +-command line option can be used to override this. If neither is specified, +-the default depth is driver-specific, but in most cases is 8. ++command line option can be used to override this. ++If neither is specified, the default depth is driver\-specific, but in most ++cases is 8. + .TP 7 + .BI "DefaultFbBpp " bpp +-specifies which framebuffer layout to use by default. The ++specifies which framebuffer layout to use by default. ++The + .B \-fbbpp +-command line option can be used to override this. In most cases the +-driver will chose the best default value for this. The only case where +-there is even a choice in this value is for depth 24, where some hardware +-supports both a packed 24 bit framebuffer layout and a sparse 32 bit +-framebuffer layout. ++command line option can be used to override this. ++In most cases the driver will chose the best default value for this. ++The only case where there is even a choice in this value is for depth 24, ++where some hardware supports both a packed 24 bit framebuffer layout and a ++sparse 32 bit framebuffer layout. + .TP 7 + .B Options + Various + .B Option + flags may be specified in the + .B Screen +-section. Some are driver-specific and are described in the driver +-documentation. Others are driver-independent, and will eventually be +-described here. ++section. ++Some are driver\-specific and are described in the driver documentation. ++Others are driver\-independent, and will eventually be described here. + .\" XXX These should really be in an xaa man page. + .TP 7 + .BI "Option \*qAccel\*q" + Enables XAA (X Acceleration Architecture), a mechanism that makes video +-cards' 2D hardware acceleration available to the +-__xservername__ server. This +-option is on by default, but it may be necessary to turn it off if there +-are bugs in the driver. There are many options to disable specific +-accelerated operations, listed below. Note that disabling an operation +-will have no effect if the operation is not accelerated (whether due to +-lack of support in the hardware or in the driver). +-.TP 7 +-.BI "Option \*qBiosLocation\*q \*q" address \*q +-Set the location of the BIOS for the Int10 module. One may select a BIOS +-of another card for posting or the legacy V_BIOS range located at 0xc0000 +-or an alternative address (BUS_ISA). This is only useful under very +-special circumstances and should be used with extreme care. ++cards' 2D hardware acceleration available to the __xservername__ server. ++This option is on by default, but it may be necessary to turn it off if ++there are bugs in the driver. ++There are many options to disable specific accelerated operations, listed ++below. ++Note that disabling an operation will have no effect if the operation is ++not accelerated (whether due to lack of support in the hardware or in the ++driver). + .TP 7 + .BI "Option \*qInitPrimary\*q \*q" boolean \*q +-Use the Int10 module to initialize the primary graphics card. Normally, +-only secondary cards are soft-booted using the Int10 module, as the ++Use the Int10 module to initialize the primary graphics card. ++Normally, only secondary cards are soft-booted using the Int10 module, as the + primary card has already been initialized by the BIOS at boot time. + Default: false. + .TP 7 + .BI "Option \*qNoInt10\*q \*q" boolean \*q + Disables the Int10 module, a module that uses the int10 call to the BIOS +-of the graphics card to initialize it. Default: false. ++of the graphics card to initialize it. ++Default: false. + .TP 7 + .BI "Option \*qNoMTRR\*q" + Disables MTRR (Memory Type Range Register) support, a feature of modern +@@ -1395,14 +1656,14 @@ known to exhibit problems when MTRR's ar + .TP 7 + .BI "Option \*qXaaNoCPUToScreenColorExpandFill\*q" + Disables accelerated rectangular expansion blits from source patterns +-stored in system memory (using a memory-mapped aperture). ++stored in system memory (using a memory\-mapped aperture). + .TP 7 + .BI "Option \*qXaaNoColor8x8PatternFillRect\*q" +-Disables accelerated fills of a rectangular region with a full-color ++Disables accelerated fills of a rectangular region with a full\-color + pattern. + .TP 7 + .BI "Option \*qXaaNoColor8x8PatternFillTrap\*q" +-Disables accelerated fills of a trapezoidal region with a full-color ++Disables accelerated fills of a trapezoidal region with a full\-color + pattern. + .TP 7 + .BI "Option \*qXaaNoDashedBresenhamLine\*q" +@@ -1412,8 +1673,8 @@ Disables accelerated dashed Bresenham li + Disables accelerated dashed line draws between two arbitrary points. + .TP 7 + .BI "Option \*qXaaNoImageWriteRect\*q" +-Disables accelerated transfers of full-color rectangular patterns from +-system memory to video memory (using a memory-mapped aperture). ++Disables accelerated transfers of full\-color rectangular patterns from ++system memory to video memory (using a memory\-mapped aperture). + .TP 7 + .BI "Option \*qXaaNoMono8x8PatternFillRect\*q" + Disables accelerated fills of a rectangular region with a monochrome +@@ -1434,7 +1695,7 @@ Disables accelerated rectangular expansi + stored in system memory (one scan line at a time). + .TP 7 + .BI "Option \*qXaaNoScanlineImageWriteRect\*q" +-Disables accelerated transfers of full-color rectangular patterns from ++Disables accelerated transfers of full\-color rectangular patterns from + system memory to video memory (one scan line at a time). + .TP 7 + .BI "Option \*qXaaNoScreenToScreenColorExpandFill\*q" +@@ -1449,10 +1710,10 @@ video memory to another part of video me + Disables accelerated solid Bresenham line draws. + .TP 7 + .BI "Option \*qXaaNoSolidFillRect\*q" +-Disables accelerated solid-color fills of rectangles. ++Disables accelerated solid\-color fills of rectangles. + .TP 7 + .BI "Option \*qXaaNoSolidFillTrap\*q" +-Disables accelerated solid-color fills of Bresenham trapezoids. ++Disables accelerated solid\-color fills of Bresenham trapezoids. + .TP 7 + .BI "Option \*qXaaNoSolidHorVertLine\*q" + Disables accelerated solid horizontal and vertical line draws. +@@ -1464,27 +1725,30 @@ Each + .B Screen + section may optionally contain one or more + .B Display +-subsections. Those subsections provide depth/fbbpp specific configuration +-information, and the one chosen depends on the depth and/or fbbpp that +-is being used for the screen. The ++subsections. ++Those subsections provide depth/fbbpp specific configuration information, ++and the one chosen depends on the depth and/or fbbpp that is being used for ++the screen. ++The + .B Display + subsection format is described in the section below. + +-.SH DISPLAY SUBSECTION ++.SH "DISPLAY SUBSECTION" + Each + .B Screen + section may have multiple + .B Display +-subsections. +-The "active" ++subsections. ++The \(lqactive\(rq + .B Display + subsection is the first that matches the depth and/or fbbpp values being + used, or failing that, the first that has neither a depth or fbbpp value +-specified. The ++specified. ++The + .B Display +-subsections are optional. When there isn't one that matches the depth +-and/or fbbpp values being used, all the parameters that can be specified +-here fall back to their defaults. ++subsections are optional. ++When there isn't one that matches the depth and/or fbbpp values being used, ++all the parameters that can be specified here fall back to their defaults. + .PP + .B Display + subsections have the following format: +@@ -1498,78 +1762,88 @@ subsections have the following format: + .B " EndSubSection" + .fi + .RE +-.PP + .TP 7 + .BI "Depth " depth + This entry specifies what colour depth the + .B Display +-subsection is to be used for. This entry is usually specified, +-but it may be omitted to create a match-all ++subsection is to be used for. ++This entry is usually specified, but it may be omitted to create a match\-all + .B Display + subsection or when wishing to match only against the + .B FbBpp +-parameter. The range of ++parameter. ++The range of + .I depth +-values that are allowed depends on the driver. Most driver support +-8, 15, 16 and 24. Some also support 1 and/or 4, and some may support +-other values (like 30). Note: ++values that are allowed depends on the driver. ++Most drivers support 8, 15, 16 and 24. ++Some also support 1 and/or 4, and some may support other values (like 30). ++Note: + .I depth + means the number of bits in a pixel that are actually used to determine +-the pixel colour. 32 is not a valid ++the pixel colour. ++32 is not a valid + .I depth +-value. Most hardware that uses 32 bits per pixel only uses 24 of them +-to hold the colour information, which means that the colour depth is +-24, not 32. ++value. ++Most hardware that uses 32 bits per pixel only uses 24 of them to hold the ++colour information, which means that the colour depth is 24, not 32. + .TP 7 + .BI "FbBpp " bpp + This entry specifies the framebuffer format this + .B Display +-subsection is to be used for. This entry is only needed when providing +-depth 24 configurations that allow a choice between a 24 bpp packed +-framebuffer format and a 32bpp sparse framebuffer format. In most cases +-this entry should not be used. ++subsection is to be used for. ++This entry is only needed when providing depth 24 configurations that allow ++a choice between a 24 bpp packed framebuffer format and a 32bpp sparse ++framebuffer format. ++In most cases this entry should not be used. + .TP 7 +-.BI "Weight " "red-weight green-weight blue-weight" ++.BI "Weight " "red\-weight green\-weight blue\-weight" + This optional entry specifies the relative RGB weighting to be used + for a screen is being used at depth 16 for drivers that allow multiple +-formats. This may also be specified from the command line with the ++formats. ++This may also be specified from the command line with the + .B \-weight +-option (see __xservername__(__appmansuffix__)). ++option (see ++.BR __xservername__(__appmansuffix__)). + .TP 7 + .BI "Virtual " "xdim ydim" + This optional entry specifies the virtual screen resolution to be used. + .I xdim + must be a multiple of either 8 or 16 for most drivers, and a multiple +-of 32 when running in monochrome mode. The given value will be rounded +-down if this is not the case. Video modes which are too large for the +-specified virtual size will be rejected. If this entry is not present, +-the virtual screen resolution will be set to accommodate all the valid +-video modes given in the ++of 32 when running in monochrome mode. ++The given value will be rounded down if this is not the case. ++Video modes which are too large for the specified virtual size will be ++rejected. ++If this entry is not present, the virtual screen resolution will be set to ++accommodate all the valid video modes given in the + .B Modes +-entry. Some drivers/hardware combinations do not support virtual screens. +-Refer to the appropriate driver-specific documentation for details. ++entry. ++Some drivers/hardware combinations do not support virtual screens. ++Refer to the appropriate driver\-specific documentation for details. + .TP 7 + .BI "ViewPort " "x0 y0" + This optional entry sets the upper left corner of the initial display. + This is only relevant when the virtual screen resolution is different +-from the resolution of the initial video mode. If this entry is not +-given, then the initial display will be centered in the virtual display +-area. +-.TP 7 +-.BI "Modes \*q" mode-name \*q " ..." +-This optional entry specifies the list of video modes to use. Each +-.I mode-name +-specified must be in double quotes. They must correspond to those +-specified or referenced in the appropriate ++from the resolution of the initial video mode. ++If this entry is not given, then the initial display will be centered in ++the virtual display area. ++.TP 7 ++.BI "Modes \*q" mode\-name \*q " ..." ++This optional entry specifies the list of video modes to use. ++Each ++.I mode\-name ++specified must be in double quotes. ++They must correspond to those specified or referenced in the appropriate + .B Monitor +-section (including implicitly referenced built-in VESA standard modes). ++section (including implicitly referenced built\-in VESA standard modes). + The server will delete modes from this list which don't satisfy various +-requirements. The first valid mode in this list will be the default +-display mode for startup. The list of valid modes is converted internally +-into a circular list. It is possible to switch to the next mode with +-.B Ctrl+Alt+Keypad-Plus ++requirements. ++The first valid mode in this list will be the default display mode for ++startup. ++The list of valid modes is converted internally into a circular list. ++It is possible to switch to the next mode with ++.B Ctrl+Alt+Keypad\-Plus + and to the previous mode with +-.BR Ctrl+Alt+Keypad-Minus . ++.BR Ctrl+Alt+Keypad\-Minus . + When this entry is omitted, the valid modes referenced by the appropriate + .B Monitor + section will be used. If the +@@ -1577,10 +1851,12 @@ section will be used. If the + section contains no modes, then the selection will be taken from the + built-in VESA standard modes. + .TP 7 +-.BI "Visual \*q" visual-name \*q +-This optional entry sets the default root visual type. This may also +-be specified from the command line (see the Xserver(__appmansuffix__) man page). The +-visual types available for depth 8 are (default is ++.BI "Visual \*q" visual\-name \*q ++This optional entry sets the default root visual type. ++This may also be specified from the command line (see the ++.BR Xserver(__appmansuffix__) ++man page). ++The visual types available for depth 8 are (default is + .BR PseudoColor ): + .PP + .RS 11 +@@ -1626,43 +1902,48 @@ The visual type available for the depth + .RE + .TP 7 + .BI "Black " "red green blue" +-This optional entry allows the "black" colour to be specified. This +-is only supported at depth 1. The default is black. ++This optional entry allows the \(lqblack\(rq colour to be specified. ++This is only supported at depth 1. ++The default is black. + .TP 7 + .BI "White " "red green blue" +-This optional entry allows the "white" colour to be specified. This +-is only supported at depth 1. The default is white. ++This optional entry allows the \(lqwhite\(rq colour to be specified. ++This is only supported at depth 1. ++The default is white. + .TP 7 + .B Options + Option flags may be specified in the + .B Display +-subsections. These may include driver-specific options and +-driver-independent options. The former are described in the +-driver-specific documentation. Some of the latter are described above +-in the section about the ++subsections. ++These may include driver\-specific options and driver\-independent options. ++The former are described in the driver\-specific documentation. ++Some of the latter are described above in the section about the + .B Screen + section, and they may also be included here. +-.SH SERVERLAYOUT SECTION ++.SH "SERVERLAYOUT SECTION" + The config file may have multiple + .B ServerLayout +-sections. +-A "server layout" represents the binding of one or more screens ++sections. ++A \(lqserver layout\(rq represents the binding of one or more screens + .RB ( Screen + sections) and one or more input devices + .RB ( InputDevice +-sections) to form a complete configuration. In multi-head configurations, +-it also specifies the relative layout of the heads. A ++sections) to form a complete configuration. ++In multi\-head configurations, it also specifies the relative layout of the ++heads. ++A + .B ServerLayout +-section is considered "active" if it is referenced by the ++section is considered \(lqactive\(rq if it is referenced by the + .B \-layout + command line option or by an + .B "Option \*qDefaultServerLayout\*q" + entry in the + .B ServerFlags +-section (the former takes precedence over the latter). If those options are +-not used, the first ++section (the former takes precedence over the latter). ++If those options are not used, the first + .B ServerLayout +-section found in the config file is considered the active one. If no ++section found in the config file is considered the active one. ++If no + .B ServerLayout + sections are present, the single active screen and two active (core) + input devices are selected as described in the relevant sections above. +@@ -1674,9 +1955,9 @@ sections have the following format: + .nf + .B "Section \*qServerLayout\*q" + .BI " Identifier \*q" name \*q +-.BI " Screen \*q" screen-id \*q ++.BI " Screen \*q" screen\-id \*q + .I " ..." +-.BI " InputDevice \*q" idev-id \*q ++.BI " InputDevice \*q" idev\-id \*q + .I " ..." + .I " options" + .I " ..." +@@ -1694,10 +1975,11 @@ entry. + .PP + The + .B Identifier +-entry specifies the unique name for this server layout. The ++entry specifies the unique name for this server layout. ++The + .B ServerLayout + section provides information specific to the whole session, including +-session-specific ++session\-specific + .BR Options . + The + .B ServerFlags +@@ -1708,21 +1990,25 @@ section. + .PP + The entries that may be used in this section are described here. + .TP 7 +-.BI "Screen " "screen-num" " \*qscreen-id\*q " "position-information" ++.BI "Screen " "screen\-num" " \*qscreen\-id\*q " "position\-information" + One of these entries must be given for each screen being used in +-a session. The +-.I screen-id ++a session. ++The ++.I screen\-id + field is mandatory, and specifies the + .B Screen +-section being referenced. The +-.I screen-num ++section being referenced. ++The ++.I screen\-num + field is optional, and may be used to specify the screen number +-in multi-head configurations. When this field is omitted, the +-screens will be numbered in the order that they are listed in. +-The numbering starts from 0, and must be consecutive. The +-.I position-information +-field describes the way multiple screens are positioned. There are +-a number of different ways that this information can be provided: ++in multi\-head configurations. ++When this field is omitted, the screens will be numbered in the order that ++they are listed in. ++The numbering starts from 0, and must be consecutive. ++The ++.I position\-information ++field describes the way multiple screens are positioned. ++There are a number of different ways that this information can be provided: + .RS 7 + .TP 4 + .I "x y" +@@ -1732,48 +2018,53 @@ These both specify that the upper left c + .RI ( x , y ). + The + .B Absolute +-keyword is optional. Some older versions of __xservername__ (4.2 and earlier) don't +-recognise the ++keyword is optional. ++Some older versions of __xservername__ (4.2 and earlier) don't recognise the + .B Absolute + keyword, so it's safest to just specify the coordinates without it. + .TP 4 +-.BI "RightOf \*q" screen-id \*q ++.BI "RightOf \*q" screen\-id \*q + .TP 4 +-.BI "LeftOf \*q" screen-id \*q ++.BI "LeftOf \*q" screen\-id \*q + .TP 4 +-.BI "Above \*q" screen-id \*q ++.BI "Above \*q" screen\-id \*q + .TP 4 +-.BI "Below \*q" screen-id \*q ++.BI "Below \*q" screen\-id \*q + .TP 4 +-.BI "Relative \*q" screen-id \*q " x y" +-These give the screen's location relative to another screen. The first four +-position the screen immediately to the right, left, above or below the +-other screen. When positioning to the right or left, the top edges are +-aligned. When positioning above or below, the left edges are aligned. ++.BI "Relative \*q" screen\-id \*q " x y" ++These give the screen's location relative to another screen. ++The first four position the screen immediately to the right, left, above or ++below the other screen. ++When positioning to the right or left, the top edges are aligned. ++When positioning above or below, the left edges are aligned. + The + .B Relative + form specifies the offset of the screen's origin (upper left corner) + relative to the origin of another screen. + .RE + .TP 7 +-.BI "InputDevice \*q" idev-id "\*q \*q" option \*q " ..." ++.BI "InputDevice \*q" idev\-id "\*q \*q" option \*q " ..." + One of these entries should be given for each input device being used in +-a session. Normally at least two are required, one each for the core +-pointer and keyboard devices. If either of those is missing, suitable ++a session. ++Normally at least two are required, one each for the core pointer and ++keyboard devices. ++If either of those is missing, suitable + .B InputDevice + entries are searched for using the method described above in the + .B INPUTDEVICE + section. The +-.I idev-id ++.I idev\-id + field is mandatory, and specifies the name of the + .B InputDevice +-section being referenced. Multiple ++section being referenced. ++Multiple + .I option +-fields may be specified, each in double quotes. The options permitted +-here are any that may also be given in the ++fields may be specified, each in double quotes. ++The options permitted here are any that may also be given in the + .B InputDevice +-sections. Normally only session-specific input device options would be +-used here. The most commonly used options are: ++sections. ++Normally only session\-specific input device options would be used here. ++The most commonly used options are: + .PP + .RS 11 + .nf +@@ -1791,8 +2082,9 @@ and core keyboard devices respectively. + .B Options + In addition to the following, any option permitted in the + .B ServerFlags +-section may also be specified here. When the same option appears in both +-places, the value given here overrides the one given in the ++section may also be specified here. ++When the same option appears in both places, the value given here overrides ++the one given in the + .B ServerFlags + section. + .TP 7 +@@ -1805,9 +2097,11 @@ option (described in + .BR "DEVICE SECTION" , + above) for the format of the + .I bus\-id +-parameter. This option overrides ++parameter. ++This option overrides + .BR SingleCard , +-if specified. At present, only PCI devices can be isolated in this manner. ++if specified. ++At present, only PCI devices can be isolated in this manner. + .TP 7 + .BI "Option \*qSingleCard\*q \*q" boolean \*q + As +@@ -1831,68 +2125,97 @@ section for a dual headed configuration + .B "EndSection" + .fi + .RE +-.SH DRI SECTION ++.SH "DRI SECTION" + This optional section is used to provide some information for the +-Direct Rendering Infrastructure. Details about the format of this section +-can be found on-line at ++Direct Rendering Infrastructure. ++Details about the format of this section ++can be found in the README.DRI document, which is also available on-line at + .IR . +-.SH VENDOR SECTION ++.SH "VENDOR SECTION" + The optional + .B Vendor +-section may be used to provide vendor-specific configuration information. ++section may be used to provide vendor\-specific configuration information. + Multiple + .B Vendor + sections may be present, and they may contain an + .B Identifier + entry and multiple + .B Option +-flags. The data therein is not used in this release. ++flags. ++The data therein is not used in this release. + .PP +-.SH FILES +-For an example of an __xconfigfile__ file, see the file installed as +-__projectroot__/lib/X11/__xconfigfile__.eg. +-.fi + .SH "SEE ALSO" +-X(__miscmansuffix__), +-Xserver(__appmansuffix__), +-__xservername__(__appmansuffix__), +-apm(__drivermansuffix__), +-.\" .IR ati(__drivermansuffix__), +-chips(__drivermansuffix__), +-cirrus(__drivermansuffix__), +-cyrix(__drivermansuffix__), +-fbdev(__drivermansuffix__), +-glide(__drivermansuffix__), +-glint(__drivermansuffix__), +-i128(__drivermansuffix__), +-i740(__drivermansuffix__), +-i810(__drivermansuffix__), +-imstt(__drivermansuffix__), +-mga(__drivermansuffix__), +-neomagic(__drivermansuffix__), +-nv(__drivermansuffix__), +-r128(__drivermansuffix__), +-rendition(__drivermansuffix__), +-savage(__drivermansuffix__), +-s3virge(__drivermansuffix__), +-.\" .IR shadowfb(__drivermansuffix__), +-siliconmotion(__drivermansuffix__), +-sis(__drivermansuffix__), +-sunbw2(__drivermansuffix__), +-suncg14(__drivermansuffix__), +-suncg3(__drivermansuffix__), +-suncg6(__drivermansuffix__), +-sunffb(__drivermansuffix__), +-sunleo(__drivermansuffix__), +-suntcx(__drivermansuffix__), +-tdfx(__drivermansuffix__), +-tga(__drivermansuffix__), +-trident(__drivermansuffix__), +-tseng(__drivermansuffix__), +-v4l(__drivermansuffix__), +-vesa(__drivermansuffix__), +-vga(__drivermansuffix__), +-vmware(__drivermansuffix__), ++General: ++.BR X (__miscmansuffix__), ++.BR Xserver (__appmansuffix__), ++.BR __xservername__ (__appmansuffix__). ++.PP ++.B Not all modules or interfaces are available on all platforms. ++.PP ++Display drivers: ++.BR apm (__drivermansuffix__), ++.\" .BR ati (__drivermansuffix__), ++.BR chips (__drivermansuffix__), ++.BR cirrus (__drivermansuffix__), ++.BR cyrix (__drivermansuffix__), ++.BR fbdev (__drivermansuffix__), ++.BR glide (__drivermansuffix__), ++.BR glint (__drivermansuffix__), ++.BR i128 (__drivermansuffix__), ++.BR i740 (__drivermansuffix__), ++.BR i810 (__drivermansuffix__), ++.BR imstt (__drivermansuffix__), ++.BR mga (__drivermansuffix__), ++.BR neomagic (__drivermansuffix__), ++.BR nv (__drivermansuffix__), ++.BR r128 (__drivermansuffix__), ++.BR rendition (__drivermansuffix__), ++.BR savage (__drivermansuffix__), ++.BR s3virge (__drivermansuffix__), ++.BR siliconmotion (__drivermansuffix__), ++.BR sis (__drivermansuffix__), ++.BR sunbw2 (__drivermansuffix__), ++.BR suncg14 (__drivermansuffix__), ++.BR suncg3 (__drivermansuffix__), ++.BR suncg6 (__drivermansuffix__), ++.BR sunffb (__drivermansuffix__), ++.BR sunleo (__drivermansuffix__), ++.BR suntcx (__drivermansuffix__), ++.BR tdfx (__drivermansuffix__), ++.BR tga (__drivermansuffix__), ++.BR trident (__drivermansuffix__), ++.BR tseng (__drivermansuffix__), ++.BR vesa (__drivermansuffix__), ++.BR vga (__drivermansuffix__), ++.BR via (__drivermansuffix__), ++.BR vmware (__drivermansuffix__). ++.PP ++Input drivers: ++.\" .BR acecad (__drivermansuffix__), ++.\" .BR calcomp (__drivermansuffix__), ++.BR citron (__drivermansuffix__), ++.BR dmc (__drivermansuffix__), ++.BR dynapro (__drivermansuffix__), ++.BR elographics (__drivermansuffix__), ++.BR fpit (__drivermansuffix__), ++.BR js_x (__drivermansuffix__), ++.BR kbd (__drivermansuffix__), ++.BR keyboard (__drivermansuffix__), ++.\" .BR magictouch (__drivermansuffix__), ++.BR microtouch (__drivermansuffix__), ++.BR mouse (__drivermansuffix__), ++.BR mutouch (__drivermansuffix__), ++.BR palmax (__drivermansuffix__), ++.BR penmount (__drivermansuffix__), ++.BR tek4957 (__drivermansuffix__), ++.\" .BR ur98 (__drivermansuffix__), ++.BR void (__drivermansuffix__), ++.BR wacom (__drivermansuffix__). ++.PP ++Other modules and interfaces: ++.BR fbdevhw (__drivermansuffix__), ++.\" .BR shadowfb (__drivermansuffix__), ++.BR v4l (__drivermansuffix__). + .br + .SH AUTHORS + This manual page was largely rewritten by David Dawes