~ubuntu-branches/ubuntu/precise/xorg-server/precise-updates

« back to all changes in this revision

Viewing changes to hw/dmx/man/Xdmx.man

Tags: 2:1.10.1-2
* Build xserver-xorg-core-udeb on hurd-i386.  Thanks, Samuel Thibault!
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
.\" $XFree86$
 
2
.\"
 
3
.\" Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
 
4
.\" All Rights Reserved.
 
5
.\"
 
6
.\" Permission is hereby granted, free of charge, to any person obtaining
 
7
.\" a copy of this software and associated documentation files (the
 
8
.\" "Software"), to deal in the Software without restriction, including
 
9
.\" without limitation on the rights to use, copy, modify, merge,
 
10
.\" publish, distribute, sublicense, and/or sell copies of the Software,
 
11
.\" and to permit persons to whom the Software is furnished to do so,
 
12
.\" subject to the following conditions:
 
13
.\"
 
14
.\" he above copyright notice and this permission notice (including the
 
15
.\" next paragraph) shall be included in all copies or substantial
 
16
.\" portions of the Software.
 
17
.\"
 
18
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 
19
.\" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 
20
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 
21
.\" NON-INFRINGEMENT.  IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
 
22
.\" BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 
23
.\" ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 
24
.\" CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 
25
.\" SOFTWARE.
 
26
.TH Xdmx 1 __vendorversion__
 
27
.SH NAME
 
28
Xdmx - Distributed Multi-head X server
 
29
.SH SYNOPSIS
 
30
.B Xdmx
 
31
[:display] [option ...]
 
32
.SH DESCRIPTION
 
33
.I Xdmx
 
34
is a proxy X server that uses one or more other X servers as its display
 
35
devices.  It provides multi-head X functionality for displays that might
 
36
be located on different machines.
 
37
.I Xdmx
 
38
functions as a front-end X server that acts as a proxy to a set of
 
39
back-end X servers.  All of the visible rendering is passed to the
 
40
back-end X servers.  Clients connect to the
 
41
.I Xdmx
 
42
front-end, and everything appears as it would in a regular multi-head
 
43
configuration.  If Xinerama is enabled (e.g., with
 
44
.B +xinerama
 
45
on the command line), the clients see a single large screen.
 
46
.PP
 
47
.I Xdmx
 
48
communicates to the back-end X servers using the standard X11 protocol,
 
49
and standard and/or commonly available X server extensions.
 
50
.SH OPTIONS
 
51
In addition to the normal X server options described in the
 
52
.I Xserver(1)
 
53
manual page,
 
54
.I Xdmx
 
55
accepts the following command line switches:
 
56
.TP 8
 
57
.BI "\-display " display-name
 
58
This specifies the name(s) of the back-end X server display(s) to connect
 
59
to.  This option may be specified multiple times to connect to more than
 
60
one back-end display.  The first is used as screen 0, the second as screen 1,
 
61
etc.  If this option is omitted, the
 
62
.B $DISPLAY
 
63
environment variable is used as the single back-end X server display.
 
64
.sp
 
65
.TP 8
 
66
.BI "\-xinput " input-source
 
67
This specifies the source to use for XInput extension devices.  The
 
68
choices are the same as for
 
69
.BR "\-input " ,
 
70
described below, except that core devices on backend servers cannot be
 
71
treated as XInput extension devices.  (Although extension devices on
 
72
backend and console servers are supported as extension devices under
 
73
.IR Xdmx ).
 
74
.sp
 
75
.TP 8
 
76
.BI "\-input " input-source
 
77
This specifies the source to use for the core input devices.  The choices are:
 
78
.RS
 
79
.TP 4
 
80
.B dummy
 
81
A set of dummy core input drivers are used.  These never generate any
 
82
input events.
 
83
.sp
 
84
.TP 4
 
85
.B local
 
86
The raw keyboard and pointer from the local computer are used.  A
 
87
comma-separated list of driver names can be appended.  For example, to
 
88
select the example Linux keyboard and PS/2 mouse driver use:
 
89
.BR "-input local,kbd,ps2" .
 
90
The following drivers have been implemented for Linux: kbd, ms (a
 
91
two-button Microsoft mouse driver), ps2 (a PS/2 mouse driver), usb-mou
 
92
(a USB mouse driver), usb-kbd (a USB keyboard driver), and usb-oth (a
 
93
USB non-keyboard, non-mouse driver).  Additional drivers may be
 
94
implemented in the future.  Appropriate defaults will be used if no
 
95
comma-separated list is provided.
 
96
.sp
 
97
.TP 4
 
98
.I display-name
 
99
If the display-name is a back-end server, then core input events are
 
100
taken from the server specified.  Otherwise, a console window will be
 
101
opened on the specified display.
 
102
.sp
 
103
If the
 
104
.I display-name
 
105
is followed by ",xi" then XInput extension devices on the display will
 
106
be used as
 
107
.I Xdmx
 
108
XInput extension devices.  If the
 
109
.I display-name
 
110
is followed by ",noxi" then XInput extension devices on the display will
 
111
.B not
 
112
be used as
 
113
.I Xdmx
 
114
XInput extension devices.  Currently, the default is ",xi".
 
115
.sp
 
116
If the
 
117
.I display-name
 
118
is followed by ",console" and the
 
119
.I display-name
 
120
refers to a display that is used as a backend display, then a console
 
121
window will be opened on that display
 
122
.B and
 
123
that display will be treated as a backend display.  Otherwise (or if
 
124
",noconsole" is used), the display will be treated purely as a backend
 
125
or a console display, as described above.
 
126
.sp
 
127
If the
 
128
.I display-name
 
129
is followed by ",windows", then outlines of the windows on the backend
 
130
will be displayed inside the console window.  Otherwise (or if
 
131
",nowindows" is used), the console window will not display the outlines
 
132
of backend windows.  (This option only applies to console input.)
 
133
.sp
 
134
If the
 
135
.I display-name
 
136
is followed by ",xkb", then the next 1 to 3 comma-separated parameters
 
137
will specify the keycodes, symbols, and geometry of the keyboard for
 
138
this input device.  For example, ",xkb,xfree86,pc104" will specify that
 
139
the "xfree86" keycodes and the "pc104" symbols should be used to
 
140
initialize the keyboard.  For an SGI keyboard, ",xkb,sgi/indy(pc102)"
 
141
might be useful.  A list of keycodes, symbols, and geometries can be
 
142
found in
 
143
.IR /usr/X11R6/lib/X11/xkb .
 
144
If this option is not specified, the input device will be queried,
 
145
perhaps using the XKEYBOARD extension.
 
146
.RE
 
147
.sp
 
148
.RS
 
149
If this option isn't specified, the default input source is the first
 
150
back-end server (the one used for screen 0).  The console window shows
 
151
the layout of the back-end display(s) and pointer movements and key
 
152
presses within the console window will be used as core input devices.
 
153
.sp
 
154
Several special function keys are active, depending on the input
 
155
source:
 
156
.sp
 
157
.RS
 
158
.B Ctrl-Alt-q
 
159
will terminate the
 
160
.I Xdmx
 
161
server in all modes.
 
162
.sp
 
163
.B Ctrl-Alt-g
 
164
will toggle a
 
165
server grab in console mode (a special cursor, currently a spider, is
 
166
used to indicate an active server grab).
 
167
.sp
 
168
.B Ctrl-Alt-f
 
169
will toggle fine-grain motion in console mode (a special cursor,
 
170
currently a cross hair, is used to indicate this mode).  If this mode is
 
171
combined with a server grab, then the cursor will have 4 lines instead
 
172
of only 2.
 
173
.sp
 
174
.BR Ctrl-Alt-F1 " through " Ctrl-Alt-F12
 
175
will switch to another VC in local (raw) mode.
 
176
.RE
 
177
.RE
 
178
.sp
 
179
.TP 8
 
180
.BI "-shadowfb"
 
181
This option turns on (legacy) support for the shadow frame buffer.
 
182
.sp
 
183
.TP 8
 
184
.BI "-noshadowfb"
 
185
This option turns off (legacy) support for the shadow frame buffer.
 
186
Note that this option has been deprecated and will be removed in the
 
187
next release.
 
188
.sp
 
189
.TP 8
 
190
.BI "-nomulticursor"
 
191
This option turns off support for displaying multiple cursors on
 
192
overlapped back-end displays.  This option is available for testing and
 
193
benchmarking purposes.
 
194
.sp
 
195
.TP 8
 
196
.BI "-fontpath"
 
197
This option sets the
 
198
.I Xdmx
 
199
server's default font path.  This option can be specified multiple times
 
200
to accommodate multiple font paths.  See the
 
201
.B "FONT PATHS"
 
202
section below for very important information regarding setting the
 
203
default font path.
 
204
.sp
 
205
.TP 8
 
206
.BI "-configfile " filename
 
207
Specify the configuration file that should be read.  Note that if the
 
208
.B \-display
 
209
command-line option is used, then the configuration file will be
 
210
ignored.
 
211
.sp
 
212
.TP 8
 
213
.BI "-config " name
 
214
Specify a configuration to use.  The
 
215
.I name
 
216
will be the name following the
 
217
.B virtual
 
218
keyword in the configuration file.
 
219
.sp
 
220
.TP 8
 
221
.BI "-stat " "interval screens"
 
222
This option enables the display of performance statistics.  The interval
 
223
is in seconds.  The screens is a count of the number of back-end screens
 
224
for which data is printed each interval.  Specifying 0 for screens will
 
225
display data for all screens.
 
226
.sp
 
227
For each screen, the following information is printed: the screen
 
228
number, an absolute count of the number of XSync() calls made
 
229
(SyncCount), the rate of these calls during the previous interval
 
230
(Sync/s), the average round-trip time (in microseconds) of the last 10
 
231
XSync() calls (avSync), the maximum round-trip time (in microseconds) of
 
232
the last 10 XSync calls (mxSync), the average number of XSync() requests
 
233
that were pending but not yet processed for each of the last 10
 
234
processed XSync() calls, the maximum number of XSync() requests that
 
235
were pending but not yet processed for each of the last 10 processed
 
236
XSync() calls, and a histogram showing the distribution of the times of
 
237
all of the XSync() calls that were made during the previous interval.
 
238
.sp
 
239
(The length of the moving average and the number and value of histogram
 
240
bins are configurable at compile time in the
 
241
.B dmxstat.h
 
242
header file.)
 
243
.sp
 
244
.TP 8
 
245
.BI "-syncbatch " interval
 
246
This option sets the
 
247
.I interval
 
248
in milliseconds for XSync() batching.  An
 
249
.I interval
 
250
less than or equal to 0 will disable XSync() batching.  The default
 
251
.I interval
 
252
is 100 ms.
 
253
.sp
 
254
.TP 8
 
255
.BI "-nooffscreenopt"
 
256
This option disables the offscreen optimization.  Since the lazy window
 
257
creation optimization requires the offscreen optimization to be enabled,
 
258
this option will also disable the lazy window creation optimization.
 
259
.sp
 
260
.TP 8
 
261
.BI "-nowindowopt"
 
262
This option disables the lazy window creation optimization.
 
263
.sp
 
264
.TP 8
 
265
.BI "-nosubdivprims"
 
266
This option disables the primitive subdivision optimization.
 
267
.sp
 
268
.TP 8
 
269
.BI "-noxkb"
 
270
Disable use of the XKB extension for communication with the back end
 
271
displays.  (Combine with
 
272
.B "-kb"
 
273
to disable all use of XKB.)
 
274
.sp
 
275
.TP 8
 
276
.BI "-depth " int
 
277
This option sets the root window's default depth.  When choosing a
 
278
default visual from those available on the back-end X server, the first
 
279
visual with that matches the depth specified is used.
 
280
.sp
 
281
This option can be combined with the
 
282
.BI "-cc"
 
283
option, which specifies the default color visual class, to force the use
 
284
of a specific depth and color class for the root window.
 
285
.sp
 
286
.TP 8
 
287
.BI "-norender"
 
288
This option disables the RENDER extension.
 
289
.sp
 
290
.TP 8
 
291
.BI "-noglxproxy"
 
292
This option disables GLX proxy -- the build-in GLX extension
 
293
implementation that is DMX aware.
 
294
.sp
 
295
.TP 8
 
296
.BI "-noglxswapgroup"
 
297
This option disables the swap group and swap barrier extensions in GLX
 
298
proxy.
 
299
.sp
 
300
.TP 8
 
301
.BI "-glxsyncswap"
 
302
This option enables synchronization after a swap buffers call by waiting
 
303
until all X protocol has been processed.  When a client issues a
 
304
glXSwapBuffers request, Xdmx relays that request to each back-end X
 
305
server, and those requests are buffered along with all other protocol
 
306
requests.  However, in systems that have large network buffers, this
 
307
buffering can lead to the set of back-end X servers handling the swap
 
308
buffers request asynchronously.  With this option, an XSync() request is
 
309
issued to each back-end X server after sending the swap buffers request.
 
310
The XSync() requests will flush all buffered protocol (including the
 
311
swap buffers requests) and wait until the back-end X servers have
 
312
processed those requests before continuing.  This option does not wait
 
313
until all GL commands have been processed so there might be previously
 
314
issued commands that are still being processed in the GL pipe when the
 
315
XSync() request returns.  See the
 
316
.BI "-glxfinishswap"
 
317
option below if Xdmx should wait until the GL commands have been
 
318
processed.
 
319
.sp
 
320
.TP 8
 
321
.BI "-glxfinishswap"
 
322
This option enables synchronization after a swap buffers call by waiting
 
323
until all GL commands have been completed.  It is similar to the
 
324
.BI "-glxsyncswap"
 
325
option above; however, instead of issuing an XSync(), it issues a
 
326
glFinish() request to each back-end X server after sending the swap
 
327
buffers requests.  The glFinish() request will flush all buffered
 
328
protocol requests, process both X and GL requests, and wait until all
 
329
previously called GL commands are complete before returning.
 
330
.sp
 
331
.TP 8
 
332
.BI "-ignorebadfontpaths"
 
333
This option ignores font paths that are not available on all back-end
 
334
servers by removing the bad font path(s) from the default font path
 
335
list.  If no valid font paths are left after removing the bad paths, an
 
336
error to that effect is printed in the log.
 
337
.sp
 
338
.TP 8
 
339
.BI "-addremovescreens"
 
340
This option enables the dynamic addition and removal of screens, which
 
341
is disabled by default.  Note that GLXProxy and Render do not yet
 
342
support dynamic addition and removal of screens, and must be disabled
 
343
via the
 
344
.BI "-noglxproxy"
 
345
and
 
346
.BI "-norender"
 
347
command line options described above.
 
348
.sp
 
349
.TP 8
 
350
.BI "-param"
 
351
This option specifies parameters on the command line.  Currently, only
 
352
parameters dealing with XKEYBOARD configuration are supported.  These
 
353
parameters apply only to the core keyboard.  Parameter values are
 
354
installation-dependent.  Please see
 
355
.I /usr/X11R6/lib/X11/xkb
 
356
or a similar directory for complete information.
 
357
.RS
 
358
.TP 8
 
359
.B XkbRules
 
360
Defaults to "xfree86".  Other values may include "sgi" and "sun".
 
361
.sp
 
362
.TP 8
 
363
.B XkbModel
 
364
Defaults to "pc101".  When used with "xfree86" rules, other values may
 
365
include "pc102", "pc104", "pc105", "microsoft", and many others.  When
 
366
used with "sun" rules, other values may include "type4" and "type5".
 
367
.sp
 
368
.TP 8
 
369
.B XkbLayout
 
370
Defaults to "us".  Other country codes and "dvorak" are usually
 
371
available.
 
372
.sp
 
373
.TP 8
 
374
.B XkbVariant
 
375
Defaults to "".
 
376
.sp
 
377
.TP 8
 
378
.B XkbOptions
 
379
Defaults to "".
 
380
.RE
 
381
.SH "CONFIGURATION FILE GRAMMAR"
 
382
The following words and tokens are reserved:
 
383
.RS
 
384
.B virtual
 
385
.B display
 
386
.B wall
 
387
.B option
 
388
.B param
 
389
.B {
 
390
.B }
 
391
.B ;
 
392
.B #
 
393
.RE
 
394
.PP
 
395
Comments start with a
 
396
.B #
 
397
mark and extend to the end of the line.  They may appear anywhere.  If a
 
398
configuration file is read into
 
399
.BR xdmxconfig ,
 
400
the comments in that file will be preserved, but will not be editable.
 
401
.PP
 
402
The grammar is as follows:
 
403
.RS
 
404
virtual-list ::= [ virtual-list ] | virtual
 
405
 
 
406
virtual ::=
 
407
.B virtual
 
408
[ name ] [ dim ]
 
409
.B {
 
410
dw-list
 
411
.B }
 
412
 
 
413
dw-list ::= [ dw-list ] | dw
 
414
 
 
415
dw ::= display | wall | option
 
416
 
 
417
display ::=
 
418
.B display
 
419
name [ geometry ] [ / geometry ] [ origin ]
 
420
.B ;
 
421
 
 
422
wall ::=
 
423
.B wall
 
424
[ dim ] [ dim ] name-list
 
425
.B ;
 
426
 
 
427
option ::=
 
428
.B option
 
429
name-list
 
430
.B ;
 
431
 
 
432
param ::=
 
433
.B param
 
434
name-list
 
435
.B ;
 
436
 
 
437
param ::=
 
438
.B param {
 
439
param-list
 
440
.B }
 
441
 
 
442
param-list ::= [ param-list ] | name-list
 
443
.B ;
 
444
 
 
445
name-list ::= [ name-list ] | name
 
446
 
 
447
name ::= string | double-quoted-string
 
448
 
 
449
dim ::= integer
 
450
.B x
 
451
integer
 
452
 
 
453
geometry ::= [ integer
 
454
.B x
 
455
integer ] [ signed-integer signed-integer ]
 
456
 
 
457
origin ::=
 
458
.B @
 
459
integer
 
460
.B x
 
461
integer
 
462
.RE
 
463
.PP
 
464
The name following
 
465
.B virtual
 
466
is used as an identifier for the configuration, and may be passed to
 
467
.B Xdmx
 
468
using the
 
469
.B \-config
 
470
command line option.  The name of a display should be standard X display
 
471
name, although no checking is performed (e.g., "machine:0").
 
472
.PP
 
473
For names, double quotes are optional unless the name is reserved or
 
474
contains spaces.
 
475
.PP
 
476
The first dimension following
 
477
.B wall
 
478
is the dimension for tiling (e.g., 2x4 or 4x4).  The second dimension
 
479
following
 
480
.B wall
 
481
is the dimension of each display in the wall (e.g., 1280x1024).
 
482
.PP
 
483
The first geometry following
 
484
.B display
 
485
is the geometry of the screen window on the backend server.  The second
 
486
geometry, which is always preceeded by a slash, is the geometry of the
 
487
root window.  By default, the root window has the same geometry as the
 
488
screen window.
 
489
.PP
 
490
The
 
491
.B option
 
492
line can be used to specify any command-line options (e.g.,
 
493
.BR \-input ).
 
494
(It cannot be used to specify the name of the front-end display.)  The
 
495
option line is processed once at server startup, just line command line
 
496
options.  This behavior may be unexpected.
 
497
.SH "CONFIGURATION FILE EXAMPLES"
 
498
Two displays being used for a desktop may be specified in any of the
 
499
following formats:
 
500
.RS
 
501
.nf
 
502
virtual example0 {
 
503
    display d0:0 1280x1024 @0x0;
 
504
    display d1:0 1280x1024 @1280x0;
 
505
}
 
506
.sp
 
507
virtual example1 {
 
508
    display d0:0 1280x1024;
 
509
    display d1:0 @1280x0;
 
510
}
 
511
.sp
 
512
virtual example2 {
 
513
    display "d0:0";
 
514
    display "d1:0" @1280x0;
 
515
}
 
516
.sp
 
517
virtual example3 { wall 2x1 d0:0 d1:0; }
 
518
.fi
 
519
.RE
 
520
A 4x4 wall of 16 total displays could be specified as follows (if no
 
521
tiling dimension is specified, an approximate square is used):
 
522
.RS
 
523
.nf
 
524
virtual example4 {
 
525
    wall d0:0 d1:0 d2:0 d3:0
 
526
         d4:0 d5:0 d6:0 d7:0
 
527
         d8:0 d9:0 da:0 db:0
 
528
         dc:0 dd:0 de:0 df:0;
 
529
}
 
530
.fi
 
531
.RE
 
532
.SH "FONT PATHS"
 
533
The font path used by the
 
534
.I Xdmx
 
535
front-end server will be propagated to each back-end server,which
 
536
requires that each back-end server have access to the exact same font
 
537
paths as the front-end server.  This can be most easily handled by
 
538
either using a font server (e.g., xfs) or by remotely mounting the font
 
539
paths on each back-end server, and then setting the
 
540
.I Xdmx
 
541
server's default font path with the
 
542
-I "-fontpath"
 
543
command line option described above.
 
544
.PP
 
545
For example, if you specify a font path with the following command line:
 
546
.RS
 
547
Xdmx :1 -display d0:0 -fontpath /usr/fonts/75dpi/ -fontpath /usr/fonts/Type1/ +xinerama
 
548
.RE
 
549
Then, /usr/fonts/75dpi/ and /usr/fonts/Type1/ must be valid font paths
 
550
on the
 
551
.I Xdmx
 
552
server and all back-end server, which is d0 in this example.
 
553
.PP
 
554
Font servers can also be specified with the
 
555
.I "-fontpath"
 
556
option.  For example, let's assume that a properly configured font
 
557
server is running on host d0.  Then, the following command line
 
558
.RS
 
559
Xdmx :1 -display d0:0 -display d1:0 -fontpath tcp/d0:7100 +xinerama
 
560
.RE
 
561
will initialize the front-end
 
562
.I Xdmx
 
563
server and each of the back-end servers to use the font server on d0.
 
564
.PP
 
565
Some fonts might not be supported by either the front-end or the
 
566
back-end servers.  For example, let's assume the front-end
 
567
.I Xdmx
 
568
server includes support Type1 fonts, but one of the back-end servers
 
569
does not.  Let's also assume that the default font path for
 
570
.I Xdmx
 
571
includes Type1 fonts in its font path.  Then, when
 
572
.I Xdmx
 
573
initializes the default font path to load the default font, the font
 
574
path that includes Type1 fonts (along with the other default font paths
 
575
that are used by the
 
576
.I Xdmx
 
577
server) is sent to the back-end server that cannot handle Type1 fonts.
 
578
That back-end server then rejects the font path and sends an error back
 
579
to the
 
580
.I Xdmx
 
581
server.
 
582
.I Xdmx
 
583
then prints an error message and exits because it failed to set the
 
584
default font path and was unable load the default font.
 
585
.PP
 
586
To fix this error, the offending font path must be removed from the
 
587
default font path by using a different
 
588
.I "-fontpath"
 
589
command line option.
 
590
.PP
 
591
The
 
592
.I "-fontpath"
 
593
option can also be added to the configuration file as described above.
 
594
.SH "COMMAND-LINE EXAMPLES"
 
595
The back-end machines are d0 and d1, core input is from the pointer and
 
596
keyboard attached to d0, clients will refer to :1 when opening windows:
 
597
.RS
 
598
Xdmx :1 -display d0:0 -display d1:0 +xinerama
 
599
.RE
 
600
.PP
 
601
As above, except with core input from d1:
 
602
.RS
 
603
Xdmx :1 -display d0:0 -display d1:0 -input d1:0 +xinerama
 
604
.RE
 
605
.PP
 
606
As above, except with core input from a console window on the local
 
607
display:
 
608
.RS
 
609
Xdmx :1 -display d0:0 -display d1:0 -input :0 +xinerama
 
610
.RE
 
611
.PP
 
612
As above, except with core input from the local keyboard and mouse:
 
613
.RS
 
614
Xdmx :1 -display d0:0 -display d1:0 -input local,kbd,ps2 +xinerama
 
615
.RE
 
616
Note that local input can be used under Linux while another X session is
 
617
running on :0 (assuming the user can access the Linux console tty and
 
618
mouse devices): a new (blank) VC will be used for keyboard input on the
 
619
local machine and the Ctrl-Alt-F* sequence will be available to change
 
620
to another VC (possibly back to another X session running on the local
 
621
machine).  Using Ctrl-Alt-Backspace on the blank VC will terminate the
 
622
Xdmx session and return to the original VC.
 
623
.PP
 
624
This example uses the configuration file shown in the previous section:
 
625
.RS
 
626
Xdmx :1 -input :0 +xinerama -configfile filename -config example2
 
627
.RE
 
628
With this configuration file line:
 
629
.RS
 
630
option -input :0 +xinerama;
 
631
.RE
 
632
the command line can be shortened to:
 
633
.RS
 
634
Xdmx :1 -configfile filename -config example2
 
635
.RE
 
636
.SH "USING THE USB DEVICE DRIVERS"
 
637
.P
 
638
The USB device drivers use the devices called
 
639
.IR /dev/input/event0 ", " /dev/input/event1 ", etc."
 
640
under Linux.  These devices are driven using the
 
641
.I evdev
 
642
Linux kernel module, which is part of the hid suite.  Please note that
 
643
if you load the
 
644
.I mousedev
 
645
or
 
646
.I kbddev
 
647
Linux kernel modules, then USB devices will appear as core Linux input
 
648
devices and you will not be able to select between using the device only
 
649
as an
 
650
.I Xdmx
 
651
core device or an
 
652
.I Xdmx
 
653
XInput extension device.  Further, you may be unable to unload the
 
654
.I mousedev
 
655
Linux kernel module if
 
656
.I XFree86
 
657
is configured to use
 
658
.I /dev/input/mice
 
659
as an input device (this is quite helpful for laptop users and is set up
 
660
by default under some Linux distributions, but should be changed if USB
 
661
devices are to be used with
 
662
.IR Xdmx ).
 
663
.PP
 
664
The USB device drivers search through the Linux devices for the first
 
665
mouse, keyboard, or non-mouse-non-keyboard Linux device and use that
 
666
device.
 
667
.SH "KEYBOARD INITIALIZATION"
 
668
.PP
 
669
If
 
670
.I Xdmx
 
671
was invoked with
 
672
.I \-xkb
 
673
or was
 
674
.B not
 
675
compiled to use the XKEYBOARD extension, then a keyboard on a backend or
 
676
console will be initialized using the map that the host X server
 
677
provides.
 
678
.PP
 
679
If the XKEYBOARD extension is used for both
 
680
.I Xdmx
 
681
and the host X server for the keyboard (i.e., the backend or console X
 
682
server), then the type of the keyboard will
 
683
be obtained from the host X server and the keyboard under
 
684
.I Xdmx
 
685
will be initialized with that information.  Otherwise, the default type
 
686
of keyboard will be initialized.  In both cases, the map from the host X
 
687
server will
 
688
.B not
 
689
be used.  This means that different initial behavior may be noted with
 
690
and without XKEYBOARD.  Consistent and expected results will be obtained
 
691
by running XKEYBOARD on all servers and by avoiding the use of
 
692
.I xmodmap
 
693
on the backend or console X servers prior to starting
 
694
.IR Xdmx .
 
695
.PP
 
696
If
 
697
.I \-xkbmap
 
698
is specified on the
 
699
.I Xdmx
 
700
command line, then that map will currently be used for all keyboards.
 
701
.SH "MULTIPLE CORE KEYBOARDS"
 
702
X was not designed to support multiple core keyboards.  However,
 
703
.I Xdmx
 
704
provides some support for multiple core keyboards.  Best results will be
 
705
obtained if all of the keyboards are of the same type and are using the
 
706
same keyboard map.  Because the X server passes raw key code information
 
707
to the X client, key symbols for keyboards with different key maps would
 
708
be different if the key code for each keyboard was sent without
 
709
translation to the client.  Therefore,
 
710
.I Xdmx
 
711
will attempt to translate the key code from a core keyboard to the key
 
712
code for the key with the same key symbol of the
 
713
.B first
 
714
core keyboard that was loaded.  If the key symbol appears in both maps,
 
715
the results will be expected.  Otherwise, the second core keyboard will
 
716
return a NoSymbol key symbol for some keys that would have been
 
717
translated if it was the first core keyboard.
 
718
.ig
 
719
.SH ENVIRONMENT
 
720
..
 
721
.ig
 
722
.SH FILES
 
723
..
 
724
.SH "SEE ALSO"
 
725
.BR DMX "(3X), " X "(__miscmansuffix__), " Xserver "(1), " xdmxconfig "(1), "
 
726
.BR vdltodmx "(1), " xfs "(1), " xkbcomp (1)
 
727
.SH AUTHORS
 
728
Kevin E. Martin
 
729
.I <kem@redhat.com>,
 
730
David H. Dawes
 
731
.I <dawes@xfree86.org>,
 
732
and
 
733
Rickard E. (Rik) Faith
 
734
.IR <faith@redhat.com> .
 
735
.PP
 
736
Portions of
 
737
.I Xdmx
 
738
are based on code from The XFree86 Project
 
739
.RI ( http://www.xfree86.org )
 
740
and X.Org
 
741
.RI ( http://www.x.org ).