742 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			Groff
		
	
	
	
			
		
		
	
	
			742 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			Groff
		
	
	
	
| .\" $XFree86$
 | |
| .\"
 | |
| .\" Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
 | |
| .\" All Rights Reserved.
 | |
| .\"
 | |
| .\" Permission is hereby granted, free of charge, to any person obtaining
 | |
| .\" a copy of this software and associated documentation files (the
 | |
| .\" "Software"), to deal in the Software without restriction, including
 | |
| .\" without limitation on the rights to use, copy, modify, merge,
 | |
| .\" publish, distribute, sublicense, and/or sell copies of the Software,
 | |
| .\" and to permit persons to whom the Software is furnished to do so,
 | |
| .\" subject to the following conditions:
 | |
| .\"
 | |
| .\" he above copyright notice and this permission notice (including the
 | |
| .\" next paragraph) shall be included in all copies or substantial
 | |
| .\" portions of the Software.
 | |
| .\"
 | |
| .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | |
| .\" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | |
| .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | |
| .\" NON-INFRINGEMENT.  IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
 | |
| .\" BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 | |
| .\" ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 | |
| .\" CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | |
| .\" SOFTWARE.
 | |
| .TH Xdmx 1 __vendorversion__
 | |
| .SH NAME
 | |
| Xdmx - Distributed Multi-head X server
 | |
| .SH SYNOPSIS
 | |
| .B Xdmx
 | |
| [:display] [option ...]
 | |
| .SH DESCRIPTION
 | |
| .I Xdmx
 | |
| is a proxy X server that uses one or more other X servers as its display
 | |
| devices.  It provides multi-head X functionality for displays that might
 | |
| be located on different machines.
 | |
| .I Xdmx
 | |
| functions as a front-end X server that acts as a proxy to a set of
 | |
| back-end X servers.  All of the visible rendering is passed to the
 | |
| back-end X servers.  Clients connect to the
 | |
| .I Xdmx
 | |
| front-end, and everything appears as it would in a regular multi-head
 | |
| configuration.  If Xinerama is enabled (e.g., with
 | |
| .B +xinerama
 | |
| on the command line), the clients see a single large screen.
 | |
| .PP
 | |
| .I Xdmx
 | |
| communicates to the back-end X servers using the standard X11 protocol,
 | |
| and standard and/or commonly available X server extensions.
 | |
| .SH OPTIONS
 | |
| In addition to the normal X server options described in the
 | |
| .I Xserver(1)
 | |
| manual page,
 | |
| .I Xdmx
 | |
| accepts the following command line switches:
 | |
| .TP 8
 | |
| .BI "\-display " display-name
 | |
| This specifies the name(s) of the back-end X server display(s) to connect
 | |
| to.  This option may be specified multiple times to connect to more than
 | |
| one back-end display.  The first is used as screen 0, the second as screen 1,
 | |
| etc.  If this option is omitted, the
 | |
| .B $DISPLAY
 | |
| environment variable is used as the single back-end X server display.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "\-xinput " input-source
 | |
| This specifies the source to use for XInput extension devices.  The
 | |
| choices are the same as for
 | |
| .BR "\-input " ,
 | |
| described below, except that core devices on backend servers cannot be
 | |
| treated as XInput extension devices.  (Although extension devices on
 | |
| backend and console servers are supported as extension devices under
 | |
| .IR Xdmx ).
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "\-input " input-source
 | |
| This specifies the source to use for the core input devices.  The choices are:
 | |
| .RS
 | |
| .TP 4
 | |
| .B dummy
 | |
| A set of dummy core input drivers are used.  These never generate any
 | |
| input events.
 | |
| .sp
 | |
| .TP 4
 | |
| .B local
 | |
| The raw keyboard and pointer from the local computer are used.  A
 | |
| comma-separated list of driver names can be appended.  For example, to
 | |
| select the example Linux keyboard and PS/2 mouse driver use:
 | |
| .BR "-input local,kbd,ps2" .
 | |
| The following drivers have been implemented for Linux: kbd, ms (a
 | |
| two-button Microsoft mouse driver), ps2 (a PS/2 mouse driver), usb-mou
 | |
| (a USB mouse driver), usb-kbd (a USB keyboard driver), and usb-oth (a
 | |
| USB non-keyboard, non-mouse driver).  Additional drivers may be
 | |
| implemented in the future.  Appropriate defaults will be used if no
 | |
| comma-separated list is provided.
 | |
| .sp
 | |
| .TP 4
 | |
| .I display-name
 | |
| If the display-name is a back-end server, then core input events are
 | |
| taken from the server specified.  Otherwise, a console window will be
 | |
| opened on the specified display.
 | |
| .sp
 | |
| If the
 | |
| .I display-name
 | |
| is followed by ",xi" then XInput extension devices on the display will
 | |
| be used as
 | |
| .I Xdmx
 | |
| XInput extension devices.  If the
 | |
| .I display-name
 | |
| is followed by ",noxi" then XInput extension devices on the display will
 | |
| .B not
 | |
| be used as
 | |
| .I Xdmx
 | |
| XInput extension devices.  Currently, the default is ",xi".
 | |
| .sp
 | |
| If the
 | |
| .I display-name
 | |
| is followed by ",console" and the
 | |
| .I display-name
 | |
| refers to a display that is used as a backend display, then a console
 | |
| window will be opened on that display
 | |
| .B and
 | |
| that display will be treated as a backend display.  Otherwise (or if
 | |
| ",noconsole" is used), the display will be treated purely as a backend
 | |
| or a console display, as described above.
 | |
| .sp
 | |
| If the
 | |
| .I display-name
 | |
| is followed by ",windows", then outlines of the windows on the backend
 | |
| will be displayed inside the console window.  Otherwise (or if
 | |
| ",nowindows" is used), the console window will not display the outlines
 | |
| of backend windows.  (This option only applies to console input.)
 | |
| .sp
 | |
| If the
 | |
| .I display-name
 | |
| is followed by ",xkb", then the next 1 to 3 comma-separated parameters
 | |
| will specify the keycodes, symbols, and geometry of the keyboard for
 | |
| this input device.  For example, ",xkb,xfree86,pc104" will specify that
 | |
| the "xfree86" keycodes and the "pc104" symbols should be used to
 | |
| initialize the keyboard.  For an SGI keyboard, ",xkb,sgi/indy(pc102)"
 | |
| might be useful.  A list of keycodes, symbols, and geometries can be
 | |
| found in
 | |
| .IR /usr/X11R6/lib/X11/xkb .
 | |
| If this option is not specified, the input device will be queried,
 | |
| perhaps using the XKEYBOARD extension.
 | |
| .RE
 | |
| .sp
 | |
| .RS
 | |
| If this option isn't specified, the default input source is the first
 | |
| back-end server (the one used for screen 0).  The console window shows
 | |
| the layout of the back-end display(s) and pointer movements and key
 | |
| presses within the console window will be used as core input devices.
 | |
| .sp
 | |
| Several special function keys are active, depending on the input
 | |
| source:
 | |
| .sp
 | |
| .RS
 | |
| .B Ctrl-Alt-q
 | |
| will terminate the
 | |
| .I Xdmx
 | |
| server in all modes.
 | |
| .sp
 | |
| .B Ctrl-Alt-g
 | |
| will toggle a
 | |
| server grab in console mode (a special cursor, currently a spider, is
 | |
| used to indicate an active server grab).
 | |
| .sp
 | |
| .B Ctrl-Alt-f
 | |
| will toggle fine-grain motion in console mode (a special cursor,
 | |
| currently a cross hair, is used to indicate this mode).  If this mode is
 | |
| combined with a server grab, then the cursor will have 4 lines instead
 | |
| of only 2.
 | |
| .sp
 | |
| .BR Ctrl-Alt-F1 " through " Ctrl-Alt-F12
 | |
| will switch to another VC in local (raw) mode.
 | |
| .RE
 | |
| .RE
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-shadowfb"
 | |
| This option turns on (legacy) support for the shadow frame buffer.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-noshadowfb"
 | |
| This option turns off (legacy) support for the shadow frame buffer.
 | |
| Note that this option has been deprecated and will be removed in the
 | |
| next release.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-nomulticursor"
 | |
| This option turns off support for displaying multiple cursors on
 | |
| overlapped back-end displays.  This option is available for testing and
 | |
| benchmarking purposes.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-fontpath"
 | |
| This option sets the
 | |
| .I Xdmx
 | |
| server's default font path.  This option can be specified multiple times
 | |
| to accommodate multiple font paths.  See the
 | |
| .B "FONT PATHS"
 | |
| section below for very important information regarding setting the
 | |
| default font path.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-configfile " filename
 | |
| Specify the configuration file that should be read.  Note that if the
 | |
| .B \-display
 | |
| command-line option is used, then the configuration file will be
 | |
| ignored.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-config " name
 | |
| Specify a configuration to use.  The
 | |
| .I name
 | |
| will be the name following the
 | |
| .B virtual
 | |
| keyword in the configuration file.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-stat " "interval screens"
 | |
| This option enables the display of performance statistics.  The interval
 | |
| is in seconds.  The screens is a count of the number of back-end screens
 | |
| for which data is printed each interval.  Specifying 0 for screens will
 | |
| display data for all screens.
 | |
| .sp
 | |
| For each screen, the following information is printed: the screen
 | |
| number, an absolute count of the number of XSync() calls made
 | |
| (SyncCount), the rate of these calls during the previous interval
 | |
| (Sync/s), the average round-trip time (in microseconds) of the last 10
 | |
| XSync() calls (avSync), the maximum round-trip time (in microseconds) of
 | |
| the last 10 XSync calls (mxSync), the average number of XSync() requests
 | |
| that were pending but not yet processed for each of the last 10
 | |
| processed XSync() calls, the maximum number of XSync() requests that
 | |
| were pending but not yet processed for each of the last 10 processed
 | |
| XSync() calls, and a histogram showing the distribution of the times of
 | |
| all of the XSync() calls that were made during the previous interval.
 | |
| .sp
 | |
| (The length of the moving average and the number and value of histogram
 | |
| bins are configurable at compile time in the
 | |
| .B dmxstat.h
 | |
| header file.)
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-syncbatch " interval
 | |
| This option sets the
 | |
| .I interval
 | |
| in milliseconds for XSync() batching.  An
 | |
| .I interval
 | |
| less than or equal to 0 will disable XSync() batching.  The default
 | |
| .I interval
 | |
| is 100 ms.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-nooffscreenopt"
 | |
| This option disables the offscreen optimization.  Since the lazy window
 | |
| creation optimization requires the offscreen optimization to be enabled,
 | |
| this option will also disable the lazy window creation optimization.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-nowindowopt"
 | |
| This option disables the lazy window creation optimization.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-nosubdivprims"
 | |
| This option disables the primitive subdivision optimization.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-noxkb"
 | |
| Disable use of the XKB extension for communication with the back end
 | |
| displays.  (Combine with
 | |
| .B "-kb"
 | |
| to disable all use of XKB.)
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-depth " int
 | |
| This option sets the root window's default depth.  When choosing a
 | |
| default visual from those available on the back-end X server, the first
 | |
| visual with that matches the depth specified is used.
 | |
| .sp
 | |
| This option can be combined with the
 | |
| .BI "-cc"
 | |
| option, which specifies the default color visual class, to force the use
 | |
| of a specific depth and color class for the root window.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-norender"
 | |
| This option disables the RENDER extension.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-noglxproxy"
 | |
| This option disables GLX proxy -- the build-in GLX extension
 | |
| implementation that is DMX aware.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-noglxswapgroup"
 | |
| This option disables the swap group and swap barrier extensions in GLX
 | |
| proxy.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-glxsyncswap"
 | |
| This option enables synchronization after a swap buffers call by waiting
 | |
| until all X protocol has been processed.  When a client issues a
 | |
| glXSwapBuffers request, Xdmx relays that request to each back-end X
 | |
| server, and those requests are buffered along with all other protocol
 | |
| requests.  However, in systems that have large network buffers, this
 | |
| buffering can lead to the set of back-end X servers handling the swap
 | |
| buffers request asynchronously.  With this option, an XSync() request is
 | |
| issued to each back-end X server after sending the swap buffers request.
 | |
| The XSync() requests will flush all buffered protocol (including the
 | |
| swap buffers requests) and wait until the back-end X servers have
 | |
| processed those requests before continuing.  This option does not wait
 | |
| until all GL commands have been processed so there might be previously
 | |
| issued commands that are still being processed in the GL pipe when the
 | |
| XSync() request returns.  See the
 | |
| .BI "-glxfinishswap"
 | |
| option below if Xdmx should wait until the GL commands have been
 | |
| processed.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-glxfinishswap"
 | |
| This option enables synchronization after a swap buffers call by waiting
 | |
| until all GL commands have been completed.  It is similar to the
 | |
| .BI "-glxsyncswap"
 | |
| option above; however, instead of issuing an XSync(), it issues a
 | |
| glFinish() request to each back-end X server after sending the swap
 | |
| buffers requests.  The glFinish() request will flush all buffered
 | |
| protocol requests, process both X and GL requests, and wait until all
 | |
| previously called GL commands are complete before returning.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-ignorebadfontpaths"
 | |
| This option ignores font paths that are not available on all back-end
 | |
| servers by removing the bad font path(s) from the default font path
 | |
| list.  If no valid font paths are left after removing the bad paths, an
 | |
| error to that effect is printed in the log.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-addremovescreens"
 | |
| This option enables the dynamic addition and removal of screens, which
 | |
| is disabled by default.  Note that GLXProxy and Render do not yet
 | |
| support dynamic addition and removal of screens, and must be disabled
 | |
| via the
 | |
| .BI "-noglxproxy"
 | |
| and
 | |
| .BI "-norender"
 | |
| command line options described above.
 | |
| .sp
 | |
| .TP 8
 | |
| .BI "-param"
 | |
| This option specifies parameters on the command line.  Currently, only
 | |
| parameters dealing with XKEYBOARD configuration are supported.  These
 | |
| parameters apply only to the core keyboard.  Parameter values are
 | |
| installation-dependent.  Please see
 | |
| .I /usr/X11R6/lib/X11/xkb
 | |
| or a similar directory for complete information.
 | |
| .RS
 | |
| .TP 8
 | |
| .B XkbRules
 | |
| Defaults to "xfree86".  Other values may include "sgi" and "sun".
 | |
| .sp
 | |
| .TP 8
 | |
| .B XkbModel
 | |
| Defaults to "pc101".  When used with "xfree86" rules, other values may
 | |
| include "pc102", "pc104", "pc105", "microsoft", and many others.  When
 | |
| used with "sun" rules, other values may include "type4" and "type5".
 | |
| .sp
 | |
| .TP 8
 | |
| .B XkbLayout
 | |
| Defaults to "us".  Other country codes and "dvorak" are usually
 | |
| available.
 | |
| .sp
 | |
| .TP 8
 | |
| .B XkbVariant
 | |
| Defaults to "".
 | |
| .sp
 | |
| .TP 8
 | |
| .B XkbOptions
 | |
| Defaults to "".
 | |
| .RE
 | |
| .SH "CONFIGURATION FILE GRAMMAR"
 | |
| The following words and tokens are reserved:
 | |
| .RS
 | |
| .B virtual
 | |
| .B display
 | |
| .B wall
 | |
| .B option
 | |
| .B param
 | |
| .B {
 | |
| .B }
 | |
| .B ;
 | |
| .B #
 | |
| .RE
 | |
| .PP
 | |
| Comments start with a
 | |
| .B #
 | |
| mark and extend to the end of the line.  They may appear anywhere.  If a
 | |
| configuration file is read into
 | |
| .BR xdmxconfig ,
 | |
| the comments in that file will be preserved, but will not be editable.
 | |
| .PP
 | |
| The grammar is as follows:
 | |
| .RS
 | |
| virtual-list ::= [ virtual-list ] | virtual
 | |
| 
 | |
| virtual ::=
 | |
| .B virtual
 | |
| [ name ] [ dim ]
 | |
| .B {
 | |
| dw-list
 | |
| .B }
 | |
| 
 | |
| dw-list ::= [ dw-list ] | dw
 | |
| 
 | |
| dw ::= display | wall | option
 | |
| 
 | |
| display ::=
 | |
| .B display
 | |
| name [ geometry ] [ / geometry ] [ origin ]
 | |
| .B ;
 | |
| 
 | |
| wall ::=
 | |
| .B wall
 | |
| [ dim ] [ dim ] name-list
 | |
| .B ;
 | |
| 
 | |
| option ::=
 | |
| .B option
 | |
| name-list
 | |
| .B ;
 | |
| 
 | |
| param ::=
 | |
| .B param
 | |
| name-list
 | |
| .B ;
 | |
| 
 | |
| param ::=
 | |
| .B param {
 | |
| param-list
 | |
| .B }
 | |
| 
 | |
| param-list ::= [ param-list ] | name-list
 | |
| .B ;
 | |
| 
 | |
| name-list ::= [ name-list ] | name
 | |
| 
 | |
| name ::= string | double-quoted-string
 | |
| 
 | |
| dim ::= integer
 | |
| .B x
 | |
| integer
 | |
| 
 | |
| geometry ::= [ integer
 | |
| .B x
 | |
| integer ] [ signed-integer signed-integer ]
 | |
| 
 | |
| origin ::=
 | |
| .B @
 | |
| integer
 | |
| .B x
 | |
| integer
 | |
| .RE
 | |
| .PP
 | |
| The name following
 | |
| .B virtual
 | |
| is used as an identifier for the configuration, and may be passed to
 | |
| .B Xdmx
 | |
| using the
 | |
| .B \-config
 | |
| command line option.  The name of a display should be standard X display
 | |
| name, although no checking is performed (e.g., "machine:0").
 | |
| .PP
 | |
| For names, double quotes are optional unless the name is reserved or
 | |
| contains spaces.
 | |
| .PP
 | |
| The first dimension following
 | |
| .B wall
 | |
| is the dimension for tiling (e.g., 2x4 or 4x4).  The second dimension
 | |
| following
 | |
| .B wall
 | |
| is the dimension of each display in the wall (e.g., 1280x1024).
 | |
| .PP
 | |
| The first geometry following
 | |
| .B display
 | |
| is the geometry of the screen window on the backend server.  The second
 | |
| geometry, which is always preceeded by a slash, is the geometry of the
 | |
| root window.  By default, the root window has the same geometry as the
 | |
| screen window.
 | |
| .PP
 | |
| The
 | |
| .B option
 | |
| line can be used to specify any command-line options (e.g.,
 | |
| .BR \-input ).
 | |
| (It cannot be used to specify the name of the front-end display.)  The
 | |
| option line is processed once at server startup, just line command line
 | |
| options.  This behavior may be unexpected.
 | |
| .SH "CONFIGURATION FILE EXAMPLES"
 | |
| Two displays being used for a desktop may be specified in any of the
 | |
| following formats:
 | |
| .RS
 | |
| .nf
 | |
| virtual example0 {
 | |
|     display d0:0 1280x1024 @0x0;
 | |
|     display d1:0 1280x1024 @1280x0;
 | |
| }
 | |
| .sp
 | |
| virtual example1 {
 | |
|     display d0:0 1280x1024;
 | |
|     display d1:0 @1280x0;
 | |
| }
 | |
| .sp
 | |
| virtual example2 {
 | |
|     display "d0:0";
 | |
|     display "d1:0" @1280x0;
 | |
| }
 | |
| .sp
 | |
| virtual example3 { wall 2x1 d0:0 d1:0; }
 | |
| .fi
 | |
| .RE
 | |
| A 4x4 wall of 16 total displays could be specified as follows (if no
 | |
| tiling dimension is specified, an approximate square is used):
 | |
| .RS
 | |
| .nf
 | |
| virtual example4 {
 | |
|     wall d0:0 d1:0 d2:0 d3:0
 | |
|          d4:0 d5:0 d6:0 d7:0
 | |
|          d8:0 d9:0 da:0 db:0
 | |
|          dc:0 dd:0 de:0 df:0;
 | |
| }
 | |
| .fi
 | |
| .RE
 | |
| .SH "FONT PATHS"
 | |
| The font path used by the
 | |
| .I Xdmx
 | |
| front-end server will be propagated to each back-end server,which
 | |
| requires that each back-end server have access to the exact same font
 | |
| paths as the front-end server.  This can be most easily handled by
 | |
| either using a font server (e.g., xfs) or by remotely mounting the font
 | |
| paths on each back-end server, and then setting the
 | |
| .I Xdmx
 | |
| server's default font path with the
 | |
| -I "-fontpath"
 | |
| command line option described above.
 | |
| .PP
 | |
| For example, if you specify a font path with the following command line:
 | |
| .RS
 | |
| Xdmx :1 -display d0:0 -fontpath /usr/fonts/75dpi/ -fontpath /usr/fonts/Type1/ +xinerama
 | |
| .RE
 | |
| Then, /usr/fonts/75dpi/ and /usr/fonts/Type1/ must be valid font paths
 | |
| on the
 | |
| .I Xdmx
 | |
| server and all back-end server, which is d0 in this example.
 | |
| .PP
 | |
| Font servers can also be specified with the
 | |
| .I "-fontpath"
 | |
| option.  For example, let's assume that a properly configured font
 | |
| server is running on host d0.  Then, the following command line
 | |
| .RS
 | |
| Xdmx :1 -display d0:0 -display d1:0 -fontpath tcp/d0:7100 +xinerama
 | |
| .RE
 | |
| will initialize the front-end
 | |
| .I Xdmx
 | |
| server and each of the back-end servers to use the font server on d0.
 | |
| .PP
 | |
| Some fonts might not be supported by either the front-end or the
 | |
| back-end servers.  For example, let's assume the front-end
 | |
| .I Xdmx
 | |
| server includes support Type1 fonts, but one of the back-end servers
 | |
| does not.  Let's also assume that the default font path for
 | |
| .I Xdmx
 | |
| includes Type1 fonts in its font path.  Then, when
 | |
| .I Xdmx
 | |
| initializes the default font path to load the default font, the font
 | |
| path that includes Type1 fonts (along with the other default font paths
 | |
| that are used by the
 | |
| .I Xdmx
 | |
| server) is sent to the back-end server that cannot handle Type1 fonts.
 | |
| That back-end server then rejects the font path and sends an error back
 | |
| to the
 | |
| .I Xdmx
 | |
| server.
 | |
| .I Xdmx
 | |
| then prints an error message and exits because it failed to set the
 | |
| default font path and was unable load the default font.
 | |
| .PP
 | |
| To fix this error, the offending font path must be removed from the
 | |
| default font path by using a different
 | |
| .I "-fontpath"
 | |
| command line option.
 | |
| .PP
 | |
| The
 | |
| .I "-fontpath"
 | |
| option can also be added to the configuration file as described above.
 | |
| .SH "COMMAND-LINE EXAMPLES"
 | |
| The back-end machines are d0 and d1, core input is from the pointer and
 | |
| keyboard attached to d0, clients will refer to :1 when opening windows:
 | |
| .RS
 | |
| Xdmx :1 -display d0:0 -display d1:0 +xinerama
 | |
| .RE
 | |
| .PP
 | |
| As above, except with core input from d1:
 | |
| .RS
 | |
| Xdmx :1 -display d0:0 -display d1:0 -input d1:0 +xinerama
 | |
| .RE
 | |
| .PP
 | |
| As above, except with core input from a console window on the local
 | |
| display:
 | |
| .RS
 | |
| Xdmx :1 -display d0:0 -display d1:0 -input :0 +xinerama
 | |
| .RE
 | |
| .PP
 | |
| As above, except with core input from the local keyboard and mouse:
 | |
| .RS
 | |
| Xdmx :1 -display d0:0 -display d1:0 -input local,kbd,ps2 +xinerama
 | |
| .RE
 | |
| Note that local input can be used under Linux while another X session is
 | |
| running on :0 (assuming the user can access the Linux console tty and
 | |
| mouse devices): a new (blank) VC will be used for keyboard input on the
 | |
| local machine and the Ctrl-Alt-F* sequence will be available to change
 | |
| to another VC (possibly back to another X session running on the local
 | |
| machine).  Using Ctrl-Alt-Backspace on the blank VC will terminate the
 | |
| Xdmx session and return to the original VC.
 | |
| .PP
 | |
| This example uses the configuration file shown in the previous section:
 | |
| .RS
 | |
| Xdmx :1 -input :0 +xinerama -configfile filename -config example2
 | |
| .RE
 | |
| With this configuration file line:
 | |
| .RS
 | |
| option -input :0 +xinerama;
 | |
| .RE
 | |
| the command line can be shortened to:
 | |
| .RS
 | |
| Xdmx :1 -configfile filename -config example2
 | |
| .RE
 | |
| .SH "USING THE USB DEVICE DRIVERS"
 | |
| .P
 | |
| The USB device drivers use the devices called
 | |
| .IR /dev/input/event0 ", " /dev/input/event1 ", etc."
 | |
| under Linux.  These devices are driven using the
 | |
| .I evdev
 | |
| Linux kernel module, which is part of the hid suite.  Please note that
 | |
| if you load the
 | |
| .I mousedev
 | |
| or
 | |
| .I kbddev
 | |
| Linux kernel modules, then USB devices will appear as core Linux input
 | |
| devices and you will not be able to select between using the device only
 | |
| as an
 | |
| .I Xdmx
 | |
| core device or an
 | |
| .I Xdmx
 | |
| XInput extension device.  Further, you may be unable to unload the
 | |
| .I mousedev
 | |
| Linux kernel module if
 | |
| .I XFree86
 | |
| is configured to use
 | |
| .I /dev/input/mice
 | |
| as an input device (this is quite helpful for laptop users and is set up
 | |
| by default under some Linux distributions, but should be changed if USB
 | |
| devices are to be used with
 | |
| .IR Xdmx ).
 | |
| .PP
 | |
| The USB device drivers search through the Linux devices for the first
 | |
| mouse, keyboard, or non-mouse-non-keyboard Linux device and use that
 | |
| device.
 | |
| .SH "KEYBOARD INITIALIZATION"
 | |
| .PP
 | |
| If
 | |
| .I Xdmx
 | |
| was invoked with
 | |
| .I \-xkb
 | |
| or was
 | |
| .B not
 | |
| compiled to use the XKEYBOARD extension, then a keyboard on a backend or
 | |
| console will be initialized using the map that the host X server
 | |
| provides.
 | |
| .PP
 | |
| If the XKEYBOARD extension is used for both
 | |
| .I Xdmx
 | |
| and the host X server for the keyboard (i.e., the backend or console X
 | |
| server), then the type of the keyboard will
 | |
| be obtained from the host X server and the keyboard under
 | |
| .I Xdmx
 | |
| will be initialized with that information.  Otherwise, the default type
 | |
| of keyboard will be initialized.  In both cases, the map from the host X
 | |
| server will
 | |
| .B not
 | |
| be used.  This means that different initial behavior may be noted with
 | |
| and without XKEYBOARD.  Consistent and expected results will be obtained
 | |
| by running XKEYBOARD on all servers and by avoiding the use of
 | |
| .I xmodmap
 | |
| on the backend or console X servers prior to starting
 | |
| .IR Xdmx .
 | |
| .PP
 | |
| If
 | |
| .I \-xkbmap
 | |
| is specified on the
 | |
| .I Xdmx
 | |
| command line, then that map will currently be used for all keyboards.
 | |
| .SH "MULTIPLE CORE KEYBOARDS"
 | |
| X was not designed to support multiple core keyboards.  However,
 | |
| .I Xdmx
 | |
| provides some support for multiple core keyboards.  Best results will be
 | |
| obtained if all of the keyboards are of the same type and are using the
 | |
| same keyboard map.  Because the X server passes raw key code information
 | |
| to the X client, key symbols for keyboards with different key maps would
 | |
| be different if the key code for each keyboard was sent without
 | |
| translation to the client.  Therefore,
 | |
| .I Xdmx
 | |
| will attempt to translate the key code from a core keyboard to the key
 | |
| code for the key with the same key symbol of the
 | |
| .B first
 | |
| core keyboard that was loaded.  If the key symbol appears in both maps,
 | |
| the results will be expected.  Otherwise, the second core keyboard will
 | |
| return a NoSymbol key symbol for some keys that would have been
 | |
| translated if it was the first core keyboard.
 | |
| .ig
 | |
| .SH ENVIRONMENT
 | |
| ..
 | |
| .ig
 | |
| .SH FILES
 | |
| ..
 | |
| .SH "SEE ALSO"
 | |
| .BR DMX "(3X), " X "(__miscmansuffix__), " Xserver "(1), " xdmxconfig "(1), "
 | |
| .BR vdltodmx "(1), " xfs "(1), " xkbcomp (1)
 | |
| .SH AUTHORS
 | |
| Kevin E. Martin
 | |
| .I <kem@redhat.com>,
 | |
| David H. Dawes
 | |
| .I <dawes@xfree86.org>,
 | |
| and
 | |
| Rickard E. (Rik) Faith
 | |
| .IR <faith@redhat.com> .
 | |
| .PP
 | |
| Portions of
 | |
| .I Xdmx
 | |
| are based on code from The XFree86 Project
 | |
| .RI ( http://www.xfree86.org )
 | |
| and X.Org
 | |
| .RI ( http://www.x.org ).
 |