1xboard(6) Games Manual xboard(6)
2
3
4
6 xboard - X graphical user interface for chess
7
9 xboard [options]
10 xboard -ics -icshost hostname [options]
11 xboard -ncp [options]
12 |pxboard
13 cmail [options]
14
15
17 XBoard is a graphical chessboard that can serve as a user interface to
18 chess engines (such as GNU Chess), the Internet Chess Servers, elec‐
19 tronic mail correspondence chess, or your own collection of saved
20 games.
21
22 This manual documents version 4.9.1 of XBoard.
23
24
26 XBoard always runs in one of four major modes. You select the major
27 mode from the command line when you start up XBoard.
28
29
30 xboard [options]
31 As an interface to GNU Chess or another chess engine running on
32 your machine, XBoard lets you play a game against the machine,
33 set up arbitrary positions, force variations, watch a game
34 between two chess engines, interactively analyze your stored
35 games or set up and analyze arbitrary positions. To run engines
36 that use the UCI standard XBoard will draw upon the Polyglot
37 adapter fully transparently, but you will need to have the poly‐
38 glot package installed for this to work.
39
40 xboard -ics -icshost hostname [options]
41 As Internet Chess Server (ICS) interface, XBoard lets you play
42 against other ICS users, observe games they are playing, or
43 review games that have recently finished. Most of the ICS
44 "wild" chess variants are supported, including bughouse.
45
46 xboard -ncp [options]
47 XBoard can also be used simply as an electronic chessboard to
48 play through games. It will read and write game files and allow
49 you to play through variations manually. You can use it to
50 browse games off the net or review games you have saved. These
51 features are also available in the other modes.
52
53 |pxboard
54 If you want to pipe games into XBoard, use the supplied shell
55 script `pxboard'. For example, from the news reader `xrn', find
56 a message with one or more games in it, click the Save button,
57 and type `|pxboard' as the file name.
58
59 cmail [options]
60 As an interface to electronic mail correspondence chess, XBoard
61 works with the cmail program. See CMail below for instructions.
62
64 To move a piece, you can drag it with the left mouse button, or you can
65 click the left mouse button once on the piece, then once more on the
66 destination square. To under-promote a Pawn you can drag it backwards
67 until it morphs into the piece you want to promote to, after which you
68 drag that forward to the promotion square. Or after selecting the pawn
69 with a first click you can then click the promotion square and move the
70 mouse while keeping the button down until the piece that you want
71 appears in the promotion square. To castle you move the King to its
72 destination or, in Chess960, on top of the Rook you want to castle
73 with. In crazyhouse, bughouse or shogi you can drag and drop pieces to
74 the board from the holdings squares displayed next to the board.
75
76 Old behavior, where right-clicking a square brings up a menu where you
77 can select what piece to drop on it can still be selected through the
78 `Drop Menu' option. Only in Edit Position mode right and middle click‐
79 ing a square is still used to put a piece on it, and the piece to drop
80 is selected by sweeping the mouse vertically with the button held down.
81
82 The default function of the right mouse button in other modes is to
83 display the position the chess program thinks it will end up in. While
84 moving the mouse vertically with this button pressed XBoard will step
85 through the principal variation to show how this position will be
86 reached. Lines of play displayed in the engine-output window, or PGN
87 variations in the comment window can similarly be played out on the
88 board, by right-clicking on them. Only in Analysis mode, when you walk
89 along a PV, releasing the mouse button might forward the game upto that
90 point, like you entered all previous PV moves. As the display of the
91 PV in that case starts after the first move a simple right-click will
92 play the move the engine indicates.
93
94 In Analysis mode you can also make a move by grabbing the piece with a
95 double-click of the left mouse button (or while keeping the `Ctrl' key
96 pressed). In this case the move you enter will not be played, but will
97 be excluded from the analysis of the current position. (Or included if
98 it was already excluded; it is a toggle.) This only works for engines
99 that support this feature.
100
101 When connected to an ICS, it is possible to call up a graphical repre‐
102 sentation of players seeking a game in stead of the chess board, when
103 the latter is not in use (i.e. when you are not playing or observing).
104 Left-clicking the display area will switch between this 'seek graph'
105 and the chess board. Hovering the mouse pointer over a dot will show
106 the details of the seek ad in the message field above the board. Left-
107 clicking the dot will challenge that player. Right-clicking a dot will
108 'push it to the back', to reveal any dots that were hidden behind it.
109 Right-clicking off dots will refresh the graph.
110
111 Most other XBoard commands are available from the menu bar. The most
112 frequently used commands also have shortcut keys or on-screen buttons.
113 These shortcut keystrokes are mostly non-printable characters. Typing
114 a letter or digit while the board window has focus will bring up a
115 type-in box with the typed letter already in it. You can use that to
116 type a move in situations where it is your turn to enter a move, type a
117 move number to call up the position after that move in the display, or,
118 in Edit Position mode, type a FEN. Some rarely used parameters can
119 only be set through options on the command line used to invoke XBoard.
120
121 XBoard uses a settings file, in which it can remember any changes to
122 the settings that are made through menus or command-line options, so
123 they will still apply when you restart XBoard for another session. The
124 settings can be saved into this file automatically when XBoard exits,
125 or on explicit request of the user. Note that the board window can be
126 sized by the user, but that this will not affect the size of the clocks
127 above it, and won't be remembered in the settings file. To persis‐
128 tently change the size of the clocks, use the `size' command-line
129 option when starting XBoard. The default name for the settings file is
130 /etc/xboard/xboard.conf, but in a standard install this file is only
131 used as a master settings file that determines the system-wide default
132 settings, and defers reading and writing of user settings to a user-
133 specific file like ~/.xboardrc in the user's home directory.
134
135 When XBoard is iconized, its graphical icon is a white knight if it is
136 White's turn to move, a black knight if it is Black's turn.
137
138
140 File Menu
141 New Game
142 Resets XBoard and the chess engine to the beginning of a new
143 chess game. The `Ctrl-N' key is a keyboard equivalent. In Inter‐
144 net Chess Server mode, clears the current state of XBoard, then
145 resynchronizes with the ICS by sending a refresh command. If you
146 want to stop playing, observing, or examining an ICS game, use
147 an appropriate command from the Action menu, not `New Game'.
148 See Action Menu.
149
150 New Shuffle Game
151 Similar to `New Game', but allows you to specify a particular
152 initial position (according to a standardized numbering system)
153 in chess variants which use randomized opening positions (e.g.
154 Chess960).
155
156 shuffle
157 Ticking `shuffle' will cause the current variant to be played
158 with shuffled initial position. Shuffling will preserve the
159 possibility to castle in the way allowed by the variant.
160
161 Fischer castling
162 Ticking `Fischer castling' will allow castling with Kings and
163 Rooks that did not start in their normal place, as in Chess960.
164
165 Start-position number
166 randomize
167 pick fixed
168 The `Start-position number' selects a particular start position
169 from all allowed shufflings, which will then be used for every
170 new game. Setting this to -1 (which can be done by pressing the
171 `randomize' button) will cause a fresh random position to be
172 picked for every new game. Pressing the `pick fixed' button
173 causes `Start-position number' to be set to a random value, to
174 be used for all subsequent games.
175
176 New Variant
177 Allows you to select a new chess variant in non-ICS mode. (In
178 ICS play, the ICS is responsible for deciding which variant will
179 be played, and XBoard adapts automatically.) The shifted
180 `Alt+V' key is a keyboard equivalent. If you play with an
181 engine, the engine must be able to play the selected variant, or
182 the corresponding choice will be disabled. XBoard supports all
183 major variants, such as xiangqi, shogi, chess, chess960, makruk,
184 Capablanca Chess, shatranj, crazyhouse, bughouse.
185
186 You can overrule the default board format of the selected vari‐
187 ant, (e.g. to play suicide chess on a 6 x 6 board), in this dia‐
188 log, but normally you would not do that, and leave them at '-1',
189 which means 'default' for the chosen variant.
190
191 Load Game
192 Plays a game from a record file. The `Ctrl-O' key is a keyboard
193 equivalent. A pop-up dialog prompts you for the file name. If
194 the file contains more than one game, a second pop-up dialog
195 displays a list of games (with information drawn from their PGN
196 tags, if any), and you can select the one you want. Alterna‐
197 tively, you can load the Nth game in the file directly, by typ‐
198 ing the number `N' after the file name, separated by a space.
199
200 The game-file parser will accept PGN (portable game notation),
201 or in fact almost any file that contains moves in algebraic
202 notation. Notation of the form `P@f7' is accepted for piece-
203 drops in bughouse games; this is a nonstandard extension to PGN.
204 If the file includes a PGN position (FEN tag), or an old-style
205 XBoard position diagram bracketed by `[--' and `--]' before the
206 first move, the game starts from that position. Text enclosed in
207 parentheses, square brackets, or curly braces is assumed to be
208 commentary and is displayed in a pop-up window. Any other text
209 in the file is ignored. PGN variations (enclosed in parentheses)
210 also are treated as comments; however, if you rights-click them
211 in the comment window, XBoard will shelve the current line, and
212 load the the selected variation, so you can step through it.
213 You can later revert to the previous line with the `Revert' com‐
214 mand. This way you can walk quite complex varation trees with
215 XBoard. The nonstandard PGN tag [Variant "varname"] functions
216 similarly to the -variant command-line option (see below),
217 allowing games in certain chess variants to be loaded. Note
218 that it must appear before any FEN tag for XBoard to recognize
219 variant FENs appropriately. There is also a heuristic to recog‐
220 nize chess variants from the Event tag, by looking for the
221 strings that the Internet Chess Servers put there when saving
222 variant ("wild") games.
223
224 Load Position
225 Sets up a position from a position file. A pop-up dialog
226 prompts you for the file name. The shifted `Ctrl-O' key is a
227 keyboard equivalent. If the file contains more than one saved
228 position, and you want to load the Nth one, type the number N
229 after the file name, separated by a space. Position files must
230 be in FEN (Forsythe-Edwards notation), or in the format that the
231 Save Position command writes when oldSaveStyle is turned on.
232
233 Load Next Position
234 Loads the next position from the last position file you loaded.
235 The shifted `PgDn' key is a keyboard equivalent.
236
237 Load Previous Position
238 Loads the previous position from the last position file you
239 loaded. The shifted `PgUp' key is a keyboard equivalent. Not
240 available if the last position was loaded from a pipe.
241
242 Save Game
243 Appends a record of the current game to a file. The `Ctrl-S'
244 key is a keyboard equivalent. A pop-up dialog prompts you for
245 the file name. If the game did not begin with the standard
246 starting position, the game file includes the starting position
247 used. Games are saved in the PGN (portable game notation) for‐
248 mat, unless the oldSaveStyle option is true, in which case they
249 are saved in an older format that is specific to XBoard. Both
250 formats are human-readable, and both can be read back by the
251 `Load Game' command. Notation of the form `P@f7' is accepted
252 for piece-drops in bughouse games; this is a nonstandard exten‐
253 sion to PGN.
254
255 Save Position
256 Appends a diagram of the current position to a file. The
257 shifted `Ctrl+S' key is a keyboard equivalent. A pop-up dialog
258 prompts you for the file name. Positions are saved in FEN
259 (Forsythe-Edwards notation) format unless the `oldSaveStyle'
260 option is true, in which case they are saved in an older, human-
261 readable format that is specific to XBoard. Both formats can be
262 read back by the `Load Position' command.
263
264 Save Selected Games
265 Will cause all games selected for display in the current Game
266 List to be appended to a file of the user's choice.
267
268 Save Games as Book
269 Creates an opening book from the currently loaded game file,
270 incorporating only the games currently selected in the Game
271 List. The book will be saved on the file specified in the `Com‐
272 mon Engine' options dialog. The value of `Book Depth' specified
273 in that same dialog will be used to determine how many moves of
274 each game will be added to the internal book buffer. This com‐
275 mand can take a long time to process, and the size of the buffer
276 is currently limited. At the end the buffer will be saved as a
277 Polyglot book, but the buffer will not be cleared, so that you
278 can continue adding games from other game files.
279
280 Mail Move
281 Reload CMail Message
282 See CMail.
283
284 Exit Exits from XBoard. The `Ctrl-Q' key is a keyboard equivalent.
285
286 Edit Menu
287 Copy Game
288 Copies a record of the current game to an internal clipboard in
289 PGN format and sets the X selection to the game text. The `Ctrl-
290 C' key is a keyboard equivalent. The game can be pasted to
291 another application (such as a text editor or another copy of
292 XBoard) using that application's paste command. In many X
293 applications, such as xterm and emacs, the middle mouse button
294 can be used for pasting; in XBoard, you must use the Paste Game
295 command.
296
297 Copy Position
298 Copies the current position to an internal clipboard in FEN for‐
299 mat and sets the X selection to the position text. The shifted
300 `Ctrl-C' key is a keyboard equivalent. The position can be
301 pasted to another application (such as a text editor or another
302 copy of XBoard) using that application's paste command. In many
303 X applications, such as xterm and emacs, the middle mouse button
304 can be used for pasting; in XBoard, you must use the Paste Posi‐
305 tion command.
306
307 Copy Game List
308 Copies the current game list to the clipboard, and sets the X
309 selection to this text. A format of comma-separated double-
310 quoted strings is used, including all tags, so it can be easily
311 imported into spread-sheet programs.
312
313 Paste Game
314 Interprets the current X selection as a game record and loads
315 it, as with Load Game. The `Ctrl-V' key is a keyboard equiva‐
316 lent.
317
318 Paste Position
319 Interprets the current X selection as a FEN position and loads
320 it, as with Load Position. The shifted `Ctrl-V' key is a key‐
321 board equivalent.
322
323 Edit Game
324 Allows you to make moves for both Black and White, and to change
325 moves after backing up with the `Backward' command. The clocks
326 do not run. The `Ctrl-E' key is a keyboard equivalent.
327
328 In chess engine mode, the chess engine continues to check moves
329 for legality but does not participate in the game. You can bring
330 the chess engine into the game by selecting `Machine White',
331 `Machine Black', or `Two Machines'.
332
333 In ICS mode, the moves are not sent to the ICS: `Edit Game'
334 takes XBoard out of ICS Client mode and lets you edit games
335 locally. If you want to edit games on ICS in a way that other
336 ICS users can see, use the ICS `examine' command or start an ICS
337 match against yourself.
338
339 Edit Position
340 Lets you set up an arbitrary board position. The shifted `Ctrl-
341 E' key is a keyboard equivalent. Use mouse button 1 to drag
342 pieces to new squares, or to delete a piece by dragging it off
343 the board or dragging an empty square on top of it. When you do
344 this keeping the `Ctrl' key pressed, or start dragging with a
345 double-click, you will move a copy of the piece, leaving the
346 piece itself where it was. In variants where pieces can promote
347 (such as Shogi), left-clicking an already selected piece pro‐
348 motes or demotes it. To drop a new piece on a square, press
349 mouse button 2 or 3 over the square. This puts a white or black
350 pawn in the square, respectively, but you can change that to any
351 other piece type by dragging the mouse down before you release
352 the button. You will then see the piece on the originally
353 clicked square cycle through the available pieces (including
354 those of opposite color), and can release the button when you
355 see the piece you want. (Note you can swap the function of but‐
356 ton 2 and 3 by pressing the shift key, and that there is an
357 option `monoMouse' to combine al functions in one button, which
358 then acts as button 3 over an empty square, and as button 1 over
359 a piece.) To alter the side to move, you can click the clock
360 (the words White and Black above the board) of the side you want
361 to give the move to. To clear the board you can click the clock
362 of the side that already has the move (which is highlighted in
363 black). If you repeat this the board will cycle from empty to a
364 `pallette board' containing every piece once to the initial
365 position to the one before clearing. The quickest way to set up
366 a position is usually to start with the pallette board, and move
367 the pieces to were you want them, duplicating them where neces‐
368 sary by using the `Ctrl' key, dragging those you don't want off
369 board, and use static button 2 or 3 clicks to place the Pawns.
370 The old behavior with a piece menu can still be configured with
371 the aid of the `pieceMenu' option. Dragging empty squares off
372 board can create boards with holes (inaccessible black squares)
373 in them. Selecting `Edit Position' causes XBoard to discard all
374 remembered moves in the current game.
375
376 In ICS mode, changes made to the position by `Edit Position' are
377 not sent to the ICS: `Edit Position' takes XBoard out of `ICS
378 Client' mode and lets you edit positions locally. If you want to
379 edit positions on ICS in a way that other ICS users can see, use
380 the ICS `examine' command, or start an ICS match against your‐
381 self. (See also the ICS Client topic above.)
382
383 Edit Tags
384 Lets you edit the PGN (portable game notation) tags for the cur‐
385 rent game. After editing, the tags must still conform to the PGN
386 tag syntax:
387
388 <tag-section> ::= <tag-pair> <tag-section>
389 <empty>
390 <tag-pair> ::= [ <tag-name> <tag-value> ]
391 <tag-name> ::= <identifier>
392 <tag-value> ::= <string>
393
394 See the PGN Standard for full details. Here is an example:
395
396 [Event "Portoroz Interzonal"]
397 [Site "Portoroz, Yugoslavia"]
398 [Date "1958.08.16"]
399 [Round "8"]
400 [White "Robert J. Fischer"]
401 [Black "Bent Larsen"]
402 [Result "1-0"]
403
404 Any characters that do not match this syntax are silently
405 ignored. Note that the PGN standard requires all games to have
406 at least the seven tags shown above. Any that you omit will be
407 filled in by XBoard with `?' (unknown value), or `-' (inapplica‐
408 ble value).
409
410 Edit Comment
411 Adds or modifies a comment on the current position. Comments are
412 saved by `Save Game' and are displayed by `Load Game', PGN vari‐
413 ations will also be printed in this window, and can be promoted
414 to main line by right-clicking them. `Forward', and `Backward'.
415
416 Edit Book
417 Pops up a window listing the moves available in the GUI book
418 (specified in the `Common Engine Settings' dialog) from the cur‐
419 rently displayed position, together with their weights and
420 (optionally in braces) learn info. You can then edit this list,
421 and the new list will be stored back into the book when you
422 press 'save changes'. When you press the button 'add next
423 move', and play a move on the board, that move will be added to
424 the list with weight 1. Note that the listed percentages are
425 neither used, nor updated when you change the weights; they are
426 just there as an optical aid. When you right-click a move in
427 the list it will be played.
428
429 Revert
430 Annotate
431 If you are examining an ICS game and Pause mode is off, Revert
432 issues the ICS command `revert'. In local mode, when you were
433 editing or analyzing a game, and the `-variations' command-line
434 option is switched on, you can start a new variation by holding
435 the Shift key down while entering a move not at the end of the
436 game. Variations can also become the currently displayed line
437 by clicking a PGN variation displayed in the Comment window.
438 This can be applied recursively, so that you can analyze varia‐
439 tions on variations; each time you create a new variation by
440 entering an alternative move with Shift pressed, or select a new
441 one from the Comment window, the current variation will be
442 shelved. `Revert' allows you to return to the most recently
443 shelved variation. The difference between `Revert' and `Anno‐
444 tate' is that with the latter, the variation you are now aban‐
445 doning will be added as a comment (in PGN variation syntax, i.e.
446 between parentheses) to the original move where you deviated,
447 for later recalling. The `Home' key is a keyboard equivalent to
448 `Revert'.
449
450 Truncate Game
451 Discards all remembered moves of the game beyond the current
452 position. Puts XBoard into `Edit Game' mode if it was not there
453 already. The `End' key is a keyboard equivalent.
454
455 Backward
456 < Steps backward through a series of remembered moves. The `[<]'
457 button and the `Alt+LeftArrow' key are equivalents, as is turn‐
458 ing the mouse wheel towards you. In addition, pressing the ???
459 key steps back one move, and releasing it steps forward again.
460
461 In most modes, `Backward' only lets you look back at old posi‐
462 tions; it does not retract moves. This is the case if you are
463 playing against a chess engine, playing or observing a game on
464 an ICS, or loading a game. If you select `Backward' in any of
465 these situations, you will not be allowed to make a different
466 move. Use `Retract Move' or `Edit Game' if you want to change
467 past moves.
468
469 If you are examining an ICS game, the behavior of `Backward'
470 depends on whether XBoard is in Pause mode. If Pause mode is
471 off, `Backward' issues the ICS backward command, which backs up
472 everyone's view of the game and allows you to make a different
473 move. If Pause mode is on, `Backward' only backs up your local
474 view.
475
476 Forward
477 > Steps forward through a series of remembered moves (undoing the
478 effect of `Backward') or forward through a game file. The `[>]'
479 button and the `Alt+RightArrow' key are equivalents, as is turn‐
480 ing the mouse wheel away from you.
481
482 If you are examining an ICS game, the behavior of Forward
483 depends on whether XBoard is in Pause mode. If Pause mode is
484 off, `Forward' issues the ICS forward command, which moves
485 everyone's view of the game forward along the current line. If
486 Pause mode is on, `Forward' only moves your local view forward,
487 and it will not go past the position that the game was in when
488 you paused.
489
490 Back to Start
491 << Jumps backward to the first remembered position in the game.
492 The `[<<]' button and the `Alt+Home' key are equivalents.
493
494 In most modes, Back to Start only lets you look back at old
495 positions; it does not retract moves. This is the case if you
496 are playing against a local chess engine, playing or observing a
497 game on a chess server, or loading a game. If you select `Back
498 to Start' in any of these situations, you will not be allowed to
499 make different moves. Use `Retract Move' or `Edit Game' if you
500 want to change past moves; or use Reset to start a new game.
501
502 If you are examining an ICS game, the behavior of @samp{Back to
503 Start} depends on whether XBoard is in Pause mode. If Pause mode
504 is off, `Back to Start' issues the ICS `backward 999999' com‐
505 mand, which backs up everyone's view of the game to the start
506 and allows you to make different moves. If Pause mode is on,
507 @samp{Back to Start} only backs up your local view.
508
509 Forward to End
510 >> Jumps forward to the last remembered position in the game. The
511 `[>>]' button and the `Alt+End' key are equivalents.
512
513 If you are examining an ICS game, the behavior of @samp{Forward
514 to End} depends on whether XBoard is in Pause mode. If Pause
515 mode is off, `Forward to End' issues the ICS `forward 999999'
516 command, which moves everyone's view of the game forward to the
517 end of the current line. If Pause mode is on, `Forward to End'
518 only moves your local view forward, and it will not go past the
519 position that the game was in when you paused.
520
521 View Menu
522 Flip View
523 Inverts your view of the chess board for the duration of the
524 current game. Starting a new game returns the board to normal.
525 The `F2' key is a keyboard equivalent.
526
527 Show Engine Output
528 Shows or hides a window in which the thinking output of any
529 loaded engines is displayed. The shifted `Alt+O' key is a key‐
530 board equivalent. XBoard will display lines of thinking output
531 of the same depth ordered by score, (highest score on top),
532 rather than in the order the engine produced them. Usually this
533 amounts to the same, as a normal engine search will only find
534 new PV (and emit it as thinking output) when it searches a move
535 with a higher score than the previous variation. But when the
536 engine is in multi-variation mode this needs not always be true,
537 and it is more convenient for someone analyzing games to see the
538 moves sorted by score. The order in which the engine found them
539 is only of interest to the engine author, and can still be
540 deduced from the time or node count printed with the line.
541 Right-clicking a line in this window, and then moving the mouse
542 vertically with the right button kept down, will make XBoard
543 play through the PV listed there. The use of the board window
544 as 'variation board' will normally end when you release the
545 right button, or when the opponent plays a move. But beware: in
546 Analysis mode, moves thus played out might be added to the game,
547 depending on the setting of the option 'Play moves of clicked
548 PV', when you initiate the click left of the PV in the score
549 area. The Engine-Output pane for each engine will contain a
550 header displaying the multi-PV status and a list of excluded
551 moves in Analysis mode, which are also responsive to right-
552 clicking: Clicking the words 'fewer' or 'more' will alter the
553 number of variations shown at each depth, through the engine's
554 MultiPV option, while clicking in between those and moving the
555 mouse horizontally adjust the option 'Multi-PV Margin'. (In so
556 far the engines support those.)
557
558 Show Move History
559 Shows or hides a list of moves of the current game. The shifted
560 `Alt+H' key is a keyboard equivalent. This list allows you to
561 move the display to any earlier position in the game by clicking
562 on the corresponding move.
563
564 Show Evaluation Graph
565 Shows or hides a window which displays a graph of how the engine
566 score(s) evolved as a function of the move number. The shifted
567 `Alt+E' key is a keyboard equivalent. The title bar shows the
568 score (and search depth at which it was obtained) of the cur‐
569 rently displayed position numerically. Clicking on the graph
570 will bring the corresponding position in the board display. A
571 button 3 click will toggle the display mode between plain and
572 differential (showing the difference in score between successive
573 half moves). Using the mouse wheel over the window will change
574 the scale of the low-score region (from -1 to +1).
575
576 Show Game List
577 Shows or hides the list of games generated by the last `Load
578 Game' command. The shifted `Alt+G' key is a keyboard equivalent.
579 The line describing each game is built from a selection of the
580 PGN tags. Which tags contribute, and in what order, can be
581 changed by the `Game list tags' menu dialog, which can be popped
582 up through the `Tags' button below the Game List. Display can
583 be restricted to a sub-set of the games meeting certain crite‐
584 ria. A text entry below the game list allows you to type a text
585 that the game lines must contain in order to be displayed.
586 Games can also be selected based on their Elo PGN tag, as set in
587 the `Load Game Options' dialog, which can be popped up through
588 the `Thresholds' button below the Game List. Finally they can
589 be selected based on containing a position similar to the one
590 currently displayed in the main window, by pressing the 'Posi‐
591 tion' button below the Game List, (which searches the entire
592 list for the position), or the 'Narrow' button (which only
593 searches the already-selected games). What counts as similar
594 enough to be selected can also be set in the `Load Game Options'
595 dialog, and ranges from an exact match to just the same mate‐
596 rial.
597
598 Tags Pops up a window which shows the PGN (portable game notation)
599 tags for the current game. For now this is a duplicate of the
600 `Edit Tags' item in the `Edit' menu.
601
602 Comments
603 Pops up a window which shows any comments to or variations on
604 the current move. For now this is a duplicate of the `Edit Com‐
605 ment' item in the `Edit' menu.
606
607 ICS Input Box
608 If this option is set in ICS mode, XBoard creates an extra win‐
609 dow that you can use for typing in ICS commands. The input box
610 is especially useful if you want to type in something long or do
611 some editing on your input, because output from ICS doesn't get
612 mixed in with your typing as it would in the main terminal win‐
613 dow.
614
615 ICS/Chat Console
616 This menu item opens a window in which you can interact with the
617 ICS, so you don't have to use the messy xterm from which you
618 launched XBoard for that. The window has a text entry at the
619 bottom where you can type your commands and messages unhindered
620 by the stream of ICS output. The latter will be displayed in a
621 large pane above the input field, the ICS Console. Up and down
622 arrow keys can be used to recall previous input lines. Typing
623 an <Esc> character in the input field transfers focus back to
624 the board window (so you could operate the menus there through
625 accelerator keys). Typing a printable character in the board
626 window transfers focus back to the input field of the `ICS
627 Chat/Console' window.
628
629 Chats There is a row of buttons at the top of the `ICS Chat/Console'
630 dialog, which can be used to navigate between upto 5 'chats'
631 with other ICS users (or channels). These will switch the win‐
632 dow to 'chat mode', where the ICS output pane is vertically
633 split to divert messages from a specific user or ICS channel to
634 the lower half. Lines typed in the input field will then be
635 interpreted as messages to be sent to that user or channel,
636 (automatically prefixed with the apporpriate ICS command and
637 user name) rather than as commands to the ICS. Chats will keep
638 collecting ICS output intended for them even when not displayed,
639 and their buttons will turn orange to alert the user there has
640 been activity. Typing <Tab> in the input field will switch to
641 another active chat, giving priority to those with content you
642 have not seen yet.
643
644 New Chat
645 Buttons for chats currently not assigned to a user or channel
646 will carry the text `New Chat', and pressing them will switch to
647 chat mode, enabling you to enter the user name or channel number
648 you want to use it for. Typing Ctrl-N in the input field is a
649 keyboard equivalent.
650
651 Chat partner
652 To (re-)assign a chat, write the name of your chat partner, the
653 channel number, or the words 'shouts', 'whispers', 'cshouts' in
654 the `Chat partner' text entry (ending with <Enter>!). Typing
655 Ctrl-O in the input field at the bottom of the window will open
656 a chat with the person that last sent you a 'tell' that was
657 printed in the ICS Console output pane. The `ICS text menu' can
658 contain a button `Open Chat (name)' that can be used to open a
659 chat with as partner the word/number you right-clicked in the
660 output pane to pop up this menu.
661
662 End Chat
663 This button, only visible when the chat pane is open, will clear
664 the `Chat partner' field, so that the chat can be assigned to a
665 new user or channel. Typing Ctrl-E in the input field is a key‐
666 board equivalent.
667
668 Hide This button, only visible when the chat pane is open, will close
669 the latter, so you can use the input field to give commands to
670 the ICS again. Typing Ctrl-H in the input field is a keyboard
671 equivalent.
672
673 ICS text menu
674 Brings up a menu that is user-configurable through the `icsMenu'
675 option. Buttons in this menu can sent pre-configured commands
676 directly to the ICS, or can put partial commands in the input
677 field of the `ICS Chat/Console' window, so that you can complete
678 those with some text of your own before sending them to the ICS
679 by pressing Enter. This menu item can also be popped up by
680 right-clicking in the text memos of the ICS Chat/Console window.
681 In that case the word that was clicked can be incorporated in
682 the message sent to the ICS. E.g. to challenge a player whose
683 name you click for a game, or prepare for sending him a message
684 through a 'tell' commands.
685
686 Edit ICS menu
687 Brings up an edit box with the definition of the `ICS text
688 menu', so you can adapt its appearance to your needs. The menu
689 is defined by a semi-colon-separated list, each button through a
690 pair of items in it. The first item of each pair is the text on
691 the button, the second the text to be sent when the button is
692 pressed. The word '$input' in the text will put that text in
693 the input field of the `ICS Chat/Console' with the cursor in
694 that place, the word '$name' will be replaced by the word right-
695 clicked to pop up the text menu.
696
697 Edit Theme List
698 Brings up an edit box with the definitions of the themes shown
699 in the listbox of the `Board' dialog, so you can delete, re-
700 order or alter themes defined previously.
701
702 Board Summons a dialog where you can customize the look of the chess
703 board.
704
705 White Piece Color
706 Black Piece Color
707 Light Square Color
708 Dark Square Color
709 Highlight Color
710 Premove Highlight Color
711 These items set the color of pieces, board squares and move
712 highlights (borders or arrow). Square colors are only used when
713 the `Use Board Textures' option is off, the piece colors only
714 when `Use piece bitmaps with their own colors' is off. You can
715 type the color as hexadecimally encoded RGB value preceded by
716 '#', or adjust it through the R, G, B and D buttons to make it
717 redder, greener, bluer or darker. A sample of the adjusted
718 color will be displayed behind its text description; pressing
719 this colored button restores the default value for the color.
720
721 Flip Pieces Shogi Style
722 With this option on XBoard will swap white and black pieces,
723 when you flip the view of the board to make white play downward.
724 This should be used with piece themes that do not distinguish
725 sides by color, but by orientation.
726
727 Mono Mode
728 This option sets XBoard to pure black-and-white display (no grey
729 scales, and thus no anti-aliasing).
730
731 Logo Size
732 Specifies the width of the engine logos displayed next to the
733 clocks, in pixels. Setting it to 0 suppresses the display of
734 such logos. The height of the logo will be half its width. In
735 the GTK build of XBoard any non-zero value is equivalent, and
736 the logos are always sized to 1/4 of the board width.
737
738 Line Gap
739 This option specifies the width of the grid lines that separate
740 the squares, which change color on highlighting the move. Set‐
741 ting it to 0 suppresses these lines, which in general looks bet‐
742 ter, but hides the square-border highlights, so that you would
743 have to rely on other forms of highlighting. Setting the value
744 to -1 makes XBoard choose a width by itself, depending on the
745 square size.
746
747 Use Board Textures
748 Light-Squares Texture File
749 Dark-Squares Texture File
750 When the option `Use Board Textures' is set, the squares will
751 not be drawn as evenly colored surfaces, but will be cut from a
752 texture image, as specified by the `Texture Files'. Separate
753 images can be used for light and dark squares. XBoard will try
754 to cut the squares out of the texture image with as little over‐
755 lap as possible, so they all look different. The name of the
756 texture file can contain a size hint, e.g. `xqboard-9x10.png',
757 alerting XBoard to the fact that it contains a whole-board
758 image, out of which squares have to be cut in register with the
759 nominal sub-division.
760
761 Use external piece bitmaps with their own color
762 When this option is on XBoard will ignore the piece-color set‐
763 tings, and draw the piece images in their original colors. The
764 piece-color settings would only work well for evenly colored
765 pieces, such as the default theme.
766
767 Directory with Pieces Images
768 When a directory is specified here, XBoard will first look for
769 piece images (SVG or PNG files) in that directory, and fall back
770 on the image from the default theme only for images it cannot
771 find there. An image file called White/BlackTile in the direc‐
772 tory will be prefered as fall-back for missing pieces over the
773 default image, however.
774
775 Selectable themes
776 New name for current theme
777 When a theme name is specified while pressing 'OK', the combina‐
778 tion of settings specified in the dialog will be stored in
779 XBoard's list of themes, which will be saved with the other
780 options in the settings file (as the `themeNames' option). This
781 name will then appear in the selection listbox next time you
782 open the dialog, so that you can recall the entire combination
783 of settings by double-clicking it.
784
785 Here you can specify the directory from which piece images
786 should be taken, when you don't want to use the built-in piece
787 images (see `pieceImageDirectory' option), external images to be
788 used for the board squares (`liteBackTextureFile' and `darkBack‐
789 TextureFile' options), and square and piece colors for the
790 default pieces. The current combination of these settings can
791 be assigned a 'theme' name by typing one in the text entry in
792 the lower-left of the dialog, and closing the latter with OK.
793 It will then appear in the themes listbox next time you open the
794 dialog, where you can recall the complete settings combination
795 with a double-click.
796
797 Fonts Pops up a dialog where you can set the fonts used in the main
798 elements of various windows. Pango font names can be typed for
799 each window type, and behind each text entry there are buttons
800 to adjust the point size, and toggle the 'bold' or 'italic'
801 attributes of the font.
802
803 Game List Tags
804 a duplicate of the Game List dialog in the Options menu.
805
806 Mode Menu
807 Machine White
808 Tells the chess engine to play White. The `Ctrl-W' key is a
809 keyboard equivalent.
810
811 Machine Black
812 Tells the chess engine to play Black. The `Ctrl-B' key is a
813 keyboard equivalent.
814
815 Two Machines
816 Plays a game between two chess engines. The `Ctrl-T' key is a
817 keyboard equivalent.
818
819 Analysis Mode
820 XBoard tells the chess engine to start analyzing the current
821 game/position and shows you the analysis as you move pieces
822 around. The `Ctrl-A' key is a keyboard equivalent. Note: Some
823 chess engines do not support Analysis mode.
824
825 To set up a position to analyze, you do the following:
826
827 1. Set up the position by any means. (E.g. using `Edit Position'
828 mode, pasing a FEN or loading a game and stepping to the posi‐
829 tion.)
830
831 2. Select Analysis Mode from the Mode Menu to start the analy‐
832 sis.
833
834 You can now play legal moves to create follow-up positions for
835 the engine to analyze, while the moves will be remembered as a
836 stored game, and then step backward through this game to take
837 the moves back. Note that you can also click on the clocks to
838 set the opposite side to move (adding a so-called `null move' to
839 the game).
840
841 You can also tell the engine to exclude some moves from analy‐
842 sis. (Engines that do not support the exclude-moves feature
843 will ignore this, however.) The general way to do this is to
844 play the move you want to exclude starting with a double click
845 on the piece. When you use drag-drop moving, the piece you grab
846 with a double click will also remain on its square, to show you
847 that you are not really making the move, but just forbid it from
848 the current position. Playing a thus excluded move a second
849 time will include it again. Excluded moves will be listed as
850 text in a header line in the Engine Output window, and you can
851 also re-include them by right-clicking them there. This header
852 line will also contain the words 'best' and 'tail'; right-click‐
853 ing those will exclude the currently best move, or all moves not
854 explicitly listed in the header line. Once you leave the cur‐
855 rent position all memory of excluded moves will be lost when you
856 return there.
857
858 Selecting this menu item while already in `Analysis Mode' will
859 toggle the participation of the second engine in the analysis.
860 The output of this engine will then be shown in the lower pane
861 of the Engine Output window. The analysis function can also be
862 used when observing games on an ICS with an engine loaded (zippy
863 mode); the engine then will analyze the positions as they occur
864 in the observed game.
865
866
867 Analyze Game
868 This option subjects the currently loaded game to automatic
869 analysis by the loaded engine. The `Ctrl-G' key is a keyboard
870 equivalent. XBoard will start auto-playing the game from the
871 currently displayed position, while the engine is analyzing the
872 current position. The game will be annotated with the results
873 of these analyses. In particlar, the score and depth will be
874 added as a comment, and the PV will be added as a variation.
875
876 Normally the analysis would stop after reaching the end of the
877 game. But when a game is loaded from a multi-game file while
878 `Analyze Game' was already switched on, the analysis will con‐
879 tinue with the next game in the file until the end of the file
880 is reached (or you switch to another mode).
881
882 The time the engine spends on analyzing each move can be con‐
883 trolled through the command-line option `-timeDelay', which can
884 also be set from the `Load Game Options' menu dialog. Note:
885 Some chess engines do not support Analysis mode.
886
887 Edit Game
888 Duplicate of the item in the Edit menu. Note that `Edit Game'
889 is the idle mode of XBoard, and can be used to get you out of
890 other modes. E.g. to stop analyzing, stop a game between two
891 engines or stop editing a position.
892
893 Edit Position
894 Duplicate of the item in the Edit menu.
895
896 Training
897 Training mode lets you interactively guess the moves of a game
898 for one of the players. You guess the next move of the game by
899 playing the move on the board. If the move played matches the
900 next move of the game, the move is accepted and the opponent's
901 response is auto-played. If the move played is incorrect, an
902 error message is displayed. You can select this mode only while
903 loading a game (that is, after selecting `Load Game' from the
904 File menu). While XBoard is in `Training' mode, the navigation
905 buttons are disabled.
906
907 ICS Client
908 This is the normal mode when XBoard is connected to a chess
909 server. If you have moved into Edit Game or Edit Position mode,
910 you can select this option to get out.
911
912 To use xboard in ICS mode, run it in the foreground with the
913 -ics option, and use the terminal you started it from to type
914 commands and receive text responses from the chess server. See
915 Chess Servers below for more information.
916
917 XBoard activates some special position/game editing features
918 when you use the `examine' or `bsetup' commands on ICS and you
919 have `ICS Client' selected on the Mode menu. First, you can
920 issue the ICS position-editing commands with the mouse. Move
921 pieces by dragging with mouse button 1. To drop a new piece on
922 a square, press mouse button 2 or 3 over the square. This
923 brings up a menu of white pieces (button 2) or black pieces
924 (button 3). Additional menu choices let you empty the square or
925 clear the board. Click on the White or Black clock to set the
926 side to play. You cannot set the side to play or drag pieces to
927 arbitrary squares while examining on ICC, but you can do so in
928 `bsetup' mode on FICS. In addition, the menu commands `For‐
929 ward', `Backward', `Pause', and `Stop Examining' have special
930 functions in this mode; see below.
931
932 Machine Match
933 Starts a match between two chess programs, with a number of
934 games and other parameters set through the `Tournament Options'
935 menu dialog. When a match is already running, selecting this
936 item will make XBoard drop out of match mode after the current
937 game finishes.
938
939 Pause Pauses updates to the board, and if you are playing against a
940 chess engine, also pauses your clock. To continue, select
941 `Pause' again, and the display will automatically update to the
942 latest position. The `P' button and keyboard `Pause' key are
943 equivalents.
944
945 If you select Pause when you are playing against a chess engine
946 and it is not your move, the chess engine's clock will continue
947 to run and it will eventually make a move, at which point both
948 clocks will stop. Since board updates are paused, however, you
949 will not see the move until you exit from Pause mode (or select
950 Forward). This behavior is meant to simulate adjournment with a
951 sealed move.
952
953 If you select Pause while you are observing or examining a game
954 on a chess server, you can step backward and forward in the cur‐
955 rent history of the examined game without affecting the other
956 observers and examiners, and without having your display jump
957 forward to the latest position each time a move is made. Select
958 Pause again to reconnect yourself to the current state of the
959 game on ICS.
960
961 If you select `Pause' while you are loading a game, the game
962 stops loading. You can load more moves manually by selecting
963 `Forward', or resume automatic loading by selecting `Pause'
964 again.
965
966 Action Menu
967 Accept Accepts a pending match offer. The `F3' key is a keyboard
968 equivalent. If there is more than one offer pending, you will
969 have to type in a more specific command instead of using this
970 menu choice.
971
972 Decline
973 Declines a pending offer (match, draw, adjourn, etc.). The `F4'
974 key is a keyboard equivalent. If there is more than one offer
975 pending, you will have to type in a more specific command
976 instead of using this menu choice.
977
978 Call Flag
979 Calls your opponent's flag, claiming a win on time, or claiming
980 a draw if you are both out of time. The `F5' key is a keyboard
981 equivalent. You can also call your opponent's flag by clicking
982 on his clock.
983
984 Draw Offers a draw to your opponent, accepts a pending draw offer
985 from your opponent, or claims a draw by repetition or the
986 50-move rule, as appropriate. The `F6' key is a keyboard equiva‐
987 lent.
988
989 Adjourn
990 Asks your opponent to agree to adjourning the current game, or
991 agrees to a pending adjournment offer from your opponent. The
992 `F7' key is a keyboard equivalent.
993
994 Abort Asks your opponent to agree to aborting the current game, or
995 agrees to a pending abort offer from your opponent. The `F8'
996 key is a keyboard equivalent. An aborted game ends immediately
997 without affecting either player's rating.
998
999 Resign Resigns the game to your opponent. The `F9' key is a keyboard
1000 equivalent.
1001
1002 Stop Observing
1003 Ends your participation in observing a game, by issuing the ICS
1004 observe command with no arguments. ICS mode only. The `F10' key
1005 is a keyboard equivalent.
1006
1007 Stop Examining
1008 Ends your participation in examining a game, by issuing the ICS
1009 unexamine command. ICS mode only. The `F11' key is a keyboard
1010 equivalent.
1011
1012 Upload to Examine
1013 Create an examined game of the proper variant on the ICS, and
1014 send the game there that is currenty loaded in XBoard (e.g.
1015 through pasting or loading from file). You must be connected to
1016 an ICS for this to work.
1017
1018 Adjudicate to White
1019 Adjudicate to Black
1020 Adjudicate Draw
1021 Terminate an ongoing game in Two-Machines mode (including match
1022 mode), with as result a win for white, for black, or a draw,
1023 respectively. The PGN file of the game will accompany the
1024 result string by the comment "user adjudication".
1025
1026 Engine Menu
1027 Edit Engine List
1028 Opens a window that shows the list of engines registered for use
1029 by XBoard, together with the options that would be used with
1030 them when you would select them from the `Load Engine' dialogs.
1031 You can then edit this list, e.g. for re-ordering the engines,
1032 or adding uncommon options needed by this engine (e.g. to cure
1033 non-compliant behavior).
1034
1035 By editing you can also organize the engines into collapsible
1036 groups. By sandwiching a number of engine lines between lines
1037 "# NAME" and "# end", the thus enclosed engines will not ini‐
1038 tially appear in engine listboxes of other dialogs, but only the
1039 single line "# NAME" (where NAME can be an arbitrary text) will
1040 appear in their place. Selecting that line will then show the
1041 enclosed engines in the listbox, which recursively can contain
1042 other groups. The line with the group name will still present
1043 as a header, and selecting that line will collapse the group
1044 again, and makes the listbox go back to displaying the surround‐
1045 ing group.
1046
1047 Load New 1st Engine
1048 Load New 2nd Engine
1049 Pops up a dialog where you can select or specify an engine to be
1050 loaded. You can even replace engines during a game, without
1051 disturbing that game. (Beware that after loading an engine,
1052 XBoard will always be in Edit Game mode, so you will have to
1053 tell the new engine what to do before it does anything!)
1054
1055 Select engine from list
1056 The listbox shows the engines registered for use with XBoard
1057 before. (This means XBoard has information on the engine type,
1058 whether it plays book etc. in the engine list stored in its
1059 settings file.) Double-clicking an engine here will load it and
1060 close the dialog. The list can also contain groups, indicated
1061 by a starting '#' sign. Double-clicking such a group will
1062 'open' it, and show the group contents in the listbox instead of
1063 the total list, with the group name as header. Double-clicking
1064 the header will 'close' the group again.
1065
1066 Nickname
1067 Use nickname in PGN player tags of engine-engine games
1068 When a `Nickname' is specified, the engine will appear under
1069 this name in the `Select Engine' listbox. Otherwise the name
1070 there will be a tidied version of the engine command. The user
1071 can specify if the nickname is also to be used in PGN tags; nor‐
1072 mally the name engines report theselves would be used there.
1073
1074 Engine Command
1075 The command needed to start the engine from the command line.
1076 For compliantly installed engine this is usually just a single
1077 word, the name of the engine package (e.g. 'crafty' or 'stock‐
1078 fish'). Some engines need additional parameters on the command
1079 line. For engines that are not in a place where the system
1080 would expect them a full pathname can be specified, and usually
1081 the browse button for this oprion is the easiest way to obtain
1082 that.
1083
1084 Engine Directory
1085 Compliant engines could run from any directory, and by default
1086 this option is proposed as '.', the current directory. If a
1087 (path)name is specified here, XBoard will start the engine in
1088 that directory. If you make the field empty, it will try to
1089 derive the directory from the engine command (if that was a path
1090 name).
1091
1092 UCI When the `UCI' checkbox is ticked XBoard will assume the engine
1093 is of UCI type, and will invoke the corresponding adapter (as
1094 specified in the `adapterCommand' option stored in its settings
1095 file)to use it. By default this adapter is Polyglot, which must
1096 be installed from a separate package!
1097
1098 USI/UCCI
1099 Ticking this checkbox informs XBoard that the engine is of USI
1100 or UCCI type (as Shogi or Xiangqi engines often are). This
1101 makes XBoard invoke an adapter to run the engines, as specified
1102 by the `uxiAdapter' option stored in its settings file. The
1103 UCI2WB program is an adapter that can handle both these engine
1104 types, as well as UCI.
1105
1106 WB protocol v1
1107 Ticking this checkbox informs XBoard the engine is using an old
1108 version (1) of the communication protocol, so that it won't
1109 respond to a request to interrogate its properties. XBoard then
1110 won't even try that, saving you a wait of several seconds each
1111 time the engine is started. Do not use this on state-of-the-art
1112 engines, as it would prevent XBoard from interrogating its capa‐
1113 bilities, so that many of its features might not work!
1114
1115 Must not use GUI book
1116 By default XBoard assumes engines are responsible for their own
1117 opening book, but unticking this option makes XBoard consult its
1118 own book (as per `Opening-Book Filename') on behalf of the
1119 engine.
1120
1121 Add this engine to the list
1122 By default XBoard would add the engine you specified, with all
1123 the given options to its list of registered engines (kept in its
1124 settings file), when you press 'OK'. Next time you could then
1125 simply select it from the listbox, or use the command "xboard
1126 -fe NICKNAME" to start XBoard with the engine and accompanying
1127 options. New engines are always added at the end of the exist‐
1128 ing list, or, when you have opened a group in the `Select
1129 Engine' listbox, at the end of that group. But can be re-
1130 ordered later with the aid of the `Edit Engine List' menu item.
1131 When you untick this checkbox before pressing 'OK' the engine
1132 will be loaded, but will not be added to the engine list.
1133
1134 Force current variant with this engine
1135 Ticking this option will make XBoard automatically start the
1136 engine in the current variant, even when XBoard was set for a
1137 different variant when you loaded the engine. Useful when the
1138 engine plays multiple variants, and you specifically want to
1139 play one different from its primary one.
1140
1141 Engine #1 Settings
1142 Engine #2 Settings
1143 Pop up a menu dialog to alter the settings specific to the
1144 applicable engine. For each parameter the engine allows to be
1145 set, a control element will appear in this dialog that can be
1146 used to alter the value. Depending on the type of parameter
1147 (text string, number, multiple choice, on/off switch, instanta‐
1148 neous signal) the appropriate control will appear, with a
1149 description next to it. XBoard has no idea what these values
1150 mean; it just passes them on to the engine. How this dialog
1151 looks is completely determined by the engine, and XBoard just
1152 passes it on to the user. Many engines do not have any parame‐
1153 ters that can be set by the user, and in that case the dialog
1154 will be empty (except for the OK and cancel buttons). UCI
1155 engines usually have many parameters. (But these are only visi‐
1156 ble with a sufficiently modern version of the Polyglot adapter
1157 needed to run UCI engines, e.g. Polyglot 2.0.1.) For native
1158 XBoard engines this is less common.
1159
1160
1161 Common Settings
1162 Pops up a menu dialog where you can set some engine parameters
1163 common to most engines, such as hash-table size, tablebase cache
1164 size, maximum number of processors that SMP engines can use.
1165 The shifted `Alt+U' key is a keyboard equivalent. Older
1166 XBoard/WinBoard engines might not respond to these settings, but
1167 UCI engines always should.
1168
1169 Maximum Number of CPUs per Engine
1170 Specifies the number of search threads any engine can maximally
1171 use. Do not set it to a number larger than the number of cores
1172 your computer has. (Or half of it when you want two engines to
1173 run simultaneously, as in a Two-Machines game with `Ponder Next
1174 Move' on.)
1175
1176 Polyglot Directory
1177
1178 Hash-Table Size
1179 Specifies the maximum amount of memory (RAM) each engine is
1180 allowed to use for storing info on positions it already
1181 searched, so it would not have to search them again. Do not set
1182 it so that it is more than half (or if you use two engines, more
1183 than a quarter) of the memory your computer has, or it would
1184 slow the engines down by an extreme amount.
1185
1186 EGTB Path
1187 Sets the value of the `egtFormats' option, which specifies where
1188 on your computer the files for End-Game Tables are stored. It
1189 must be a comma-separated list of path names, the path for each
1190 EGT flavor prefixed with the name of the latter and a colon.
1191 E.g. "nalimov:/home/egt/dtm,syzygy:/home/egt/dtz50". The path
1192 names after the colon will be sent to the engines that say they
1193 can use the corresponding EGT flavor.
1194
1195 EGTB Cache Size
1196 Specifies the amount of memory the engine should use to buffer
1197 end-game information. Together with the `Hash-Table Size' this
1198 determines how much memory the engine is allowed to use in
1199 total.
1200
1201 Use GUI Book
1202 Opening-Book Filename
1203 The `Opening-Book Filename' specifies an opening book in Poly‐
1204 glot format (usually a .bin file), from which XBoard can play
1205 moves on behalf of the engine. This is also the book file on
1206 which the `Edit Book' and `Save Games as Book' menu items oper‐
1207 ate. A checkbox `Use GUI Book' can be used to temporarily dis‐
1208 able the book without losing the setting. (This does not pre‐
1209 vent editing or saving games on it!)
1210
1211 Book Depth
1212 Book Variety
1213 The way moves are selected from the book can be controlled by
1214 two options. `Book Depth' controls for how deep into the game
1215 the book will be consulted (measured in full moves). `Book
1216 Variety' controls the likelihood of playing weaker moves. When
1217 the variety is set to 50, moves will be played with the proba‐
1218 bility specified in the book. When set to 0, only the move(s)
1219 with the highest probability will be played. When set to 100,
1220 all listed moves will be played with equal pobability. Other
1221 settings interpolate between that.
1222
1223 Engine #1 Has Own Book
1224 Engine #2 Has Own Book
1225 These checkboxes control on a per-engine basis whether XBoard
1226 will consult the opening book for them. If ticked, XBoard will
1227 never play moves from its GUI book, giving the engine the oppor‐
1228 tunity to use its own. These options are automatically set
1229 whenever you load an engine, based on the setting of `Must not
1230 use GUI book' when you installed that through the `Load Engine'
1231 menu dialog.
1232
1233 Hint Displays a move hint from the chess engine.
1234
1235 Book Displays a list of possible moves from the chess engine's open‐
1236 ing book. The exact format depends on what chess engine you are
1237 using. With GNU Chess 4, the first column gives moves, the sec‐
1238 ond column gives one possible response for each move, and the
1239 third column shows the number of lines in the book that include
1240 the move from the first column. If you select this option and
1241 nothing happens, the chess engine is out of its book or does not
1242 support this feature.
1243
1244 Move Now
1245 Forces the chess engine to move immediately. Chess engine mode
1246 only. The `Ctrl-M' key is a keyboard equivalent. Many engines
1247 won't respond to this.
1248
1249 Retract Move
1250 Retracts your last move. In chess engine mode, you can do this
1251 only after the chess engine has replied to your move; if the
1252 chess engine is still thinking, use `Move Now' first. In ICS
1253 mode, `Retract Move' issues the command `takeback 1' or `take‐
1254 back 2' depending on whether it is your opponent's move or
1255 yours. The `Ctrl-X' key is a keyboard equivalent.
1256
1257 Recently Used Engines
1258 At the bottom of the engine menu there can be a list of names of
1259 engines that you recently loaded through the Load Engine menu
1260 dialog in previous sessions. Clicking on such a name will load
1261 that engine as first engine, so you won't have to search for it
1262 in your list of installed engines, if that is very long. The
1263 maximum number of displayed engine names is set by the `recen‐
1264 tEngines' command-line option.
1265
1266 Options Menu
1267 Mute all Sounds
1268 Ticking this menu item toggles all sounds XBoard can make on or off,
1269 without losing their definitions.
1270
1271 General Options
1272 The following items to set option values appear in the dialog summoned
1273 by the general Options menu item.
1274
1275 Absolute Analysis Scores
1276 Controls if scores on the Engine Output window during analysis
1277 will be printed from the white or the side-to-move point-of-
1278 view.
1279
1280 Almost Always Queen
1281 If this option is on, 7th-rank pawns automatically change into
1282 Queens when you pick them up, and when you drag them to the pro‐
1283 motion square and release them there, they will promote to that.
1284 But when you drag such a pawn backwards first, its identity will
1285 start to cycle through the other available pieces. This will
1286 continue until you start to move it forward; at which point the
1287 identity of the piece will be fixed, so that you can safely put
1288 it down on the promotion square. If this option is off, what
1289 happens depends on the option `alwaysPromoteToQueen', which
1290 would force promotion to Queen when true. Otherwise XBoard
1291 would bring up a dialog box whenever you move a pawn to the last
1292 rank, asking what piece you want to promote to.
1293
1294 Animate Dragging
1295 If Animate Dragging is on, while you are dragging a piece with
1296 the mouse, an image of the piece follows the mouse cursor. If
1297 Animate Dragging is off, there is no visual feedback while you
1298 are dragging a piece, but if Animate Moving is on, the move will
1299 be animated when it is complete.
1300
1301 Animate Moving
1302 If Animate Moving is on, all piece moves are animated. An image
1303 of the piece is shown moving from the old square to the new
1304 square when the move is completed (unless the move was already
1305 animated by Animate Dragging). If Animate Moving is off, a
1306 moved piece instantly disappears from its old square and reap‐
1307 pears on its new square when the move is complete. The shifted
1308 `Ctrl-A' key is a keyboard equivalent.
1309
1310 Auto Flag
1311 If this option is on and one player runs out of time before the
1312 other, XBoard will automatically call his flag, claiming a win
1313 on time. The shifted `Ctrl-F' key is a keyboard equivalent. In
1314 ICS mode, Auto Flag will only call your opponent's flag, not
1315 yours, and the ICS may award you a draw instead of a win if you
1316 have insufficient mating material. In local chess engine mode,
1317 XBoard may call either player's flag.
1318
1319 Auto Flip View
1320 If the Auto Flip View option is on when you start a game, the
1321 board will be automatically oriented so that your pawns move
1322 from the bottom of the window towards the top.
1323
1324 If you are playing a game on an ICS, the board is always ori‐
1325 ented at the start of the game so that your pawns move from the
1326 bottom of the window towards the top. Otherwise, the starting
1327 orientation is determined by the `flipView' command line option;
1328 if it is false (the default), White's pawns move from bottom to
1329 top at the start of each game; if it is true, Black's pawns move
1330 from bottom to top. See User interface options.
1331
1332 Blindfold
1333 If this option is on, XBoard displays the board as usual but
1334 does not display pieces or move highlights. You can still move
1335 in the usual way (with the mouse or by typing moves in ICS
1336 mode), even though the pieces are invisible.
1337
1338 Drop Menu
1339 Controls if right-clicking the board in crazyhouse / bughouse
1340 will pop up a menu to drop a piece on the clicked square (old,
1341 deprecated behavior) or allow you to step through an engine PV
1342 (new, recommended behavior).
1343
1344 Enable Variation Trees
1345 If this option is on, playing a move in Edit Game or Analyze
1346 mode while keeping the Shift key pressed will start a new varia‐
1347 tion. You can then recall the previous line through the
1348 `Revert' menu item. When off, playing a move will truncate the
1349 game and append the move irreversibly.
1350
1351 Headers in Engine Output Window
1352 Controls the presence of column headers above the variations and
1353 associated information printed by the engine, on which you can
1354 issue button 3 clicks to open or close the columns. Available
1355 columns are search depth, score, node count, time used, table‐
1356 base hits, search speed and selective search depth.
1357
1358 Hide Thinking
1359 If this option is off, the chess engine's notion of the score
1360 and best line of play from the current position is displayed as
1361 it is thinking. The score indicates how many pawns ahead (or if
1362 negative, behind) the chess engine thinks it is. In matches
1363 between two machines, the score is prefixed by `W' or `B' to
1364 indicate whether it is showing White's thinking or Black's, and
1365 only the thinking of the engine that is on move is shown. The
1366 shifted `Ctrl-H' key is a keyboard equivalent.
1367
1368 Highlight Last Move
1369 If Highlight Last Move is on, after a move is made, the starting
1370 and ending squares remain highlighted. In addition, after you
1371 use Backward or Back to Start, the starting and ending squares
1372 of the last move to be unmade are highlighted.
1373
1374 Highlight with Arrow
1375 Causes the highlighting described in Highlight Last Move to be
1376 done by drawing an arrow between the highlighted squares, so
1377 that it is visible even when the width of the grid lines is set
1378 to zero.
1379
1380 One-Click Moving
1381 If this option is on, XBoard does not wait for you to click both
1382 the from- and the to-square, or drag the piece, but performs a
1383 move as soon as it is uniqely specified. This applies to click‐
1384 ing an own piece that only has a single legal move, clicking an
1385 empty square or opponent piece where only one of your pieces can
1386 move (or capture) to. Furthermore, a double-click on a piece
1387 that can only make a single capture will cause that capture to
1388 be made. Promoting a Pawn by clicking its to-square will sup‐
1389 press the promotion popup or other methods for selecting an
1390 under-promotion, and make it promote to Queen.
1391
1392 Periodic Updates
1393 If this option is off (or if you are using a chess engine that
1394 does not support periodic updates), the analysis window will
1395 only be updated when the analysis changes. If this option is on,
1396 the Analysis Window will be updated every two seconds.
1397
1398 Play Move(s) of Clicked PV
1399 If this option is on, right-clicking on the first move of a PV
1400 or on the data fields left of it in the Engine Output window
1401 during Analyze mode will cause the first move of that PV to be
1402 played. You could also play more than one (or no) PV move by
1403 moving the mouse to engage in the PV walk such a right-click
1404 will start, to seek out another position along the PV where you
1405 want to continue the analysis, before releasing the mouse but‐
1406 ton. Clicking on later moves of the PV only temporarily show
1407 the moves for as long you keep the mouse button down, without
1408 adding them to the game.
1409
1410 Ponder Next Move
1411 If this option is off, the chess engine will think only when it
1412 is on move. If the option is on, the engine will also think
1413 while waiting for you to make your move. The shifted `Ctrl-P'
1414 key is a keyboard equivalent.
1415
1416 Popup Exit Message
1417 If this option is on, when XBoard wants to display a message
1418 just before exiting, it brings up a modal dialog box and waits
1419 for you to click OK before exiting. If the option is off,
1420 XBoard prints the message to standard error (the terminal) and
1421 exits immediately.
1422
1423 Popup Move Errors
1424 If this option is off, when you make an error in moving (such as
1425 attempting an illegal move or moving the wrong color piece), the
1426 error message is displayed in the message area. If the option
1427 is on, move errors are displayed in small pop-up windows like
1428 other errors. You can dismiss an error pop-up either by click‐
1429 ing its OK button or by clicking anywhere on the board, includ‐
1430 ing down-clicking to start a move.
1431
1432 Scores in Move List
1433 If this option is on, XBoard will display the depth and score of
1434 engine moves in the Move List, in the format of a PGN comment.
1435
1436 Show Coords
1437 If this option is on, XBoard displays algebraic coordinates
1438 along the board's left and bottom edges.
1439
1440 Show Target Squares
1441 If this option is on, all squares a piece that is 'picked up'
1442 with the mouse can legally move to are highighted with a fat
1443 colored dot in yellow (non-captures) or red (captures). Special
1444 moves might have other colors (e.g. magenta for promotion, cyan
1445 for a partial move). Legality testing must be on for XBoard to
1446 know how the piece moves, but with legality testing off some
1447 engines would offer this information.
1448
1449 Sticky Windows
1450 Controls whether the auxiliary windows such as Engine Output,
1451 Move History and Evaluation Graph should keep touching XBoard's
1452 main window when you move the latter.
1453
1454 Test Legality
1455 If this option is on, XBoard tests whether the moves you try to
1456 make with the mouse are legal and refuses to let you make an
1457 illegal move. The shifted `Ctrl-L' key is a keyboard equiva‐
1458 lent. Moves loaded from a file with `Load Game' are also
1459 checked. If the option is off, all moves are accepted, but if a
1460 local chess engine or the ICS is active, they will still reject
1461 illegal moves. Turning off this option is useful if you are
1462 playing a chess variant with rules that XBoard does not under‐
1463 stand. (Bughouse, suicide, and wild variants where the king may
1464 castle after starting on the d file are generally supported with
1465 Test Legality on.)
1466
1467 Top-Level Dialogs
1468 Controls whether the auxiliary windows will appear as icons in
1469 the task bar and independently controllable, or whether they
1470 open and minimize all together with the main window.
1471
1472 Flash Moves
1473 Flash Rate
1474 If this option is non-zero, whenever a move is completed, the
1475 moved piece flashes the specified number of times. The flash-
1476 rate setting determines how rapidly this flashing occurs.
1477
1478 Animation Speed
1479 Determines the duration (in msec) of an animation step, when
1480 `Animate Moving' is swiched on.
1481
1482 Zoom factor in Evaluation Graph
1483 Sets the value of the `evalZoom' option, indicating the factor
1484 by which the score interval (-1,1) should be blown up on the
1485 vertical axis of the Evaluation Graph.
1486
1487 Time Control
1488 Pops up a sub-menu where you can set the time-control parameters inter‐
1489 actively. The shifted `Alt+T' key is a keyboard equivalent.
1490
1491 classical
1492 Selects classical TC, where the game is devided into sessions of
1493 a certain number of moves, and after each session the start time
1494 is again added to the clocks.
1495
1496 incremental
1497 Selects a TC mode where the game will start with a base time on
1498 the clocks, and after every move an 'increment' will be added to
1499 it.
1500
1501 fixed max
1502 Selects a TC mode where you have to make each move within a
1503 given time, and any left-over time is not carried over to the
1504 next move.
1505
1506 Divide entered times by 60
1507 To allow entering of sub-minute initial time or sub-second
1508 increment, you can tick this checkbox. The initial time can
1509 then be entered in seconds, and the increment in units of 1/60
1510 second.
1511
1512 Moves per session
1513 Sets the duration of a session for classical time control.
1514
1515 Initial time
1516 Time initially on the clock in classical or incremental time
1517 controls. In classical time controls this time will also be
1518 added to the clock at the start of ach new session.
1519
1520 Increment or max
1521 Time to be added to the clock after every move in incremental TC
1522 mode. Fore 'fixed maximum' TC mode, the clock will be set to
1523 this time before every move, irrespective of how much was left
1524 on that clock.
1525
1526 Time-Odds factors
1527 When these options are set to 1 the clocks of the players will
1528 be set according to the other specified TC parameters. Players
1529 can be given unequal times by specifying a time-odds factor for
1530 one of them (or a different factor for both of them). Any time
1531 received by that player will then be divided by that factor.
1532
1533 Adjudications
1534 Pops up a sub-menu where you can enable or disable various adjudica‐
1535 tions that XBoard can perform in engine-engine games. The shifted
1536 `Alt+J' key is a keyboard equivalent.
1537
1538 Detect all Mates
1539 When this option is set XBoard will terminate the game on check‐
1540 mate or stalemate, even if the engines would not do so. Only
1541 works when `Test Legality' is on.
1542
1543 Verify Engine Result Claims
1544 When this option is set XBoard will verify engine result claims,
1545 (forfeiting engines that make false claims), rather than naively
1546 beleiving the engine. Only works when `Test Legality' is on.
1547
1548 Draw if Insufficient Mating Material
1549 When this option is set XBoard will terminate games with a draw
1550 result when so little material is left that checkmate is not
1551 longer possible. In normal Chess this applies to KK, KNK, KBK
1552 and some positions with multiple Bishops all on the same square
1553 shade. Only works when `Test Legality' is on.
1554
1555 Adjudicate Trivial Draws
1556 When this option is set XBoard will terminate games with a draw
1557 result in positions that could only be won against an idiot. In
1558 normal Chess this applies to KNNK, KRKR, KBKN, KNKN, and KBKB
1559 with Bishops on different square shades. KQKQ will also be
1560 adjudicated a draw (possibly unjustly so). Only works when
1561 `Test Legality' is on.
1562
1563 N-Move Rule
1564 When this option is set to a value differnt from zero XBoard
1565 will terminate games with a draw result after the specified num‐
1566 ber of reversible moves (i.e. without captures or pawn pushes)
1567 is made.
1568
1569 N-fold Repeats
1570 When this option is set to a value larger than 1, XBoard will
1571 terminate games with a draw result when the same position has
1572 occurred the specified number of times.
1573
1574 Draw after N Moves Total
1575 When this option is set to a value different from zero, XBoard
1576 will terminate games with a draw result after that many moves
1577 have been played. Useful in automated engine-engine matches, to
1578 prevent one game between stubborn engines will soak up all your
1579 computer time.
1580
1581 Win / Loss Threshold
1582 When this option is set to a value different from zero, XBoard
1583 will terminate games as a win when both engines agree the score
1584 is above the specified value (interpreted as centi-Pawn) for
1585 three successive moves.
1586
1587 Negate Score of Engine #1
1588 Negate Score of Engine #2
1589 These options should be used with engines that report scores
1590 from the white point of view, rather than the side-to-move POV
1591 as XBoard would otherwise assume when adjudicating games based
1592 on the engine score. When the engine is installed with the
1593 extra option `firstScoreIsAbs' true in the engine list the
1594 option would be automatically set when the engine is loaded
1595 throuhgh the Engine menu, or with the `fe' or `se' command-line
1596 option.
1597
1598 ICS Options
1599 Pops up a menu dialog where options can be set that affect playing
1600 against an Internet Chess Server.
1601
1602 Auto-Kibitz
1603 Setting this option when playing with or aginst a chess program
1604 on an ICS will cause the last line of thinking output of the
1605 engine before its move to be sent to the ICS in a kibitz com‐
1606 mand. In addition, any kibitz message received through the ICS
1607 from an opponent chess program will be diverted to the engine-
1608 output window, (and suppressed in the console), where you can
1609 play through its PV by right-clicking it.
1610
1611 Auto-Comment
1612 If this option is on, any remarks made on ICS while you are
1613 observing or playing a game are recorded as a comment on the
1614 current move. This includes remarks made with the ICS commands
1615 `say', `tell', `whisper', and `kibitz'. Limitation: remarks
1616 that you type yourself are not recognized; XBoard scans only the
1617 output from ICS, not the input you type to it.
1618
1619 Auto-Observe
1620 If this option is on and you add a player to your `gnotify' list
1621 on ICS, XBoard will automatically observe all of that player's
1622 games, unless you are doing something else (such as observing or
1623 playing a game of your own) when one starts. The games are dis‐
1624 played from the point of view of the player on your gnotify
1625 list; that is, his pawns move from the bottom of the window
1626 towards the top. Exceptions: If both players in a game are on
1627 your gnotify list, if your ICS `highlight' variable is set to 0,
1628 or if the ICS you are using does not properly support observing
1629 from Black's point of view, you will see the game from White's
1630 point of view.
1631
1632 Auto-Raise Board
1633 If this option is on, whenever a new game begins, the chessboard
1634 window is deiconized (if necessary) and raised to the top of the
1635 stack of windows.
1636
1637 Auto Save
1638 If this option is true, at the end of every game XBoard prompts
1639 you for a file name and appends a record of the game to the file
1640 you specify. Disabled if the `saveGameFile' command-line option
1641 is set, as in that case all games are saved to the specified
1642 file. See Load and Save options.
1643
1644 Background Observe while Playing
1645 Setting this option will make XBoard suppress display of any
1646 boards from observed games while you are playing. Instead the
1647 last such board will be remembered, and shown to you when you
1648 right-click the board. This allows you to peek at your bughouse
1649 partner's game when you want, without disturbing your own game
1650 too much.
1651
1652 Dual Board for Background-Observed Game
1653 Setting this option in combination with `Background Observe'
1654 will display boards of observed games while you are playing on a
1655 second board next to that of your own game.
1656
1657 Get Move List
1658 If this option is on, whenever XBoard receives the first board
1659 of a new ICS game (or a different game from the one it is cur‐
1660 rently displaying), it retrieves the list of past moves from the
1661 ICS. You can then review the moves with the `Forward' and
1662 `Backward' commands or save them with `Save Game'. You might
1663 want to turn off this option if you are observing several blitz
1664 games at once, to keep from wasting time and network bandwidth
1665 fetching the move lists over and over. When you turn this
1666 option on from the menu, XBoard immediately fetches the move
1667 list of the current game (if any).
1668
1669 Quiet Play
1670 If this option is on, XBoard will automatically issue an ICS
1671 `set shout 0' command whenever you start a game and a `set shout
1672 1' command whenever you finish one. Thus, you will not be dis‐
1673 tracted by shouts from other ICS users while playing.
1674
1675 Seek Graph
1676 Setting this option will cause XBoard to display an graph of
1677 currently active seek ads when you left-click the board while
1678 idle and logged on to an ICS.
1679
1680 Auto-Refresh Seek Graph
1681 In combination with the `Seek Graph' option this will cause
1682 automatic update of the seek graph while it is up. This only
1683 works on FICS and ICC, and requires a lot of bandwidth on a busy
1684 server.
1685
1686 Auto-InputBox PopUp
1687 Controls whether the ICS Input Box will pop up automatically
1688 when you type a printable character to the board window in ICS
1689 mode.
1690
1691 Quit After Game
1692 Controls whether XBoard will automatically disconnect from the
1693 ICS and close when the game currently in progress finishes.
1694
1695 Premove
1696 Premove for White
1697 Premove for Black
1698 First White Move
1699 First Black Move
1700 If the `Premove' option is on while playing a game on an ICS,
1701 you can register your next planned move before it is your turn.
1702 Move the piece with the mouse in the ordinary way, and the
1703 starting and ending squares will be highlighted with a special
1704 color (red by default). When it is your turn, if your regis‐
1705 tered move is legal, XBoard will send it to ICS immediately; if
1706 not, it will be ignored and you can make a different move. If
1707 you change your mind about your premove, either make a different
1708 move, or double-click on any piece to cancel the move entirely.
1709
1710 You can also enter premoves for the first white and black moves
1711 of the game.
1712
1713 Alarm
1714 Alarm Time
1715 When this option is on, an alarm sound is played when your clock
1716 counts down to the `Alarm Time' in an ICS game. (By default,
1717 the time is 5 seconds, but you can specify other values with the
1718 Alarm Time spin control.) For games with time controls that
1719 include an increment, the alarm will sound each time the clock
1720 counts down to the icsAlarmTime. By default, the alarm sound is
1721 the terminal bell, but on some systems you can change it to a
1722 sound file using the soundIcsAlarm option; see below.
1723
1724 Colorize Messages
1725 Ticking this options causes various types of ICS messages do be
1726 displayed with different foreground or background colors in the
1727 console. The colors can be individually selected for each type,
1728 through the accompanying text edits.
1729
1730 -icsMenu string
1731 The string defines buttons for the `ICS text menu'. Each button
1732 definition consists of two semi-colon-terminated pieces of text,
1733 the first giving the label to be written on the button, the sec‐
1734 ond the text that should be sent to the ICS when that button is
1735 pressed. This second part (the 'message') can contain line‐
1736 feeds, so that you can send multiple ICS commands with one but‐
1737 ton. Some message in the text, all starting with a $-sign, are
1738 treated special. When the message contains '$input', it will
1739 not be sent directly to the ICS, but will be put in the input
1740 field of the `ICS Chat/Console', with the text cursor at the
1741 indicated place, so you can addsome text to the message before
1742 sending it off. If such a message starts with '$add' it will be
1743 placed behind any text that is already present in the input
1744 field, otherwise this field will be cleared first. The word
1745 '$name' occurring in the message will be replaced by the word
1746 that was clicked (through button 3) in the ICS Chat/Console.
1747 There are two special messages: '$chat' will open a new chat
1748 with the clicked word in the chat-partner field, while '$copy'
1749 will copy the text that is currently-selected in the ICS Console
1750 to the clipboard. An example of a text menu as it might occur
1751 in your settings file (where you could edit it):
1752
1753 -icsMenu {copy;$copy;
1754 list players;who;
1755 list games;games;
1756 finger (player);finger $name;
1757 bullet (player);match $name 1 1 r;
1758 blitz (player);match $name 5 1 r;
1759 rapid (player);match $name 30 0 r;
1760 open chat (player);$chat;
1761 tell (player);tell $name $input;
1762 ask pieces;ptell Please give me a $input;
1763 P;$add Pawn $input;
1764 N;$add Knight $input;
1765 B;$add Bishop $input;
1766 R;$add Rook $input;
1767 Q;$add Queen $input;
1768 }
1769
1770 Tournament Options
1771 Summons a dialog where you can set options important for playing auto‐
1772 matic matches between two or more chess programs (e.g. by using the
1773 `Machine Match' menu item in the `Mode' menu).
1774
1775 Tournament file
1776 To run a tournament, XBoard needs a file to record its progress,
1777 so it can resume the tourney when it is interrupted. When you
1778 want to conduct anything more complex than a simple two-player
1779 match with the currently loaded engines, (i.e. when you select a
1780 list of participants), you must not leave this field blank.
1781 When you enter the name of an existing tournament file, XBoard
1782 will ignore all other input specified in the dialog, and will
1783 take the corresponding info from that tournament file. This
1784 resumes an interrupted tournament, or adds another XBoard agent
1785 playing games for it to those that are already doing so. Speci‐
1786 fying a not-yet-existing file will cause XBoard to create it,
1787 according to the tournament parameters specified in the rest of
1788 the dialog, before it starts the tournament on ‘OK’. Provided
1789 that you specify participants; without participants no tourna‐
1790 ment file will be made, but other entered values (e.g. for the
1791 file with opening positions) will take effect. Default: config‐
1792 ured by the `defaultTourneyName' option.
1793
1794 Sync after round
1795 Sync after cycle
1796 The sync options, when on, will cause WinBoard to refrain from
1797 starting games of the next round or cycle before all games of
1798 the previous round or cycle are finished. This guarantees cor‐
1799 rect ordering in the games file, even when multiple XBoard
1800 instances are concurrently playing games for the same tourney.
1801 Default: sync after cycle, but not after round.
1802
1803 Select Engine
1804 Tourney participants
1805 From the Select Engine listbox you can pick an engine from your
1806 list of engines registered in the settings file, to be added to
1807 the tournament. The engines selected so far will be listed in
1808 the ‘Tourney participants’ memo. The latter is a normal text
1809 edit, so you can use normal text-editing functions to delete
1810 engines you selected accidentally, or change their order. Typ‐
1811 ing names here yourself is not recommended, because names that
1812 do not exactly match one of the names from the selection listbox
1813 will lead to undefined behavior.
1814
1815 Tourney type
1816 Here you can specify the type of tournament you want. XBoard’s
1817 intrinsic tournament manager support round-robins (type = 0),
1818 where each participant plays every other participant, and
1819 (multi-)gauntlets, where one (or a few) so-called ‘gauntlet
1820 engines’ play an independent set of opponents. In the latter
1821 case, you specify the number of gauntlet engines. E.g. if you
1822 specified 10 engines, and tourney type = 2, the first 2 engines
1823 each play the remaining 8. A value of -1 instructs XBoard to
1824 play Swiss; for this to work an external pairing engine must be
1825 specified through the `pairingEngine' option. Each Swiss round
1826 will be considered a tourney cycle in that case. Default:0
1827
1828 Number of tourney cycles
1829 Default Number of Games in Match
1830 You can specify tourneys where every two opponents play each
1831 other multiple times. Such multiple games can be played in a
1832 row, as specified by the ‘number of games per pairing’, or by
1833 repeating the entire tournament schedule a number of times
1834 (specified by the ‘number of tourney cycles’). The total number
1835 of times two engines meet will be the product of these two.
1836 Default is 1 cycle; the number of games per pairing is the same
1837 as the default number of match games, stored in your settings
1838 file through the `defaultMatchGames' option.
1839
1840 Pause between Match Games
1841 Time (in milliseconds) XBoard waits before starting a new game
1842 after a previous match or tournament game finishes. Such a
1843 waiting period is important for engines that do not support
1844 'ping', as these sometimes still produce a move long after the
1845 game finished because of the opponent resigning, which would be
1846 mistaken for a move in the next game if that had already
1847 started.
1848
1849 Save Tourney Games on
1850 File where the tournament games are saved (duplicate of the item
1851 in the `Save Game Options').
1852
1853 Game File with Opening Lines
1854 File with Start Positions
1855 Game Number
1856 Position Number
1857 Rewind Index after this many Games
1858 These items optionally specify the file with move sequences or
1859 board positions the tourney games should start from. The corre‐
1860 sponding numbers specify the number of the game or position in
1861 the file. Here a value -1 means automatic stepping through all
1862 games on the file, -2 automatic stepping every two games. The
1863 Rewind-Index parameter causes a stepping index to reset to one
1864 after reaching a specified value. A setting of -2 for the game
1865 number will also be effective in a tournament without specifying
1866 a game file, but playing from the GUI book instead. In this
1867 case the first (odd) games will randomly select from the book,
1868 but the second (even) games will select the same moves from the
1869 book as the previous game. (Note this leads to the same opening
1870 only if both engines use the GUI book!) Default: No game or
1871 position file will be used. The default index if such a file is
1872 used is 1.
1873
1874 Disable own engine books by default
1875 Setting this option reverses the default situation for use of
1876 the GUI opening book in tournaments from what it normally is,
1877 namely not using it. So unless the engine is installed with an
1878 option to explicitly specify it should not use the GUI book
1879 (i.e. `-firstHasOwnBookUCI true'), it will be made to use the
1880 GUI book.
1881
1882 Replace Engine
1883 Upgrade Engine
1884 With these two buttons you can alter the participants of an
1885 already running tournament. After opening the Match Options
1886 dialog on an XBoard that is playing for the tourney, you will
1887 see all the tourney parameters in the dialog fields. You can
1888 then replace the name of one engine by that of another by edit‐
1889 ing the `participants' field. (But preserve the order of the
1890 others!) Pressing the button after that will cause the substi‐
1891 tution. With the `Upgrade Engine' button the substitution will
1892 only affect future games. With `Replace Engine' all games the
1893 substituted engine has already played will be invalidated, and
1894 they will be replayed with the substitute engine. In this lat‐
1895 ter case the engine must not be playing when you do this, but
1896 otherwise there is no need to pause the tournament play for mak‐
1897 ing a substitution.
1898
1899 Clone Tourney
1900 Pressing this button after you have specified an existing tour‐
1901 nament file will copy the contents of the latter to the dialog,
1902 and then puts the originally proposed name for the tourney file
1903 back. You can then run a tourney with the same parameters (pos‐
1904 sibly after changing the proposed name of the tourney file for
1905 the new tourney) by pressing 'OK'.
1906
1907 Continue Later
1908 Pressing the `Continue Later' button confirms the current value
1909 of all items in the dialog and closes it, but will not automati‐
1910 cally start the tournament. This allows you to return to the
1911 dialog later without losing the settings you already entered, to
1912 adjust paramenters through other menu dialogs. (The `Common
1913 Engine Setting', `Time Control' and `General Options' dialogs
1914 can be accessed without closing the `Tournament Options' dialog
1915 through the respective buttons at the bottom of the latter.)
1916
1917 Load Game Options
1918 Summons a dialog where you can set options that control loading of
1919 games.
1920
1921 Auto-Display Tags
1922 Setting this option causes a window to pop up on loading a game,
1923 displaying the PGN Tags for that game.
1924
1925 Auto-Display Comment
1926 Setting this option causes a window to pop up whenever there is
1927 a comment to (or variation on) the currently displayed move.
1928
1929 Auto-Play speed of loaded games
1930 This option sets the number of seconds between moves when a
1931 newly loaded game is auto-playing. A decimal fraction on the
1932 number is understood. Setting it to -1 disables auto-play,
1933 staying in the start position of the game after the loading com‐
1934 pletes. Setting it to 0 will instantly move to the final posi‐
1935 tion of the game. The `Auto-Play speed' is also used to deter‐
1936 mine the analysis time for each move during `Analyze Game'.
1937 Note that auto-playing (including game analysis) can be stopped
1938 at any time through the `P' button above the board.
1939
1940 options to use in game-viewer mode
1941 Specifies the options automatically set when XBoard is invoked
1942 with the option `-viewer' on its command line, as will happen
1943 when it is started in response to clicking a PGN game file. The
1944 default setting would start XBoard without engine (due to the
1945 `-ncp' option), but if you want it to automatically start with
1946 your favorite engine, and automatically start analyzing, you
1947 could include the necessary options for that here (e.g. `-fe
1948 <engine> -initialMode analysis').
1949
1950 Thresholds for position filtering in game list
1951 The following options can be set to limit the display of games
1952 in the `Game List' window to a sub-set, meeting the specified
1953 criteria.
1954
1955 Elo of strongest player at least
1956
1957 Elo of weakest player at least
1958 Games with an Elo tag specifying a lower rating for the men‐
1959 tioned player will not be diplayed in the `Game List'.
1960
1961 No games before year
1962 Games with a Date tag before the specified year will not be
1963 diplayed in the `Game List'.
1964
1965 Final nr of pieces
1966 A single number or a range (like 8-10) can be entered here, and
1967 will cause only games where the number of men in the final posi‐
1968 tion is in the given range will be diplayed in the `Game List'.
1969
1970 Minimum nr consecutive positions
1971 Specifies for how many consecutive positions the more fuzzy
1972 position-matching criteria have to be satisfied in order to
1973 count as a match.
1974
1975 Search mode
1976 find position
1977 XBoard can select games for display in the `Game List' based on
1978 whether (in addition to the conditions on the PGN tags) they
1979 contain a position that matches the position currently displayed
1980 on the board, by pressing the `find position' or `narrow' but‐
1981 tons in the `Game List' window. The `Search mode' setting
1982 determines what counts as match. You can search for an exact
1983 match, a position that has all shown material in the same place,
1984 but might contain additional material, a position that has all
1985 Pawns in the same place, but can have the shown material any‐
1986 where, a position that can have all shown material anywhere,
1987 or a position that has material between certain limits anywhere.
1988 For the latter you have to place the material that must mini‐
1989 mally be present in the four lowest ranks of the board, and
1990 optional additional material in the four highest ranks of the
1991 board. You can request the optional material to be balanced,
1992 i.e. equal for white and black.
1993
1994 narrow The `narrow' button is similar in fuction to the `find position'
1995 button, but only searches in the already selected games, rather
1996 than the complete game file, and can thus be used to refine a
1997 search based on multiple criteria.
1998
1999 Also match reversed colors
2000 Also match left-right flipped position
2001 When looking for matching positions rather than by material,
2002 these settings determine whether mirror images (in case of a
2003 vertical flip in combination with color reversal) will be also
2004 considered a match. The left-right flipping is only useful
2005 after all castling rights have expired (or in Xiangqi).
2006
2007 Save Game Options
2008 Summons a dialog where you can specify whether XBoard should automati‐
2009 cally save files of games when they finish, and where and how to do
2010 that.
2011
2012 Auto-Save Games
2013 When set XBoard will automatically save games on a file as they
2014 finish. (Not when you abort them by pressing `New Game',
2015 though!) It will either prompt you for a filename, or use the
2016 file specified by the `saveGameFile' option.
2017
2018 Own Games Only
2019 Setting this option will exclude games by others observed on an
2020 Internet Chess Server from automatic saving.
2021
2022 Save Games on File
2023 Name of the file on which games should be saved automatically.
2024 Games are always appended to the file, and will never overwrite
2025 anything.
2026
2027 Save Final Position on File
2028 When a name is defined, the final position of each game is
2029 appended to the mentioned file.
2030
2031 PGN Event Header
2032 Specifies the name of the event used in the PGN event tag of new
2033 games that you create.
2034
2035 Old Save Style
2036 Saves games in an obsolete and now long forgotten format, rather
2037 than as PGN. Never use this for orthodox Chess!
2038
2039 Include Number Tag in tourney PGN
2040 When on this option will cause the non-standard 'Number' tag to
2041 be written in any game saved in PGN format. It will contain the
2042 unique number of the game in the tourney. (As opposed to the
2043 'Round' tag, which can be shared by many games.)
2044
2045 Save Score/Depth Info in PGN
2046 When on this option will cause the score and depth at which it
2047 was calculated by an engine, and (when available) thinking time
2048 to be saved with the move as a comment to the move, in the for‐
2049 mat {score/depth time}. Here 'score'is in pawn units from the
2050 point of view of the player that made the move, with two digits
2051 behind the decimal Pawn.
2052
2053 Save Out-of-Book Info in PGN
2054 When on this option causes the score of the first move the
2055 engine made after coming out of book in an 'Annotator' PGN tag.
2056
2057 Game List
2058 Pops up a dialog where you can select the PGN tags that should appear
2059 on the lines in the `Game List', and their order.
2060
2061
2062 Sound Options
2063 Summons a dialog where you can specify the sounds that should accompany
2064 various events that can occur in XBoard. Most events are only relevant
2065 to ICS play, but the move sound is an important exception. For each
2066 event listed in the dialog, you can select a standard sound from a
2067 menu.
2068
2069 Sound Program
2070 Specifies the command XBoard should invoke to play sounds. The
2071 specified text will be suffixed by the name of the sound file,
2072 and then run as a command.
2073
2074 Sounds Directory
2075 Specifies the directory where XBoard will look for files with
2076 the names of the standard sounds.
2077
2078 User WAV File
2079 When we type a filename here, it can be assigned to the events
2080 by selecting `Above WAV File' from the drop downs.
2081
2082 Try-Out Sound
2083 Play The 'event' triggering the Try-Out sound is pressing of the
2084 `Play' button behind it. This allows you to judge the sounds.
2085
2086 Save Settings Now
2087 Selecting this menu item causes the current XBoard settings to be writ‐
2088 ten to the settings file, (.xboardrc in your home directory), so they
2089 will also apply in future sessions. Note that some settings are
2090 'volatile', and are not saved, because XBoard considers it too unlikely
2091 that you want those to apply next time. In particular this applies to
2092 the Chess program, and all options giving information on those Chess
2093 programs (such as their directory, if they have their own opening book,
2094 if they are UCI or native XBoard), or the variant you are playing.
2095 Such options would still be understood when they appear in the settings
2096 file in case they were put there with the aid of a text editor, but
2097 they would disappear from the file as soon as you save the settings.
2098
2099 Note that XBoard no longer pays attention to options values specified
2100 in the .Xresources file. (Specifying key bindings there will still
2101 work, though.) To alter the default of volatile options, you can use
2102 the following method: Rename your ~/.xboardrc settings file (to
2103 ~/.yboardrc, say), and create a new file ~/.xboardrc, which only con‐
2104 tains the options
2105
2106 -settingsFile ~/.yboardrc
2107 -saveSettingsFile ~/.yboardrc
2108
2109 This will cause your settings to be saved on ~/.yboardrc in the future,
2110 so that ~/.xboardrc is no longer overwritten. You can then safely
2111 specify volatile options in ~/.xboardrc, either before or after the
2112 settingsFile options. Note that when you specify persistent options
2113 after the settingsFile options in this ~/.xboardrc, you will essen‐
2114 tially turn them into volatile options with the specified value as
2115 default, because that value will overrule the value loaded from the
2116 settings file (being read later).
2117
2118
2119 Save Settings on Exit
2120 Setting this option has no immediate effect, but causes the settings to
2121 be saved when you quit XBoard. What happens then is otherwise identical
2122 to what happens when you use select "Save Settings Now", see there.
2123
2124
2125 Help Menu
2126 Info XBoard
2127 Displays the XBoard documentation in info format. For this fea‐
2128 ture to work, you must have the GNU info program installed on
2129 your system, and the file `xboard.info' must either be present
2130 in the current working directory, or have been installed by the
2131 `make install' command when you built XBoard.
2132
2133 Man XBoard
2134 Displays the XBoard documentation in man page format. The `F1'
2135 key is a keyboard equivalent. For this feature to work, the
2136 file `xboard.6' must have been installed by the `make install'
2137 command when you built XBoard, and the directory it was placed
2138 in must be on the search path for your system's `man' command.
2139
2140 About XBoard
2141 Shows the current XBoard version number.
2142
2143 Other Shortcut Keys
2144 Show Last Move
2145 By hitting `Enter' the last move will be re-animated.
2146
2147 Load Next Game
2148 Loads the next game from the last game record file you loaded.
2149 The `Alt+PgDn' key triggers this action.
2150
2151 Load Previous Game
2152 Loads the previous game from the last game record file you
2153 loaded. The `Alt+PgUp' key triggers this action. Not available
2154 if the last game was loaded from a pipe.
2155
2156 Reload Same Game
2157 Reloads the last game you loaded. Not available if the last
2158 game was loaded from a pipe. Currently no keystroke is assigned
2159 to this ReloadGameProc.
2160
2161 Reload Same Position
2162 Reloads the last position you loaded. Not available if the last
2163 position was loaded from a pipe. Currently no keystroke is
2164 assigned to this ReloadPositionProc.
2165
2166 In the Xaw build of XBoard you can add or remove shortcut keys using
2167 the X resources `paneA.translations'. Here is an example of what could
2168 go into your `.Xdefaults' file:
2169
2170 XBoard*paneA.translations: \
2171 Shift<Key>?: MenuItem(Help.About) \n\
2172 Ctrl<Key>y: MenuItem(Action.Accept) \n\
2173 Ctrl<Key>n: MenuItem(Action.Decline) \n\
2174 Ctrl<Key>i: MenuItem(Nothing)
2175
2176 So the key should always be bound to the action 'MenuItem', with the
2177 (hierarchical) name of the menu item as argument. There are a few
2178 actions available for which no menu item exists: Binding a key to
2179 `Nothing' makes it do nothing, thus removing it as a shortcut key.
2180 Other such functions that can be bound to keys are:
2181
2182 AboutGame, DebugProc (switches the -debug option on or off),
2183 LoadNextGame, LoadPrevGame, ReloadGame, ReloadPosition.
2184
2185
2187 This section documents the command-line options to XBoard. You can set
2188 these options in two ways: by typing them on the shell command line you
2189 use to start XBoard, or by editing the settings file (usually
2190 ~/.xboardrc) to alter the value of the setting that was saved there.
2191 Some of the options cannot be changed while XBoard is running; others
2192 set the initial state of items that can be changed with the Options
2193 menu.
2194
2195 Most of the options have both a long name and a short name. To turn a
2196 boolean option on or off from the command line, either give its long
2197 name followed by the value true or false (`-longOptionName true'), or
2198 give just the short name to turn the option on (`-opt'), or the short
2199 name preceded by `x' to turn the option off (`-xopt'). For options that
2200 take strings or numbers as values, you can use the long or short option
2201 names interchangeably.
2202
2203
2204 Chess Engine Options
2205 -tc or -timeControl minutes[:seconds]
2206 Each player begins with his clock set to the `timeControl'
2207 period. Default: 5 minutes. The additional options `movesPerS‐
2208 ession' and `timeIncrement' are mutually exclusive.
2209
2210 -mps or -movesPerSession moves
2211 When both players have made `movesPerSession' moves, a new
2212 `timeControl' period is added to both clocks. Default: 40
2213 moves.
2214
2215 -inc or -timeIncrement seconds
2216 If this option is specified, `movesPerSession' is ignored.
2217 Instead, after each player's move, `timeIncrement' seconds are
2218 added to his clock. Use `-inc 0' if you want to require the
2219 entire game to be played in one `timeControl' period, with no
2220 increment. Default: -1, which specifies `movesPerSession' mode.
2221
2222 -clock/-xclock or -clockMode true/false
2223 Determines whether or not to display the chess clocks. If clock‐
2224 Mode is false, the clocks are not shown, but the side that is to
2225 play next is still highlighted. Also, unless `searchTime' is
2226 set, the chess engine still keeps track of the clock time and
2227 uses it to determine how fast to make its moves.
2228
2229 -shoMoveTime true/false
2230 When this option is set the time that has been thought about the
2231 current move will be displayed behind the remaining time in
2232 parentheses (in seconds). Default: false.
2233
2234 -st or -searchTime minutes[:seconds]
2235 Tells the chess engine to spend at most the given amount of time
2236 searching for each of its moves. Without this option, the chess
2237 engine chooses its search time based on the number of moves and
2238 amount of time remaining until the next time control. Setting
2239 this option also sets clockMode to false.
2240
2241 -depth or -searchDepth number
2242 Tells the chess engine to look ahead at most the given number of
2243 moves when searching for a move to make. Without this option,
2244 the chess engine chooses its search depth based on the number of
2245 moves and amount of time remaining until the next time control.
2246 With the option, the engine will cut off its search early if it
2247 reaches the specified depth.
2248
2249 -firstNPS number
2250 -secondNPS number
2251 Tells the chess engine to use an internal time standard based on
2252 its node count, rather then wall-clock time, to make its timing
2253 decisions. The time in virtual seconds should be obtained by
2254 dividing the node count through the given number, like the num‐
2255 ber was a rate in nodes per second. Xboard will manage the
2256 clocks in accordance with this, relying on the number of nodes
2257 reported by the engine in its thinking output. If the given num‐
2258 ber equals zero, it can obviously not be used to convert nodes
2259 to seconds, and the time reported by the engine is used to
2260 decrement the XBoard clock in stead. The engine is supposed to
2261 report in CPU time it uses, rather than wall-clock time, in this
2262 mode. This option can provide fairer conditions for engine-
2263 engine matches on heavily loaded machines, or with very fast
2264 games (where the wall clock is too inaccurate). `showThinking'
2265 must be on for this option to work. Default: -1 (off). Not many
2266 engines might support this yet!
2267
2268 -firstTimeOdds factor
2269 -secondTimeOdds factor
2270 Reduces the time given to the mentioned engine by the given fac‐
2271 tor. If pondering is off, the effect is indistinguishable from
2272 what would happen if the engine was running on an n-times slower
2273 machine. Default: 1.
2274
2275 -timeOddsMode mode
2276 This option determines how the case is handled where both
2277 engines have a time-odds handicap. If mode=1, the engine that
2278 gets the most time will always get the nominal time, as speci‐
2279 fied by the time-control options, and its opponent's time is
2280 renormalized accordingly. If mode=0, both play with reduced
2281 time. Default: 0.
2282
2283 -hideThinkingFromHuman true/false
2284 Controls the Hide Thinking option. See Options Menu. Default:
2285 true. (Replaces the Show-Thinking option of older xboard ver‐
2286 sions.)
2287
2288 -thinking/-xthinking or -showThinking true/false
2289 Forces the engine to send thinking output to xboard. Used to be
2290 the only way to control if thinking output was displayed in
2291 older xboard versions, but as the thinking output in xboard 4.3
2292 is also used for several other purposes (adjudication, storing
2293 in PGN file) the display of it is now controlled by the new
2294 option Hide Thinking. See Options Menu. Default: false. (But if
2295 xboard needs the thinking output for some purpose, it makes the
2296 engine send it despite the setting of this option.)
2297
2298 -ponder/-xponder or -ponderNextMove true/false
2299 Sets the Ponder Next Move menu option. See Options Menu.
2300 Default: true.
2301
2302 -smpCores number
2303 Specifies the maximum number of CPUs an SMP engine is allowed to
2304 use. Only works for engines that support the XBoard/WinBoard-
2305 protocol cores feature.
2306
2307 -mg or -matchGames n
2308 Automatically runs an n-game match between two chess engines,
2309 with alternating colors. If the `loadGameFile' or `loadPosi‐
2310 tionFile' option is set, XBoard starts each game with the given
2311 opening moves or the given position; otherwise, the games start
2312 with the standard initial chess position. If the `saveGameFile'
2313 option is set, a move record for the match is appended to the
2314 specified file. If the `savePositionFile' option is set, the
2315 final position reached in each game of the match is appended to
2316 the specified file. When the match is over, XBoard displays the
2317 match score and exits. Default: 0 (do not run a match).
2318
2319 -mm/-xmm or -matchMode true/false
2320 Setting `matchMode' to true is equivalent to setting
2321 `matchGames' to 1.
2322
2323 -sameColorGames n
2324 Automatically runs an n-game match between two chess engines,
2325 without alternating colors. Otherwise the same applies as for
2326 the `-matchGames' option, over which it takes precedence if both
2327 are specified. (See there.) Default: 0 (do not run a match).
2328
2329 -epd This option puts XBoard in a special mode for solving EPD test-
2330 suites, for the entire duration of the session. In this mode
2331 games are aborted after a single move, and that move will be
2332 compared with the best-move or avoid-move from the EPD position
2333 description from which the 'game' was started. Playing a best
2334 move counts as a win, playing an avoid move as a loss, and play‐
2335 ing any other move counts as a draw. This option should be used
2336 in combination with match mode, and an EPD file of starting
2337 positions with an auto-incrementing index. Color assignment
2338 will be such that the first engine plays all moves, and the sec‐
2339 ond engine will be never involved. The results for individual
2340 positions, as well as the time used for solving them, will be
2341 reported in the lower pane of the Engine Output window.
2342
2343 -fcp or -firstChessProgram program
2344 -scp or -secondChessProgram program
2345 Name of first and second chess engine, respectively. A second
2346 chess engine is started only in Two Machines (match) mode, or in
2347 Analyze mode with two engines. The second engine is by default
2348 the same as the first. Default for the first engine: `fairy‐
2349 max'.
2350
2351 -fe or -firstEngine nickname
2352 -se or -secondEngine nickname
2353 This is an alternative to the `fcp' and `scp' options for speci‐
2354 fying the first and second engine, for engines that were already
2355 registered (using the `Load Engine' dialog) in XBoard's settings
2356 file. It will not only retrieve the real name of the engine,
2357 but also all options configured with it. (E.g. if it is UCI,
2358 whether it should use book.)
2359
2360 -fb/-xfb or -firstPlaysBlack true/false
2361 In games between two chess engines, firstChessProgram normally
2362 plays white. If this option is true, firstChessProgram plays
2363 black. In a multi-game match, this option affects the colors
2364 only for the first game; they still alternate in subsequent
2365 games.
2366
2367 -fh or -firstHost host
2368 -sh or -secondHost host
2369 Hosts on which the chess engines are to run. The default for
2370 each is `localhost'. If you specify another host, XBoard uses
2371 `rsh' to run the chess engine there. (You can substitute a dif‐
2372 ferent remote shell program for rsh using the `remoteShell'
2373 option described below.)
2374
2375 -fd or -firstDirectory dir
2376 -sd or -secondDirectory dir
2377 Working directories in which the chess engines are to be run.
2378 The default is "", which means to run the chess engine in the
2379 same working directory as XBoard itself. (See the CHESSDIR
2380 environment variable.) This option is effective only when the
2381 chess engine is being run on the local host; it does not work if
2382 the engine is run remotely using the -fh or -sh option.
2383
2384 -initString string or -firstInitString
2385 -secondInitString string
2386 The string that is sent to initialize each chess engine for a
2387 new game. Default:
2388
2389 new
2390 random
2391
2392 Setting this option from the command line is tricky, because you
2393 must type in real newline characters, including one at the very
2394 end. In most shells you can do this by entering a `\' character
2395 followed by a newline. Using the character sequence `\n' in the
2396 string should work too, though.
2397
2398 If you change this option, don't remove the `new' command; it is
2399 required by all chess engines to start a new game.
2400
2401 You can remove the `random' command if you like; including it
2402 causes GNU Chess 4 to randomize its move selection slightly so
2403 that it doesn't play the same moves in every game. Even without
2404 `random', GNU Chess 4 randomizes its choice of moves from its
2405 opening book. Many other chess engines ignore this command
2406 entirely and always (or never) randomize.
2407
2408 You can also try adding other commands to the initString; see
2409 the documentation of the chess engine you are using for details.
2410
2411 -firstComputerString string
2412 -secondComputerString string
2413 The string that is sent to the chess engine if its opponent is
2414 another computer chess engine. The default is `computer\n'.
2415 Probably the only useful alternative is the empty string (`'),
2416 which keeps the engine from knowing that it is playing another
2417 computer.
2418
2419 -reuse/-xreuse or -reuseFirst true/false
2420 -reuse2/-xreuse2 or -reuseSecond true/false
2421 If the option is false, XBoard kills off the chess engine after
2422 every game and starts it again for the next game. If the option
2423 is true (the default), XBoard starts the chess engine only once
2424 and uses it repeatedly to play multiple games. Some old chess
2425 engines may not work properly when reuse is turned on, but oth‐
2426 erwise games will start faster if it is left on.
2427
2428 -firstProtocolVersion version-number
2429 -secondProtocolVersion version-number
2430 This option specifies which version of the chess engine communi‐
2431 cation protocol to use. By default, version-number is 2. In
2432 version 1, the "protover" command is not sent to the engine;
2433 since version 1 is a subset of version 2, nothing else changes.
2434 Other values for version-number are not supported.
2435
2436 -firstScoreAbs true/false
2437 -secondScoreAbs true/false
2438 If this option is set, the score reported by the engine is taken
2439 to be that in favor of white, even when the engine plays black.
2440 Important when XBoard uses the score for adjudications, or in
2441 PGN reporting.
2442
2443 -niceEngines priority
2444 This option allows you to lower the priority of the engine pro‐
2445 cesses, so that the generally insatiable hunger for CPU time of
2446 chess engines does not interfere so much with smooth operation
2447 of XBoard (or the rest of your system). Negative values could
2448 increase the engine priority, which is not recommended.
2449
2450 -firstOptions string
2451 -secondOptions string
2452 The given string is a comma-separated list of (option
2453 name=option value) pairs, like the following example:
2454 "style=Karpov,blunder rate=0". If an option announced by the
2455 engine at startup through the feature commands of the
2456 XBoard/WinBoard protocol matches one of the option names (i.e.
2457 "style" or "blunder rate"), it would be set to the given value
2458 (i.e. "Karpov" or 0) through a corresponding option command to
2459 the engine. This provided that the type of the value (text or
2460 numeric) matches as well.
2461
2462 -firstNeedsNoncompliantFEN string
2463 -secondNeedsNoncompliantFEN string
2464 The castling rights and e.p. fields of the FEN sent to the men‐
2465 tioned engine with the setboard command will be replaced by the
2466 given string. This can for instance be used to run engines that
2467 do not understand Chess960 FENs in variant fischerandom, to make
2468 them at least understand the opening position, through setting
2469 the string to "KQkq -". (Note you also have to give the e.p.
2470 field!) Other possible applications are to provide work-arounds
2471 for engines that want to see castling and e.p. fields in vari‐
2472 ants that do not have castling or e.p. (shatranj, courier,
2473 xiangqi, shogi) so that XBoard would normally omit them (string
2474 = "- -"), or to add variant-specific fields that are not yet
2475 supported by XBoard (e.g. to indicate the number of checks in
2476 3check).
2477
2478 -shuffleOpenings
2479 Forces shuffling of the opening setup in variants that normally
2480 have a fixed initial position. Shufflings are symmetric for
2481 black and white, and exempt King and Rooks in variants with nor‐
2482 mal castling. Remains in force until a new variant is selected.
2483
2484 -fischerCastling
2485 Specifies Fischer castling (as in Chess960) should be enabled in
2486 variants that normally would not have it. Remains in force
2487 until a new variant is selected.
2488
2489 UCI + WB Engine Settings
2490 -fUCI or -firstIsUCI true/false
2491 -sUCI or -secondIsUCI true/false
2492 Indicates if the mentioned engine executable file is a UCI
2493 engine, and should be run with the aid of the Polyglot adapter
2494 rather than directly. Xboard will then pass the other UCI
2495 options and engine name to Polyglot on its command line, accord‐
2496 ing to the option `adapterCommand'.
2497
2498 -fUCCI
2499 -sUCCI
2500 -fUSI
2501 -sUSI Options similar to `fUCI' and `sUCI', except that they use the
2502 indicated engine with the protocol adapter specified in the
2503 `uxiAdapter' option. This can then be configured for running a
2504 UCCI or USI adapter, as the need arises.
2505
2506 -adapterCommand string
2507 The string contains the command that should be issued by XBoard
2508 to start an engine that is accompanied by the `fUCI' option.
2509 Any identifier following a percent sign in the command (e.g.
2510 %fcp) will be considered the name of an XBoard option, and be
2511 replaced by the value of that option at the time the engine is
2512 started. For starting the second engine, any leading "f" or
2513 "first" in the option name will first be replaced by "s" or
2514 "second", before finding its value. Default: 'polyglot -noini
2515 -ec "%fcp" -ed "%fd"'
2516
2517 -uxiAdapter string
2518 Similar to `adapterCommand', but used for engines accompanied by
2519 the `fUCCI' or `fUSI' option, so you can configure XBoard to be
2520 ready to handle more than one flavor of non-native protocols.
2521 Default: ""
2522
2523 -polyglotDir filename
2524 Gives the name of the directory in which the Polyglot adapter
2525 for UCI engines resides. Default: "".
2526
2527 -usePolyglotBook true/false
2528 Specifies if the Polyglot book should be used as GUI book.
2529
2530 -polyglotBook filename
2531 Gives the filename of the opening book. The book is only used
2532 when the `usePolyglotBook' option is set to true, and the option
2533 `firstHasOwnBookUCI' or `secondHasOwnBookUCI' applying to the
2534 engine is set to false. The engine will be kept in force mode
2535 as long as the current position is in book, and XBoard will
2536 select the book moves for it. Default: "".
2537
2538 -fNoOwnBookUCI or -firstXBook or -firstHasOwnBookUCI true/false
2539 -sNoOwnBookUCI or -secondXBook or -secondHasOwnBookUCI true/false
2540 Indicates if the mentioned engine has its own opening book it
2541 should play from, rather than using the external book through
2542 XBoard. Default: depends on setting of the option `discourage‐
2543 OwnBooks'.
2544
2545 -discourageOwnBooks true/false
2546 When set, newly loaded engines will be assumed to use the GUI
2547 book, unless they explicitly specify differently. Otherwise
2548 they will be assumed to not use the GUI book, unless the specify
2549 differently (e.g. with `firstXBook'). Default: false.
2550
2551 -bookDepth n
2552 Limits the use of the GUI book to the first n moves of each
2553 side. Default: 12.
2554
2555 -bookVariation n
2556 A value n from 0 to 100 tunes the choice of moves from the GUI
2557 books from totally random to best-only. Default: 50
2558
2559 -mcBookMode
2560 When this volatile option is specified, the probing algorithm of
2561 the GUI book is altered to always select the move that is most
2562 under-represented based on its performance. When all moves are
2563 played in approximately the right proportion, a book miss will
2564 be reported, to give the engine opportunity to explore a new
2565 move. In addition score of the moves will be kept track of dur‐
2566 ing the session in a book buffer. By playing an match in this
2567 mode, a book will be built from scratch. The only output are
2568 the saved games, which can be converted to an actual book later,
2569 with the `Save Games as Book' command. The latter command can
2570 also be used to pre-fill the book buffer before adding new games
2571 based on the probing algorithm.
2572
2573 -fn string or -firstPgnName string
2574 -sn string or -secondPgnName string
2575 Indicates the name that should be used for the engine in PGN
2576 tags of engine-engine games. Intended to allow you to install
2577 versions of the same engine with different settings, and still
2578 distinguish them. Default: "".
2579
2580 -defaultHashSize n
2581 Sets the size of the hash table to n MegaBytes. Together with
2582 the EGTB cache size this number is also used to calculate the
2583 memory setting of XBoard/WinBoard engines, for those that sup‐
2584 port the memory feature of the XBoard/WinBoard protocol.
2585 Default: 64.
2586
2587 -defaultCacheSizeEGTB n
2588 Sets the size of the EGTB cache to n MegaBytes. Together with
2589 the hash-table size this number is also used to calculate the
2590 memory setting of XBoard/WinBoard engines, for those that sup‐
2591 port the memory feature of the XBoard/WinBoard protocol.
2592 Default: 4.
2593
2594 -defaultPathEGTB filename
2595 Gives the name of the directory where the end-game tablebases
2596 are installed, for UCI engines. Default:
2597 "/usr/local/share/egtb".
2598
2599 -egtFormats string
2600 Specifies which end-game tables are installed on the computer,
2601 and where. The argument is a comma-separated list of format
2602 specifications, each specification consisting of a format name,
2603 a colon, and a directory path name, e.g. "nal‐
2604 imov:/usr/local/share/egtb". If the name part matches that of a
2605 format that the engine requests through a feature command,
2606 xboard will relay the path name for this format to the engine
2607 through an egtpath command. One egtpath command for each match‐
2608 ing format will be sent. Popular formats are "nalimov" and
2609 "gaviota" DTM tablebases, syzygy DTZ tablebases and "scorpio"
2610 bitbases. Default: "".
2611
2612 -firstChessProgramNames={names}
2613 This option lets you customize the listbox with chess-engine
2614 names that appears in the `Load Engine' and `Tournament Options'
2615 dialog. It consists of a list of strings, one per line. When
2616 an engine is loaded, the corresponding line is prefixed with
2617 "-fcp ", and processed like it appeared on the command line.
2618 That means that apart from the engine command, it can contain
2619 any number of XBoard options you want to use with this engine.
2620 (Commonly used options here are -fd, -firstXBook, -fUCI, -vari‐
2621 ant.)
2622
2623 The value of this option is gradually built as you load new
2624 engines through the `Load Engine' menu dialog, with `Add to
2625 list' ticked. To change it in other ways, (e.g. deleting
2626 engines), use the menu item `Edit Engine List' in the `Engine'
2627 menu.
2628
2629 Tournament options
2630 -defaultMatchGames n
2631 Sets the number of games that will be used for a match between
2632 two engines started from the menu to n. Also used as games per
2633 pairing in other tournament formats. Default: 10.
2634
2635 -matchPause n
2636 Specifies the duration of the pause between two games of a match
2637 or tournament between engines as n milliseconds. Especially
2638 engines that do not support ping need this option, to prevent
2639 that the move they are thinking on when an opponent unexpectedly
2640 resigns will be counted for the next game, (leading to illegal
2641 moves there). Default: 10000.
2642
2643 -tf filename or -tourneyFile filename
2644 Specifies the name of the tournament file used in match mode to
2645 conduct a multi-player tournament. This file is a special set‐
2646 tings file, which stores the description of the tournament
2647 (including progress info), through normal options (e.g. for time
2648 control, load and save files), and through some special-purpose
2649 options listed below.
2650
2651 -tt number or -tourneyType number
2652 Specifies the type of tourney: 0 = round-robin, N>0 =
2653 (multi-)gauntlet with N gauntlet engines, -1 = Swiss through
2654 external pairing engine. Volatile option, but stored in tourney
2655 file.
2656
2657 -cy number or -tourneyCycles number
2658 Specifies the number of cycles in a tourney. Volatile option,
2659 but stored in tourney file.
2660
2661 -participants list
2662 The list is a multi-line text string that specifies engines
2663 occurring in the `firstChesProgramNames' list in the settings
2664 file by their (implied or explicitly given) nicknames, one
2665 engine per line. The mentioned engines will play in the tour‐
2666 ney. Volatile option, but stored in tourney file.
2667
2668 -results string
2669 The string of +=- characters lists the result of all played
2670 games in a tourney. Games currently playing are listed as *,
2671 while a space indicates a game that is not yet played. Volatile
2672 option, but stored in tourney file.
2673
2674 -defaultTourneyName string
2675 Specifies the name of the tournament file XBoard should propose
2676 when the `Match Options' dialog is opened. Any %y, %M, %d, %h,
2677 %m, %s in the string are replaced by the current year, month,
2678 day of the month, hours, minutes, seconds of the current time,
2679 respectively, as two-digit number. A %Y would be replaced by
2680 the year as 4-digit number. Default: empty string.
2681
2682 -pairingEngine filename
2683 Specifies the external program to be used to pair the partici‐
2684 pants in Swiss tourneys. XBoard communicates with this engine
2685 in the same way as it communicates with Chess engines. The only
2686 commands sent to the pairing engine are “results N string”,
2687 (where N is the number of participants, and string the results
2688 so far in the format of the results option), and “pairing N”,
2689 (where N is the number of the tourney game). To the latter the
2690 pairing engine should answer with “A-B”, where A and B are par‐
2691 ticipant numbers (in the range 1-N). (There should be no reply
2692 to the results command.) Default: empty string.
2693
2694 -afterGame string
2695 -afterTourney string
2696 When non-empty, the given string will be executed as a system
2697 command after each tournament game, or after the tourney com‐
2698 pletes, respectively. This can be used, for example, to autmat‐
2699 ically run a cross-table generator on the PGN file where games
2700 are saved, to update the tourney standings. Default: ""
2701
2702 -syncAfterRound true/false
2703 -syncAfterCycle true/false
2704 Controls whether different instances of XBoard concurrently run‐
2705 ning the same tournament will wait for each other. Defaults:
2706 sync after cycle, but not after round.
2707
2708 -seedBase number
2709 Used to store the seed of the pseudo-random-number generator in
2710 the tourneyFile, so that separate instances of XBoard working on
2711 the same tourney can take coherent 'random' decisions, such as
2712 picking an opening for a given game number.
2713
2714 ICS options
2715 -ics/-xics or -internetChessServerMode true/false
2716 Connect with an Internet Chess Server to play chess against its
2717 other users, observe games they are playing, or review games
2718 that have recently finished. Default: false.
2719
2720 -icshost or -internetChessServerHost host
2721 The Internet host name or address of the chess server to connect
2722 to when in ICS mode. Default: `chessclub.com'. Another popular
2723 chess server to try is `freechess.org'. If your site doesn't
2724 have a working Internet name server, try specifying the host
2725 address in numeric form. You may also need to specify the
2726 numeric address when using the icshelper option with timestamp
2727 or timeseal (see below).
2728
2729 -icsport or -internetChessServerPort port-number
2730 The port number to use when connecting to a chess server in ICS
2731 mode. Default: 5000.
2732
2733 -icshelper or -internetChessServerHelper prog-name
2734 An external helper program used to communicate with the chess
2735 server. You would set it to "timestamp" for ICC (chessclub.com)
2736 or "timeseal" for FICS (freechess.org), after obtaining the cor‐
2737 rect version of timestamp or timeseal for your computer. See
2738 "help timestamp" on ICC and "help timeseal" on FICS. This
2739 option is shorthand for `-useTelnet -telnetProgram program'.
2740
2741 -telnet/-xtelnet or -useTelnet true/false
2742 This option is poorly named; it should be called useHelper. If
2743 set to true, it instructs XBoard to run an external program to
2744 communicate with the Internet Chess Server. The program to use
2745 is given by the telnetProgram option. If the option is false
2746 (the default), XBoard opens a TCP socket and uses its own inter‐
2747 nal implementation of the telnet protocol to communicate with
2748 the ICS. See Firewalls.
2749
2750 -telnetProgram prog-name
2751 This option is poorly named; it should be called helperProgram.
2752 It gives the name of the telnet program to be used with the
2753 `gateway' and `useTelnet' options. The default is `telnet'. The
2754 telnet program is invoked with the value of `inter‐
2755 netChessServerHost' as its first argument and the value of
2756 `internetChessServerPort' as its second argument. See Fire‐
2757 walls.
2758
2759 -gateway host-name
2760 If this option is set to a host name, XBoard communicates with
2761 the Internet Chess Server by using `rsh' to run the `telnetPro‐
2762 gram' on the given host, instead of using its own internal
2763 implementation of the telnet protocol. You can substitute a dif‐
2764 ferent remote shell program for `rsh' using the `remoteShell'
2765 option described below. See Firewalls.
2766
2767 -internetChessServerCommPort or -icscomm dev-name
2768 If this option is set, XBoard communicates with the ICS through
2769 the given character I/O device instead of opening a TCP connec‐
2770 tion. Use this option if your system does not have any kind of
2771 Internet connection itself (not even a SLIP or PPP connection),
2772 but you do have dial-up access (or a hardwired terminal line) to
2773 an Internet service provider from which you can telnet to the
2774 ICS.
2775
2776 The support for this option in XBoard is minimal. You need to
2777 set all communication parameters and tty modes before you enter
2778 XBoard.
2779
2780 Use a script something like this:
2781
2782 stty raw -echo 9600 > /dev/tty00
2783 xboard -ics -icscomm /dev/tty00
2784
2785 Here replace `/dev/tty00' with the name of the device that your
2786 modem is connected to. You might have to add several more
2787 options to these stty commands. See the man pages for `stty' and
2788 `tty' if you run into problems. Also, on many systems stty works
2789 on its standard input instead of standard output, so you have to
2790 use `<' instead of `>'.
2791
2792 If you are using linux, try starting with the script below.
2793 Change it as necessary for your installation.
2794
2795 #!/bin/sh -f
2796 # configure modem and fire up XBoard
2797
2798 # configure modem
2799 (
2800 stty 2400 ; stty raw ; stty hupcl ; stty -clocal
2801 stty ignbrk ; stty ignpar ; stty ixon ; stty ixoff
2802 stty -iexten ; stty -echo
2803 ) < /dev/modem
2804 xboard -ics -icscomm /dev/modem
2805
2806 After you start XBoard in this way, type whatever commands are
2807 necessary to dial out to your Internet provider and log in.
2808 Then telnet to ICS, using a command like `telnet chessclub.com
2809 5000'. Important: See the paragraph below about extra echoes,
2810 in Limitations.
2811
2812 -icslogon or -internetChessServerLogonScript file-name
2813 Whenever XBoard connects to the Internet Chess Server, if it
2814 finds a file with the name given in this option, it feeds the
2815 file's contents to the ICS as commands. The default file name is
2816 `.icsrc'. Usually the first two lines of the file should be
2817 your ICS user name and password. The file can be either in
2818 $CHESSDIR, in XBoard's working directory if CHESSDIR is not set,
2819 or in your home directory.
2820
2821 -msLoginDelay delay
2822 If you experience trouble logging on to an ICS when using the
2823 `-icslogon' option, inserting some delay between characters of
2824 the logon script may help. This option adds `delay' milliseconds
2825 of delay between characters. Good values to try are 100 and 250.
2826
2827 -icsinput/-xicsinput or -internetChessServerInputBox true/false
2828 Sets the ICS Input Box menu option. See Mode Menu. Default:
2829 false.
2830
2831 -autocomm/-xautocomm or -autoComment true/false
2832 Sets the Auto Comment menu option. See Options Menu. Default:
2833 false.
2834
2835 -autoflag/-xautoflag or -autoCallFlag true/false
2836 Sets the Auto Flag menu option. See Options Menu. Default:
2837 false.
2838
2839 -autobs/-xautobs or -autoObserve true/false
2840 Sets the Auto Observe menu option. See Options Menu. Default:
2841 false.
2842
2843 -autoKibitz
2844 Enables kibitzing of the engines last thinking output (depth,
2845 score, time, speed, PV) before it moved to the ICS, in zippy
2846 mode. The option `showThinking' must be switched on for this
2847 option to work. Also diverts similar kibitz information of an
2848 opponent engine that is playing you through the ICS to the
2849 engine-output window, as if the engine was playing locally.
2850
2851 -seekGraph true/false or -sg
2852 Enables displaying of the seek graph by left-clicking the board
2853 when you are logged on to an ICS and currently idle. The seek
2854 graph show all players currently seeking games on the ICS, plot‐
2855 ted according to their rating and the time control of the game
2856 they seek, in three different colors (for rated, unrated and
2857 wild games). Computer ads are displayed as squares, human ads
2858 are dots. Default: false.
2859
2860 -autoRefresh true/false
2861 Enables automatic updating of the seek graph, by having the ICS
2862 send a running update of all newly placed and removed seek ads.
2863 This consumes a substantial amount of communication bandwidth,
2864 and is only supported for FICS and ICC. Default: false.
2865
2866 -backgroundObserve true/false
2867 When true, boards sent to you by the ICS from other games while
2868 you are playing (e.g. because you are observing them) will not
2869 be automatically displayed. Only a summary of time left and
2870 material of both players will appear in the message field above
2871 the board. XBoard will remember the last board it has received
2872 this way, and will display it instead of the position in your
2873 own game when you press the right mouse button. No other infor‐
2874 mation is stored on such games observed in the background; you
2875 cannot save such a game later, or step through its moves. This
2876 feature is provided solely for the benefit of bughouse players,
2877 to enable them to peek at their partner's game without the need
2878 to logon twice. Default: false.
2879
2880 -dualBoard true/false
2881 In combination with -backgroundObserve true, this option will
2882 display the board of the background game side by side with that
2883 of your own game, so you can have it in view permanently. Any
2884 board or holdings info coming in will be displayed on the sec‐
2885 ondary board immediately. This feature is still experimental
2886 and largely unfinished. There is no animation or highlighting
2887 of moves on the secondary board. Default: false.
2888
2889 -disguisePromotedPieces true/false
2890 When set promoted Pawns in crazyhouse/bughouse are displayed
2891 identical to primordial pieces of the same type, rather than
2892 distinguishable. Default: true.
2893
2894 -moves/-xmoves or -getMoveList true/false
2895 Sets the Get Move List menu option. See Options Menu. Default:
2896 true.
2897
2898 -alarm/-xalarm or -icsAlarm true/false
2899 Sets the ICS Alarm menu option. See Options Menu. Default:
2900 true.
2901
2902 -icsAlarmTime ms
2903 Sets the time in milliseconds for the ICS Alarm menu option.
2904 See Options Menu. Default: 5000.
2905
2906 lowTimeWarning true/false
2907 Controls a color change of the board as a warning your time is
2908 running out. See Options Menu. Default: false.
2909
2910 -pre/-xpre or -premove true/false
2911 Sets the Premove menu option. See Options Menu. Default: true.
2912
2913 -prewhite/-xprewhite or -premoveWhite
2914 -preblack/-xpreblack or -premoveBlack
2915 -premoveWhiteText string
2916 -premoveBlackText string
2917 Set the menu options for specifying the first move for either
2918 color. See Options Menu. Defaults: false and empty strings, so
2919 no pre-moves.
2920
2921 -quiet/-xquiet or -quietPlay true/false
2922 Sets the Quiet Play menu option. See Options Menu. Default:
2923 false.
2924
2925 -colorizeMessages or -colorize/-xcolorize
2926 Setting colorizeMessages to true tells XBoard to colorize the
2927 messages received from the ICS. Colorization works only if your
2928 xterm supports ISO 6429 escape sequences for changing text col‐
2929 ors. Default: true.
2930
2931 -colorShout foreground,background,bold
2932 -colorSShout foreground,background,bold
2933 -colorCShout foreground,background,bold
2934 -colorChannel1 foreground,background,bold
2935 -colorChannel foreground,background,bold
2936 -colorKibitz foreground,background,bold
2937 -colorTell foreground,background,bold
2938 -colorChallege foreground,background,bold
2939 -colorRequest foreground,background,bold
2940 -colorSeek foreground,background,bold
2941 -colorNormal foreground,background,bold
2942 These options set the colors used when colorizing ICS messages.
2943 All ICS messages are grouped into one of these categories:
2944 shout, sshout, channel 1, other channel, kibitz, tell, chal‐
2945 lenge, request (including abort, adjourn, draw, pause, and take‐
2946 back), or normal (all other messages).
2947
2948 Each foreground or background argument can be one of the follow‐
2949 ing: black, red, green, yellow, blue, magenta, cyan, white, or
2950 default. Here ``default'' means the default foreground or back‐
2951 ground color of your xterm. Bold can be 1 or 0. If background
2952 is omitted, ``default'' is assumed; if bold is omitted, 0 is
2953 assumed.
2954
2955
2956 -soundProgram progname
2957 If this option is set to a sound-playing program that is
2958 installed and working on your system, XBoard can play sound
2959 files when certain events occur, listed below. The default pro‐
2960 gram name is "play". If any of the sound options is set to "$",
2961 the event rings the terminal bell by sending a ^G character to
2962 standard output, instead of playing a sound file. If an option
2963 is set to the empty string "", no sound is played for that
2964 event.
2965
2966 -soundDirectory directoryname
2967 This option specifies where XBoard will look for sound files,
2968 when these are not given as an absolute path name.
2969
2970 -soundShout filename
2971 -soundSShout filename
2972 -soundCShout filename
2973 -soundChannel filename
2974 -soundChannel1 filename
2975 -soundKibitz filename
2976 -soundTell filename
2977 -soundChallenge filename
2978 -soundRequest filename
2979 -soundSeek filename
2980 These sounds are triggered in the same way as the colorization
2981 events described above. They all default to "", no sound. They
2982 are played only if the colorizeMessages is on. CShout is syn‐
2983 onymous with SShout.
2984
2985 -soundMove filename
2986 This sound is played when a player other than yourself makes a
2987 move. Default: "$".
2988
2989 -soundRoar filename
2990 This sound is played when a Lion makes a hit-and-run or double
2991 capture/ Default: "" (no sound).
2992
2993 -soundIcsAlarm filename
2994 This sound is used by the ICS Alarm menu option. Default: "$".
2995
2996 -soundIcsWin filename
2997 This sound is played when you win an ICS game. Default: "" (no
2998 sound).
2999
3000 -soundIcsLoss filename
3001 This sound is played when you lose an ICS game. Default: "" (no
3002 sound).
3003
3004 -soundIcsDraw filename
3005 This sound is played when you draw an ICS game. Default: "" (no
3006 sound).
3007
3008 -soundIcsUnfinished filename
3009 This sound is played when an ICS game that you are participating
3010 in is aborted, adjourned, or otherwise ends inconclusively.
3011 Default: "" (no sound).
3012
3013 Load and Save options
3014 -lgf or -loadGameFile file
3015 -lgi or -loadGameIndex index
3016 If the `loadGameFile' option is set, XBoard loads the specified
3017 game file at startup. The file name `-' specifies the standard
3018 input. If there is more than one game in the file, XBoard pops
3019 up a menu of the available games, with entries based on their
3020 PGN (Portable Game Notation) tags. If the `loadGameIndex'
3021 option is set to `N', the menu is suppressed and the N th game
3022 found in the file is loaded immediately. The menu is also sup‐
3023 pressed if `matchMode' is enabled or if the game file is a pipe;
3024 in these cases the first game in the file is loaded immediately.
3025 Use the `pxboard' shell script provided with XBoard if you want
3026 to pipe in files containing multiple games and still see the
3027 menu. If the loadGameIndex specifies an index -1, this triggers
3028 auto-increment of the index in `matchMode', which means that
3029 after every game the index is incremented by one, causing each
3030 game of the match to be played from the next game in the file.
3031 Similarly, specifying an index value of -2 causes the index to
3032 be incremented every two games, so that each game in the file is
3033 used twice (with reversed colors). The `rewindIndex' option
3034 causes the index to be reset to the first game of the file when
3035 it has reached a specified value.
3036
3037 -rewindIndex n
3038 Causes a position file or game file to be rewound to its begin‐
3039 ning after n positions or games in auto-increment `matchMode'.
3040 See `loadPositionIndex' and `loadGameIndex'. default: 0 (no
3041 rewind).
3042
3043 -td or -timeDelay seconds
3044 Time delay between moves during `Load Game' or `Analyze File'.
3045 Fractional seconds are allowed; try `-td 0.4'. A time delay
3046 value of -1 tells XBoard not to step through game files automat‐
3047 ically. Default: 1 second.
3048
3049 -sgf or -saveGameFile file
3050 If this option is set, XBoard appends a record of every game
3051 played to the specified file. The file name `-' specifies the
3052 standard output.
3053
3054 -autosave/-xautosave or -autoSaveGames true/false
3055 Sets the Auto Save menu option. See Options Menu. Default:
3056 false. Ignored if `saveGameFile' is set.
3057
3058 -onlyOwnGames true/false
3059 Suppresses auto-saving of ICS observed games. Default: false.
3060
3061 -lpf or -loadPositionFile file
3062 -lpi or -loadPositionIndex index
3063 If the `loadPositionFile' option is set, XBoard loads the speci‐
3064 fied position file at startup. The file name `-' specifies the
3065 standard input. If the `loadPositionIndex' option is set to N,
3066 the Nth position found in the file is loaded; otherwise the
3067 first position is loaded. If the loadPositionIndex specifies an
3068 index -1, this triggers auto-increment of the index in `match‐
3069 Mode', which means that after every game the index is incre‐
3070 mented by one, causing each game of the match to be played from
3071 the next position in the file. Similarly, specifying an index
3072 value of -2 causes the index to be incremented every two games,
3073 so that each position in the file is used twice (with the
3074 engines playing opposite colors). The `rewindIndex' option
3075 causes the index to be reset to the first position of the file
3076 when it has reached a specified value.
3077
3078 -spf or -savePositionFile file
3079 If this option is set, XBoard appends the final position reached
3080 in every game played to the specified file. The file name `-'
3081 specifies the standard output.
3082
3083 -positionDir directory
3084 Specifies the directory where file browsing should start when
3085 using the `Load Position' menu item.
3086
3087 -pgnExtendedInfo true/false
3088 If this option is set, XBoard saves depth, score and time used
3089 for each move that the engine found as a comment in the PGN
3090 file. Default: false.
3091
3092 -pgnTimeLeft true/false
3093 If this option is set, XBoard will save the remaining clock time
3094 for the player that has just moved as part of the `pgnExtended‐
3095 Info', rather than the time that player thought about his latest
3096 move. Default: false.
3097
3098 -pgnEventHeader string
3099 Default: false. Sets the name used in the PGN event tag to
3100 string. Default: "Computer Chess Game".
3101
3102 -pgnNumberTag true/false
3103 Include the (unique) sequence number of a tournament game into
3104 the saved PGN file as a 'number' tag. Default: false.
3105
3106 -saveOutOfBookInfo true/false
3107 Include the information on how the engine(s) game out of its
3108 opening book in a special 'annotator' tag with the PGN file.
3109 Default: true.
3110
3111 -oldsave/-xoldsave or -oldSaveStyle true/false
3112 Sets the Old Save Style menu option. See Options Menu.
3113 Default: false.
3114
3115 -gameListTags string
3116 The character string lists the PGN tags that should be printed
3117 in the Game List, and their order. The meaning of the codes is
3118 e=event, s=site, d=date, o=round, p=players, r=result, w=white
3119 Elo, b=black Elo, t=time control, v=variant, a=out-of-book info,
3120 c=result comment. Default: "eprd"
3121
3122 -ini or -settingsFile filename
3123 -saveSettingsFile filename
3124 @filename
3125 When XBoard encounters an option -settingsFile (or -ini for
3126 short), or @filename, it tries to read the mentioned file, and
3127 substitutes the contents of it (presumaby more command-line
3128 options) in place of the option. In the case of -ini or -set‐
3129 tingsFile, the name of a successfully read settings file is also
3130 remembered as the file to use for saving settings (automatically
3131 on exit, or on user command). An option of the form @filename
3132 does not affect saving. The option -saveSettingsFile does spec‐
3133 ify a name of the file to use for saving, without reading any
3134 options from it, and is thus also effective when the file did
3135 not exist yet. So the settings will be saved to the file speci‐
3136 fied in the last -saveSettingsFile or succesfull -settingsFile /
3137 -ini command, if any, and in /etc/xboard/xboard.conf otherwise.
3138 Usualy the latter is only accessible for the system administra‐
3139 tor, though, and will be used to contain system-wide default
3140 settings, amongst which a -saveSettingsFile and -settingsFile
3141 options to specify a settings file accessible to the individual
3142 user, such as ~/.xboardrc in the user's home directory.
3143
3144 -saveSettingsOnExit true/false
3145 Controls saving of options on the settings file. See Options
3146 Menu. Default: true.
3147
3148 User interface options
3149 -noGUI Suppresses all GUI functions of XBoard (to speed up automated
3150 ultra-fast engine-engine games, which you don't want to watch).
3151 There will be no board or clock updates, no printing of moves,
3152 and no update of the icon on the task bar in this mode.
3153
3154 -logoSize N
3155 This option controls the drawing of player logos next to the
3156 clocks. The integer N specifies the width of the logo in pix‐
3157 els; the logo height will always be half the width. When N = 0,
3158 no logos will be diplayed. Default: 0.
3159
3160 -firstLogo imagefile
3161 -secondLogo imagefile
3162 Specify the images to be used as player logos when `logoSize' is
3163 non-zero, next to the white and black clocks, respectively.
3164
3165 -autoLogo true/false
3166 -logoDir filename
3167 When `autoLogo' is set, XBoard will search for a PNG image file
3168 with the name of the engine or ICS in the directory specified by
3169 `logoDir'. For a human player it will look for a file <user‐
3170 name>.png in this directory, but only when ~/.logo.png does not
3171 provide one.
3172
3173 -recentEngines number
3174 -recentEngineList list
3175 When the number is larger than zero, it determines how many
3176 recently used engines will be appended at the bottom of the
3177 `Engines' menu. The engines will be saved in your settings file
3178 as the option `recentEngineList', by their nicknames, and the
3179 most recently used one will always be sorted to the top. If the
3180 list after that is longer than the specified number, the last
3181 one is discarded. Changes in the list will only become visible
3182 the next session, provided you saved the settings. Default: 6.
3183
3184 -oneClickMove true/false
3185 When set, this option allows you to enter moves by only clicking
3186 the to- or from-square, when only a single legal move to or from
3187 that square is possible. Double-clicking a piece (or clicking
3188 an already selected piece) will instruct that piece to make the
3189 only capture it can legally do. Default: false.
3190
3191 -monoMouse true/false
3192 When set button 1 clicks on empty squares in Edit Position mode
3193 will be interpreted as button 3 clicks, so they place a piece.
3194 Default: false.
3195
3196 -movesound/-xmovesound or -ringBellAfterMoves true/false
3197 Sets the Move Sound menu option. See Options Menu. Default:
3198 false. For compatibility with old XBoard versions, -bell/-xbell
3199 are also accepted as abbreviations for this option.
3200
3201 -analysisBell N
3202 When N is non-zero, the Move Sound will be played whenever a new
3203 PV arrives in analysis mode after more than N seconds of analy‐
3204 sis. Default: 0.
3205
3206 -exit/-xexit or -popupExitMessage true/false
3207 Sets the Popup Exit Message menu option. See Options Menu.
3208 Default: true.
3209
3210 -popup/-xpopup or -popupMoveErrors true/false
3211 Sets the Popup Move Errors menu option. See Options Menu.
3212 Default: false.
3213
3214 -queen/-xqueen or -alwaysPromoteToQueen true/false
3215 Sets the Always Queen menu option. See Options Menu. Default:
3216 false.
3217
3218 -sweepPromotions true/false
3219 Sets the `Almost Always Promote to Queen' menu option. See
3220 Options Menu. Default: false.
3221
3222 -legal/-xlegal or -testLegality true/false
3223 Sets the Test Legality menu option. See Options Menu. Default:
3224 true.
3225
3226 -size or -boardSize (sizeName | n1,n2,n3,n4,n5,n6,n7)
3227 Determines how large the board will be, by selecting the pixel
3228 size of the pieces and setting a few related parameters. The
3229 sizeName can be one of: Titanic, giving 129x129 pixel pieces,
3230 Colossal 116x116, Giant 108x108, Huge 95x95, Big 87x87, Large
3231 80x80, Bulky 72x72, Medium 64x64, Moderate 58x58, Average 54x54,
3232 Middling 49x49, Mediocre 45x45, Small 40x40, Slim 37x37, Petite
3233 33x33, Dinky 29x29, Teeny 25x25, or Tiny 21x21. Xboard installs
3234 with a set of scalable (svg) piece images, which it scales to
3235 any of the requested sizes. The square size can further be con‐
3236 tinuously scaled by sizing the board window, but this only
3237 adapts the size of the pieces, and has no effect on the width of
3238 the grid lines or the font choice (both of which would depend on
3239 he selected boardSize). The default depends on the size of your
3240 screen; it is approximately the largest size that will fit with‐
3241 out clipping.
3242
3243 You can select other sizes or vary other layout parameters by
3244 providing a list of comma-separated values (with no spaces) as
3245 the argument. You do not need to provide all the values; for
3246 any you omit from the end of the list, defaults are taken from
3247 the nearest built-in size. The value `n1' gives the piece size,
3248 `n2' the width of the black border between squares, `n3' the
3249 desired size for the clockFont, `n4' the desired size for the
3250 coordFont, `n5' the desired size for the messageFont, `n6' the
3251 smallLayout flag (0 or 1), and `n7' the tinyLayout flag (0 or
3252 1). All dimensions are in pixels. If the border between
3253 squares is eliminated (0 width), the various highlight options
3254 will not work, as there is nowhere to draw the highlight. If
3255 smallLayout is 1 and `titleInWindow' is true, the window layout
3256 is rearranged to make more room for the title. If tinyLayout is
3257 1, the labels on the menu bar are abbreviated to one character
3258 each and the buttons in the button bar are made narrower.
3259
3260 -overrideLineGap n
3261 When n >= 0, this forces the width of the black border between
3262 squares to n pixels for any board size. Mostly used to suppress
3263 the grid entirely by setting n = 0, e.g. in xiangqi or just get‐
3264 ting a prettier picture. When n < 0 this the size-dependent
3265 width of the grid lines is used. Default: -1.
3266
3267 -coords/-xcoords or -showCoords true/false
3268 Sets the Show Coords menu option. See Options Menu. Default:
3269 false. The `coordFont' option specifies what font to use.
3270
3271 -autoraise/-xautoraise or -autoRaiseBoard true/false
3272 Sets the Auto Raise Board menu option. See Options Menu.
3273 Default: true.
3274
3275 -autoflip/-xautoflip or -autoFlipView true/false
3276 Sets the Auto Flip View menu option. See Options Menu.
3277 Default: true.
3278
3279 -flip/-xflip or -flipView true/false
3280 If Auto Flip View is not set, or if you are observing but not
3281 participating in a game, then the positioning of the board at
3282 the start of each game depends on the flipView option. If
3283 flipView is false (the default), the board is positioned so that
3284 the white pawns move from the bottom to the top; if true, the
3285 black pawns move from the bottom to the top. In any case, the
3286 Flip menu option (see Options Menu) can be used to flip the
3287 board after the game starts.
3288
3289 -title/-xtitle or -titleInWindow true/false
3290 If this option is true, XBoard displays player names (for ICS
3291 games) and game file names (for `Load Game') inside its main
3292 window. If the option is false (the default), this information
3293 is displayed only in the window banner. You probably won't want
3294 to set this option unless the information is not showing up in
3295 the banner, as happens with a few X window managers.
3296
3297 -buttons/-xbuttons or -showButtonBar True/False
3298 If this option is False, xboard omits the [<<] [<] [P] [>] [>>]
3299 button bar from the window, allowing the message line to be
3300 wider. You can still get the functions of these buttons using
3301 the menus or their keyboard shortcuts. Default: true.
3302
3303 -evalZoom factor
3304 The score interval (-1,1) is blown up on the vertical axis of
3305 the Evaluation Graph by the given factor. Default: 1
3306
3307 -evalThreshold n
3308 Score below n (centiPawn) are plotted as 0 in the Evaluation
3309 Graph. Default: 25
3310
3311 -mono/-xmono or -monoMode true/false
3312 Determines whether XBoard displays its pieces and squares with
3313 two colors (true) or four (false). You shouldn't have to specify
3314 `monoMode'; XBoard will determine if it is necessary.
3315
3316 -showTargetSquares true/false
3317 Determines whether XBoard can highlight the squares a piece has
3318 legal moves to, when you grab that piece with the mouse.
3319 Default: false.
3320
3321 -flashCount count
3322 -flashRate rate
3323 -flash/-xflash
3324 These options enable flashing of pieces when they land on their
3325 destination square. `flashCount' tells XBoard how many times to
3326 flash a piece after it lands on its destination square.
3327 `flashRate' controls the rate of flashing (flashes/sec). Abbre‐
3328 viations: `flash' sets flashCount to 3. `xflash' sets flash‐
3329 Count to 0. Defaults: flashCount=0 (no flashing), flashRate=5.
3330
3331 -highlight/-xhighlight or -highlightLastMove true/false
3332 Sets the Highlight Last Move menu option. See Options Menu.
3333 Default: false.
3334
3335 -highlightMoveWithArrow true/false
3336 Sets the Highlight with Arrow menu option. See Options Menu.
3337 Default: false.
3338
3339 -blind/-xblind or -blindfold true/false
3340 Sets the Blindfold menu option. See Options Menu. Default:
3341 false.
3342
3343 -periodic/-xperiodic or -periodicUpdates true/false
3344 Controls updating of current move andnode counts in analysis
3345 mode. Default: true.
3346
3347 -fSAN
3348 -sSAN Causes the PV in thinking output of the mentioned engine to be
3349 converted to SAN before it is further processed. Warning: this
3350 might lose engine output not understood by the parser, and uses
3351 a lot of CPU power. Default: the PV is displayed exactly as the
3352 engine produced it.
3353
3354 -showEvalInMoveHistory true/false
3355 Controls whether the evaluation scores and search depth of
3356 engine moves are displayed with the move in the move-history
3357 window. Default: true.
3358
3359 -clockFont font
3360 The font used for the clocks. If the option value is a pattern
3361 that does not specify the font size, XBoard tries to choose an
3362 appropriate font for the board size being used. Default Xaw:
3363 -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*. Default GTK: Sans
3364 Bold %d.
3365
3366 -coordFont font
3367 The font used for rank and file coordinate labels if `showCo‐
3368 ords' is true. If the option value is a pattern that does not
3369 specify the font size, XBoard tries to choose an appropriate
3370 font for the board size being used. Default Xaw: -*-helvetica-
3371 bold-r-normal--*-*-*-*-*-*-*-*. Default GTK: Sans Bold %d.
3372
3373 -messageFont font
3374 The font used for popup dialogs, menus, etc. If the option
3375 value is a pattern that does not specify the font size, XBoard
3376 tries to choose an appropriate font for the board size being
3377 used. Default Xaw: -*-helvetica-medium-r-nor‐
3378 mal--*-*-*-*-*-*-*-*. Default GTK: Sans Bold %d
3379
3380 -tagsFont font
3381 The font used in the Edit Tags dialog. If the option value con‐
3382 tains %d, XBoard will replace it by an appropriate font for the
3383 board size being used. (Only used in GTK build.) Default: Sans
3384 Normal %d.
3385
3386 -commentFont font
3387 The font used in the Edit Comment dialog. If the option value
3388 contains %d, XBoard will replace it by an appropriate font for
3389 the board size being used. (Only used in GTK build.) Default:
3390 Sans Normal %d.
3391
3392 -icsFont font
3393 The font used to display ICS output in the ICS Chat window. As
3394 ICS output often contains tables aligned by spaces, a mono-space
3395 font is recommended here. If the option value contains %d,
3396 XBoard will replace it by an appropriate font for the board size
3397 being used. (Only used in GTK build.) Default: Monospace Nor‐
3398 mal %d.
3399
3400 -moveHistoryFont font
3401 The font used in Move History and Engine Output windows. As
3402 these windows display mainly moves, one could use a figurine
3403 font here. If the option value contains %d, XBoard will replace
3404 it by an appropriate font for the board size being used. (Only
3405 used in GTK build.) Default: Sans Normal %d.
3406
3407 -gameListFont font
3408 The font used in the listbox of the Game List window. If the
3409 option value contains %d, XBoard will replace it by an appropri‐
3410 ate font for the board size being used. (Only used in GTK
3411 build.) Default: Sans Bold %d.
3412
3413 -fontSizeTolerance tol
3414 In the font selection algorithm, a nonscalable font will be pre‐
3415 ferred over a scalable font if the nonscalable font's size dif‐
3416 fers by `tol' pixels or less from the desired size. A value of
3417 -1 will force a scalable font to always be used if available; a
3418 value of 0 will use a nonscalable font only if it is exactly the
3419 right size; a large value (say 1000) will force a nonscalable
3420 font to always be used if available. Default: 4.
3421
3422 -pid or -pieceImageDirectory dir
3423 This options control what piece images xboard uses. XBoard will
3424 look in the specified directory for an image in png or svg for‐
3425 mat for every piece type, with names like BlackQueen.svg,
3426 WhiteKnight.svg etc. When neither of these is found (or no
3427 valid directory is specified) XBoard will first ty to use an
3428 image White/BlackTile.svg in that same directory, and if that is
3429 not present either use the svg piece that was installed with it
3430 (from the source-tree directory `svg'). Both svg and png images
3431 will be scaled by XBoard to the required size, but the png
3432 pieces lose much in quality when scaled too much. Default: "".
3433
3434 -inscriptions utf8string
3435 The positions in the utf8string correspond to XBoard's piece
3436 types, and for each type a glyph can be defined. This glyph
3437 will then be rendered on top of the image for the piece. This
3438 is useful in combination with the White/BlackTile.svg images,
3439 which could be the image of a blank Shogi tile, for writing the
3440 kanji piece name on top of it on the fly. Default: "".
3441
3442
3443 -whitePieceColor color
3444 -blackPieceColor color
3445 -lightSquareColor color
3446 -darkSquareColor color
3447 -highlightSquareColor color
3448 -preoveHighlightColor color
3449 -lowTimeWarningColor color
3450 Colors to use for the pieces, squares, and square highlights.
3451 Defaults:
3452
3453 -whitePieceColor #FFFFCC
3454 -blackPieceColor #202020
3455 -lightSquareColor #C8C365
3456 -darkSquareColor #77A26D
3457 -highlightSquareColor #FFFF00
3458 -premoveHighlightColor #FF0000
3459 -lowTimeWarningColor #FF0000
3460
3461 On a grayscale monitor you might prefer:
3462
3463 -whitePieceColor gray100
3464 -blackPieceColor gray0
3465 -lightSquareColor gray80
3466 -darkSquareColor gray60
3467 -highlightSquareColor gray100
3468 -premoveHighlightColor gray70
3469 -lowTimeWarningColor gray70
3470
3471 The PieceColor options only work properly if the image files
3472 defining the pieces were pure black & white (possibly anti-
3473 aliased to produce gray scales and semi-transparancy), like the
3474 pieces images that come with the install. Their effect on col‐
3475 ored pieces is undefined. The SquareColor option only have an
3476 effect when no board textures are used.
3477
3478 -trueColors true/false
3479 When set, this option suppresses the effect of the PieceColor
3480 options mentioned above. This is recommended for images that
3481 are already colored.
3482
3483 -useBoardTexture true/false
3484 -liteBackTextureFile filename
3485 -darkBackTextureFile filename
3486 Indicate the png image files to be used for drawing the board
3487 squares, and if they should be used rather than using simple
3488 colors. The algorithm for cutting squares out of a given bitmap
3489 is such that the picture is perfectly reproduced when a bitmap
3490 the size of the complete board is given. If the filename ends
3491 in "-NxM.png", with integer N and M, it is assumed to contain a
3492 bitmap of a complete board of N files and M ranks, and XBoard
3493 will scale it to exactly match the current square size. If
3494 N=M=0 it scales the entire bitmap to the size of the board,
3495 irrespective of the number of files and ranks of the latter.
3496 Without any -NxM suffix textures are only blown up by an integer
3497 factor when they are smaller than the square size, or, when the
3498 name starts with "xq", too small to cover the complete Xiangqi
3499 board. Default: false and ""
3500
3501 -drag/-xdrag or -animateDragging true/false
3502 Sets the Animate Dragging menu option. See Options Menu.
3503 Default: true.
3504
3505 -animate/-xanimate or -animateMoving true/false
3506 Sets the Animate Moving menu option. See Options Menu. Default:
3507 true.
3508
3509 -animateSpeed n
3510 Number of milliseconds delay between each animation frame when
3511 Animate Moves is on.
3512
3513 -autoDisplayComment true/false
3514 -autoDisplayTags true/false
3515 If set to true, these options cause the window with the move
3516 comments, and the window with PGN tags, respectively, to pop up
3517 automatically when such tags or comments are encountered during
3518 the replaying a stored or loaded game. Default: true.
3519
3520 -pasteSelection true/false
3521 If this option is set to true, the Paste Position and Paste Game
3522 options paste from the currently selected text. If false, they
3523 paste from the clipboard. Default: false.
3524
3525 -autoCopyPV true|false
3526 When this option is set, the position displayed on the board
3527 when you terminate a PV walk (initiated by a right-click on
3528 board or engine-output window) will be automatically put on the
3529 clipboard as FEN. Default: false.
3530
3531 -dropMenu true|false
3532 This option allows you to emulate old behavior, where the right
3533 mouse button brings up the (now deprecated) drop menu rather
3534 than displaying the position at the end of the principal varia‐
3535 tion. Default: False.
3536
3537 -pieceMenu true|false
3538 This option allows you to emulate old behavior, where the right
3539 mouse button brings up the (now deprecated) piece menu in Edit
3540 Position mode. From this menu you can select the piece to put
3541 on the square you clicked to bring up the menu, or select items
3542 such as `clear board'. You can also `promote' or `demote' a
3543 clicked piece to convert it into an unorthodox piece that is not
3544 directly in the menu, or give the move to `black' or `white'.
3545
3546 -variations true|false
3547 When this option is on, you can start new variations in Edit
3548 Game or Analyze mode by holding the Shift key down while enter‐
3549 ing a move. When it is off, the Shift key will be ignored.
3550 Default: False.
3551
3552 -appendPV true|false
3553 When this option is on, a button 3 click left of a PV in the
3554 Engine Output window will play the first move of that PV in Ana‐
3555 lyze mode, or as many moves as you walk through it by moving the
3556 mouse. Default: False.
3557
3558 -absoluteAnalysisScores true|false
3559 When true, scores on the Engine Output window during analysis
3560 will be printed from the white point-of-view, rather than the
3561 side-to-move point-of-view. Default: False.
3562
3563 -scoreWhite true|false
3564 When true, scores will always be printed from the white point-
3565 of-view, rather than the side-to-move point-of-view. Default:
3566 False.
3567
3568 -memoHeaders true|false
3569 When true, column headers will be displayed in the Engine Output
3570 window for the depth, score, time and nodes data. A button 3
3571 click on these headers will hide or show the corresponding data.
3572 (Not intended for dynamic use, as already printed data of the
3573 current search will not be affected!) Defaul: False.
3574
3575 Adjudication Options
3576 -adjudicateLossThreshold n
3577 If the given value is non-zero, XBoard adjudicates the game as a
3578 loss if both engines agree for a duration of 6 consecutive ply
3579 that the score is below the given score threshold for that
3580 engine. Make sure the score is interpreted properly by XBoard,
3581 using `-firstScoreAbs' and `-secondScoreAbs' if needed.
3582 Default: 0 (no adjudication)
3583
3584 -adjudicateDrawMoves n
3585 If the given value is non-zero, XBoard adjudicates the game as a
3586 draw if after the given number of moves it was not yet decided.
3587 Default: 0 (no adjudication)
3588
3589 -checkMates true/false
3590 If this option is set, XBoard detects all checkmates and stale‐
3591 mates, and ends the game as soon as they occur. Legality-test‐
3592 ing must be switched on for this option to work. Default: true
3593
3594 -testClaims true/false
3595 If this option is set, XBoard verifies all result claims made by
3596 engines, and those who send false claims will forfeit the game
3597 because of it. Legality-testing must be switched on for this
3598 option to work. Default: true
3599
3600 -materialDraws true/false
3601 If this option is set, XBoard adjudicates games as draws when
3602 there is no sufficient material left to inflict a checkmate.
3603 This applies to KBKB with like bishops (any number, actually),
3604 and to KBK, KNK and KK. Legality-testing must be switched on
3605 for this option to work. Default: true
3606
3607 -trivialDraws true/false
3608 If this option is set, XBoard adjudicates games as draws that
3609 cannot be usually won without opponent cooperation. This applies
3610 to KBKB with unlike bishops, and to KBKN, KNKN, KNNK, KRKR and
3611 KQKQ. The draw is called after 6 ply into these end-games, to
3612 allow quick mates that can occur in some exceptional positions
3613 to be found by the engines. KQKQ does not really belong in this
3614 category, and might be taken out in the future. (When bitbase-
3615 based adjudications are implemented.) Legality-testing must be
3616 on for this option to work. Default: false
3617
3618 -ruleMoves n
3619 If the given value is non-zero, XBoard adjudicates the game as a
3620 draw after the given number of consecutive reversible moves.
3621 Engine draw claims are always accepted after 50 moves, irrespec‐
3622 tive of the given value of n.
3623
3624 -repeatsToDraw n
3625 If the given value is non-zero, xboard adjudicates the game as a
3626 draw if a position is repeated the given number of times.
3627 Engines draw claims are always accepted after 3 repeats, (on the
3628 3rd occurrence, actually), irrespective of the value of n.
3629 Beware that positions that have different castling or en-passant
3630 rights do not count as repeats, XBoard is fully e.p. and
3631 castling aware!
3632
3633 Install options
3634 --show-config parameter
3635 When called with this option, XBoard will close immediately
3636 after printing the value of the indicated configuration parame‐
3637 ter, or, when no parameter was given, after printing a list of
3638 all such parameters. Currently the only valid values for param‐
3639 eter are Datadir and Sysconfdir. This option can be used by
3640 install scripts for board themes to figure out where the cur‐
3641 rently active XBoard stores its data.
3642
3643 -date timestamp
3644 -saveDate timestamp
3645 These options specify an epoch as an integer number. The `save‐
3646 Date' option is written by XBoard in the settings file every
3647 time the settings are saved, with the current time, so that
3648 later runs of XBoard can know this. The `date' option can be
3649 included in settings files to indicate when lines following it
3650 were added to those files. Some options will be ignored if the
3651 epoch specified by the latest `date' option predates the -save‐
3652 Date setting (implying they must have been seen before).
3653
3654 -autoInstall list
3655 When the list is set to a non-empty string, XBoard will scan the
3656 operating system's plugin directory for engines supporting UCI
3657 and XBoard protocol at startup. When it finds an engine that
3658 was installed after it last saved its settings, a line to launch
3659 that engine (as per specs in the plugin file) is appended to the
3660 -firstChessProgramNames list of installed engines. In the
3661 future it will be possible to use the autoInstall list to limit
3662 this automatic adding of engines based on the chess variant they
3663 play.
3664
3665 -addMasterOption string
3666 Adds the mentioned string as an additional line of XBoard's mas‐
3667 ter settings file, after adding a line with a `date' option to
3668 timestamp it. Intended to add options of the 'install' type
3669 (see below) to the master file, which will then be processed by
3670 any XBoard that has not seen them since it last saved its set‐
3671 tings.
3672
3673 -autoClose
3674 The presence of this option cause XBoard to close immediately
3675 after processing all its options (from settings file and command
3676 line). Typically used from install scripts together with
3677 options that change XBoard's settings files, so that XBoard can
3678 be run in batch mode rather than interactively.
3679
3680 -installEngine string
3681 Adds the given string as an additional line to the value of the
3682 `firstChessProgramNames' option when the -saveDate setting pre‐
3683 ceeds the -date setting. Intended for adding to the master set‐
3684 tings file with the aid of -addMasterOption in the install
3685 script of engines, as a method for broadcasting the presence of
3686 a new engine to all users, which would then see it automatically
3687 registered with XBoard. Made obsolete by the advent of the
3688 plugin standard (see the `autoInstall' option), which broadcasts
3689 such presence in a non-XBoard-specific way by dropping *.eng
3690 files in a certain system directory.
3691
3692 -installTheme string
3693 Adds the given string as an additional line to the value of the
3694 -themeNames option when the -saveDate setting preceeds the -date
3695 setting. Intended for adding to the master settings file with
3696 the aid of -addMasterOption in the install script of board
3697 graphics themes, as a method for broadcasting the availability
3698 of a new theme to all users, who would then see the theme appear
3699 automatically in the listbox in the View Board menu dialog next
3700 time they run XBoard.
3701
3702 Other options
3703 -ncp/-xncp or -noChessProgram true/false
3704 If this option is true, XBoard acts as a passive chessboard; it
3705 does not start a chess engine at all. Turning on this option
3706 also turns off clockMode. Default: false.
3707
3708 -viewer
3709 -viewerOptions string
3710 Presence of the volatile option `viewer' on the command line
3711 will cause the value of the persistent option `viewerOptions' as
3712 stored in the settings file to be appended to the command line.
3713 The `view' option will be used by desktop associations with game
3714 or position file types, so that `viewerOptions' can be used to
3715 configure the exact mode XBoard will start in when it should act
3716 on such a file (e.g. in -ncp mode, or analyzing with your
3717 favorite engine). The options are also automatically appended
3718 when Board is invoked with a single argument not being an option
3719 name, which is then assumed to be the name of a `loadGameFile'
3720 or (when the name ends in .fen) a `loadPositionFile'. Default:
3721 "-ncp -engineOutputUp false -saveSettingsOnExit false".
3722
3723 -tourneyOptions string
3724 When XBoard is invoked with a single argument that is a file
3725 with .trn extension, it will assume this argument to be the
3726 value of a `tourneyFile' option, and append the value of the
3727 persistent option `tourneyOptions' as stored in the settings
3728 file to the command line. Thus the value of `tourneyOptions'
3729 can be used to configure XBoard to automatically start running a
3730 tournament when it should act on such a file. Default: "-ncp
3731 -mm -saveSettingsOnExit false".
3732
3733 -mode or -initialMode modename
3734 If this option is given, XBoard selects the given modename from
3735 the Mode menu after starting and (if applicable) processing the
3736 loadGameFile or loadPositionFile option. Default: "" (no selec‐
3737 tion). Other supported values are MachineWhite, MachineBlack,
3738 TwoMachines, Analysis, AnalyzeFile, EditGame, EditPosition, and
3739 Training.
3740
3741 -variant varname
3742 Activates (sometimes partial) support for playing chess vari‐
3743 ants against a local engine or editing variant games. This flag
3744 is not needed in ICS mode. Recognized variant names are:
3745
3746 normal Normal chess
3747 wildcastle Shuffle chess, king can castle from d file
3748 nocastle Shuffle chess, no castling allowed
3749 fischerandom Fischer Random shuffle chess
3750 bughouse Bughouse, ICC/FICS rules
3751 crazyhouse Crazyhouse, ICC/FICS rules
3752 losers Lose all pieces or get mated (ICC wild 17)
3753 suicide Lose all pieces including king (FICS)
3754 giveaway Try to have no legal moves (ICC wild 26)
3755 twokings Weird ICC wild 9
3756 kriegspiel Opponent's pieces are invisible
3757 atomic Capturing piece explodes (ICC wild 27)
3758 3check Win by giving check 3 times (ICC wild 25)
3759 shatranj An ancient precursor of chess (ICC wild 28)
3760 xiangqi Chinese Chess (on a 9x10 board)
3761 shogi Japanese Chess (on a 9x9 board & piece drops)
3762 capablanca Capablanca Chess (10x8 board, with Archbishop
3763 and Chancellor pieces)
3764 gothic similar, with a better initial position
3765 caparandom An FRC-like version of Capablanca Chess (10x8)
3766 janus A game with two Archbishops (10x8 board)
3767 courier Medieval intermediate between shatranj and
3768 modern Chess (on 12x8 board)
3769 falcon Patented 10x8 variant with two Falcon pieces
3770 berolina Pawns capture straight ahead, and move diagonally
3771 cylinder Pieces wrap around the board edge
3772 knightmate King moves as Knight, and vice versa
3773 super Superchess (shuffle variant with 4 exo-pieces)
3774 makruk Thai Chess (shatranj-like, P promotes on 6th rank)
3775 asean ASEAN Chess (a modernized version of Makruk)
3776 spartan Spartan Chess (black has unorthodox pieces)
3777 great Great Shatranj, a 10x8 variant without sliders
3778 grand Grand Chess, on 10x10 with Capablanca pieces
3779 lion Mighty-Lion Chess, with a multi-capturing Lion
3780 elven Eleven Chess, with Lion and crowned sliders on 10x10
3781 chu Chu Shogi, historic 12x12 variant with 2x46 pieces
3782 fairy A catchall variant in which all piece types
3783 known to XBoard can participate (8x8)
3784 unknown Catchall for other unknown variants
3785
3786 In the shuffle variants, XBoard does shuffle the pieces,
3787 although you can still do it by hand using Edit Position. Some
3788 variants are supported only in ICS mode, including bughouse, and
3789 kriegspiel. Berolina and cylinder chess are only partially sup‐
3790 ported, and can only be played with legality testing off.
3791
3792 Apart from these standard variants, engines can define variants
3793 of arbitrary names, briefing XBoard transparently on the rules
3794 for piece movement, board size and initial setup, so that they
3795 work nearly as well as fully-supported standard variants. (But
3796 obviously only while using that engine.) The user might have to
3797 alter the adjudication settings for some variants, however. E.g.
3798 it makes no sense to adjudicate a draw after 50 reversible moves
3799 in variants that have a 64-move rule, or no similar rule at all.
3800
3801 Default: "normal". Except when the first engine gave an explicit
3802 list of variants it supports, and 'normal' is not amongst those.
3803 In that case the first variant the engine mentioned it did play
3804 will be chosen.
3805
3806 -boardHeight N
3807 Allows you to set a non-standard number of board ranks in any
3808 variant. If the height is given as -1, the default height for
3809 the variant is used. Default: -1
3810
3811 -boardWidth N
3812 Allows you to set a non-standard number of board files in any
3813 variant. If the width is given as -1, the default width for the
3814 variant is used. With a non-standard width, the initial posi‐
3815 tion will always be an empty board, as the usual opening array
3816 will not fit. Default: -1
3817
3818 -holdingsSize N
3819 Allows you to set a non-standard size for the holdings in any
3820 variant. If the size is given as -1, the default holdings size
3821 for the variant is used. The first N piece types will go into
3822 the holdings on capture, and you will be able to drop them on
3823 the board in stead of making a normal move. If size equals 0,
3824 there will be no holdings. Default: -1
3825
3826 -defaultFrcPosition N
3827 Specifies the number of the opening position in shuffle games
3828 like Chess960. A value of -1 means the position is randomly
3829 generated by XBoard at the beginning of every game. Default: -1
3830
3831 -pieceToCharTable string
3832 The characters that are used to represent the piece types XBoard
3833 knows in FEN diagrams and SAN moves. You should not have to use
3834 this option often: each variant has its own default setting for
3835 the piece representation in FEN, which should be sufficient in
3836 normal use. The string argument has to specify an even number
3837 of pieces (or it will be ignored), as white and black pieces
3838 have to be given separately (in that order). The last letter for
3839 each color will be the King. The letters before that will be
3840 PNBRQ and then a whole host of fairy pieces in an order that has
3841 not fully crystallized yet (currently FEACWMOHIJGDVLSU, F=Ferz,
3842 Elephant, A=Archbishop, C=Chancellor, W=Wazir, M=Commoner,
3843 O=Cannon, H=Nightrider). You should list at least all pieces
3844 that occur in the variant you are playing. If you have fewer
3845 characters in the string than XBoard has pieces, the pieces not
3846 mentioned will get assigned a period, and will not be usable in
3847 the variant. You can also explicitly assign pieces a period, in
3848 which case they will not be counted in deciding which captured
3849 pieces can go into the holdings. A tilde '~' as a piece name
3850 does mean this piece is used to represent a promoted Pawn in
3851 crazyhouse-like games, i.e. on capture it turns back to a Pawn.
3852 A '+' similarly indicates the piece is a shogi-style promoted
3853 piece, that should revert to its non-promoted version on capture
3854 (rather than to a Pawn). By default the second 11 pieces known
3855 to XBoard are the promoted forms of the first 11. A piece spec‐
3856 ified by the character combination ^ plus letter will be assumed
3857 to be the promoted form of the piece indicated by that letter,
3858 and get a '+' assigned. To get around the limitation of the
3859 alphabet, piece IDs can also be 'dressed letters', i.e. a single
3860 letter (upper case for white, lower case for black) followed by
3861 a single quote or an exclamation point. Default: "" (meaning
3862 the default for the variant is used).
3863
3864 -pieceNickNames string
3865 The characters in the string are interpreted the same way as in
3866 the `pieceToCharTable' option. But on input, piece-ID letters
3867 are first looked up in the nicknames, and only if not defined
3868 there, in the normal pieceToCharTable. This allows you to have
3869 two letters designate the same piece, (e.g. N as an alternative
3870 to H for Horse in Xiangqi), to make reading of non-compliant
3871 notations easier. Default: ""
3872
3873 -colorNickNames string
3874 The side-to-move field in a FEN will be first matched against
3875 the letters in the string (first character for white, second for
3876 black), before it is matched to the regular 'w' and 'b'. This
3877 makes it easier to read non-compliant FENs, which, say, use 'r'
3878 for white. Default: ""
3879
3880 -debug/-xdebug or -debugMode true/false
3881 Turns on debugging printout.
3882
3883 -debugFile filename or -nameOfDebugFile filename
3884 Sets the name of the file to which XBoard saves debug informa‐
3885 tion (including all communication to and from the engines). A
3886 `%d' in the given file name (e.g. game%d.debug) will be replaced
3887 by the unique sequence number of a tournament game, so that the
3888 debug output of each game will be written on a separate file.
3889
3890 -engineDebugOutput number
3891 Specifies how XBoard should handle unsolicited output from the
3892 engine, with respect to saving it in the debug file. The output
3893 is further (hopefully) ignored. If number=0, XBoard refrains
3894 from writing such spurious output to the debug file. If num‐
3895 ber=1, all engine output is written faithfully to the debug
3896 file. If number=2, any protocol-violating line is prefixed with
3897 a '#' character, as the engine itself should have done if it
3898 wanted to submit info for inclusion in the debug file. This
3899 option is provided for the benefit of applications that use the
3900 debug file as a source of information, such as the broadcaster
3901 of live games TLCV / TLCS. Such applications can be protected
3902 from spurious engine output that might otherwise confuse them.
3903
3904 -rsh or -remoteShell shell-name
3905 Name of the command used to run programs remotely. The default
3906 is `rsh' or `remsh', determined when XBoard is configured and
3907 compiled.
3908
3909 -ruser or -remoteUser user-name
3910 User name on the remote system when running programs with the
3911 `remoteShell'. The default is your local user name.
3912
3913 -userName username
3914 Name under which the Human player will be listed in the PGN
3915 file. Default is the login name on your local computer.
3916
3917 -delayBeforeQuit number
3918 -delayAfterQuit number
3919 These options order pauses before and after sending the "quit"
3920 command to an engine that must be terminated. The pause between
3921 quit and the previous command is specified in milliseconds. The
3922 pause after quit is used to schedule a kill signal to be sent to
3923 the engine process after the number of specified seconds plus
3924 one. This signal is a different one as the terminiation signal
3925 described in the protocol specs which engines can suppress or
3926 ignore, and which is sent directly after the "quit" command.
3927 Setting `delayAfterQuit' to -1 will suppress sending of the kill
3928 signal. Default: 0
3929
3930 -searchMode n
3931 The integer n encodes the mode for the `find position' function.
3932 Default: 1 (= Exact position match)
3933
3934 -eloThresholdBoth elo
3935 -eloThresholdAny elo
3936 Defines a lower limit for the Elo rating, which has to be sur‐
3937 passed before a game will be considered when searching for a
3938 board position. Default: 0
3939
3940 -dateThreshold year
3941 Only games not played before the given year will be considered
3942 when searching for a board position
3943
3944
3946 An "Internet Chess Server", or "ICS", is a place on the Internet where
3947 people can get together to play chess, watch other people's games, or
3948 just chat. You can use either `telnet' or a client program like XBoard
3949 to connect to the server. There are thousands of registered users on
3950 the different ICS hosts, and it is not unusual to meet 200 on both
3951 chessclub.com and freechess.org.
3952
3953 Most people can just type `xboard -ics' to start XBoard as an ICS
3954 client. Invoking XBoard in this way connects you to the Internet Chess
3955 Club (ICC), a commercial ICS. You can log in there as a guest even if
3956 you do not have a paid account. To connect to the largest Free ICS
3957 (FICS), use the command `xboard -ics -icshost freechess.org' instead,
3958 or substitute a different host name to connect to your favorite ICS.
3959 For a full description of command-line options that control the connec‐
3960 tion to ICS and change the default values of ICS options, see ICS
3961 options.
3962
3963 While you are running XBoard as an ICS client, you use the terminal
3964 window that you started XBoard from as a place to type in commands and
3965 read information that is not available on the chessboard.
3966
3967 The first time you need to use the terminal is to enter your login name
3968 and password, if you are a registered player. (You don't need to do
3969 this manually; the `icsLogon' option can do it for you. See ICS
3970 options.) If you are not registered, enter `g' as your name, and the
3971 server will pick a unique guest name for you.
3972
3973 Some useful ICS commands include
3974
3975 help <topic>
3976 to get help on the given <topic>. To get a list of possible top‐
3977 ics type "help" without topic. Try the help command before you
3978 ask other people on the server for help.
3979
3980 For example `help register' tells you how to become a registered
3981 ICS player.
3982
3983 who <flags>
3984 to see a list of people who are logged on. Administrators (peo‐
3985 ple you should talk to if you have a problem) are marked with
3986 the character `*', an asterisk. The <flags> allow you to display
3987 only selected players: For example, `who of' shows a list of
3988 players who are interested in playing but do not have an oppo‐
3989 nent.
3990
3991 games to see what games are being played
3992
3993 match <player> [<mins>] [<inc>]
3994 to challenge another player to a game. Both opponents get <mins>
3995 minutes for the game, and <inc> seconds will be added after each
3996 move. If another player challenges you, the server asks if you
3997 want to accept the challenge; use the `accept' or `decline' com‐
3998 mands to answer.
3999
4000 accept
4001 decline
4002 to accept or decline another player's offer. The offer may be
4003 to start a new game, or to agree to a `draw', `adjourn' or
4004 `abort' the current game. See Action Menu.
4005
4006 If you have more than one pending offer (for example, if more
4007 than one player is challenging you, or if your opponent offers
4008 both a draw and to adjourn the game), you have to supply addi‐
4009 tional information, by typing something like `accept <player>',
4010 `accept draw', or `draw'.
4011
4012 draw
4013 adjourn
4014 abort asks your opponent to terminate a game by mutual agreement.
4015 Adjourned games can be continued later. Your opponent can
4016 either `decline' your offer or accept it (by typing the same
4017 command or typing `accept'). In some cases these commands work
4018 immediately, without asking your opponent to agree. For exam‐
4019 ple, you can abort the game unilaterally if your opponent is out
4020 of time, and you can claim a draw by repetition or the 50-move
4021 rule if available simply by typing `draw'.
4022
4023 finger <player>
4024 to get information about the given <player>. (Default: your‐
4025 self.)
4026
4027 vars to get a list of personal settings
4028
4029 set <var> <value>
4030 to modify these settings
4031
4032 observe <player>
4033 to observe an ongoing game of the given <player>.
4034
4035 examine
4036 oldmoves
4037 to review a recently completed game
4038
4039 Some special XBoard features are activated when you are in examine mode
4040 on ICS. See the descriptions of the menu commands `Forward', `Back‐
4041 ward', `Pause', `ICS Client', and `Stop Examining' on the Edit Menu,
4042 Mode Menu, and Action Menu.
4043
4044
4046 By default, XBoard communicates with an Internet Chess Server by open‐
4047 ing a TCP socket directly from the machine it is running on to the ICS.
4048 If there is a firewall between your machine and the ICS, this won't
4049 work. Here are some recipes for getting around common kinds of fire‐
4050 walls using special options to XBoard. Important: See the paragraph in
4051 the below about extra echoes, in Limitations.
4052
4053 Suppose that you can't telnet directly to ICS, but you can telnet to a
4054 firewall host, log in, and then telnet from there to ICS. Let's say
4055 the firewall is called `firewall.example.com'. Set command-line options
4056 as follows:
4057
4058 xboard -ics -icshost firewall.example.com -icsport 23
4059
4060 Then when you run XBoard in ICS mode, you will be prompted to log in to
4061 the firewall host. This works because port 23 is the standard telnet
4062 login service. Do so, then telnet to ICS, using a command like `telnet
4063 chessclub.com 5000', or whatever command the firewall provides for tel‐
4064 netting to port 5000.
4065
4066 If your firewall lets you telnet (or rlogin) to remote hosts but
4067 doesn't let you telnet to port 5000, you may be able to connect to the
4068 chess server on port 23 instead, which is the port the telnet program
4069 uses by default. Some chess servers support this (including chess‐
4070 club.com and freechess.org), while some do not.
4071
4072 If your chess server does not allow connections on port 23 and your
4073 firewall does not allow you to connect to other ports, you may be able
4074 to connect by hopping through another host outside the firewall that
4075 you have an account on. For instance, suppose you have a shell account
4076 at `foo.edu'. Follow the recipe above, but instead of typing `telnet
4077 chessclub.com 5000' to the firewall, type `telnet foo.edu' (or `rlogin
4078 foo.edu'), log in there, and then type `telnet chessclub.com 5000'.
4079
4080 Suppose that you can't telnet directly to ICS, but you can use rsh to
4081 run programs on a firewall host, and that host can telnet to ICS.
4082 Let's say the firewall is called `rsh.example.com'. Set command-line
4083 options as follows:
4084
4085 xboard -ics -gateway rsh.example.com -icshost chessclub.com
4086
4087 Then when you run XBoard in ICS mode, it will connect to the ICS by
4088 using `rsh' to run the command `telnet chessclub.com 5000' on host
4089 `rsh.example.com'.
4090
4091 Suppose that you can telnet anywhere you want, but you have to run a
4092 special program called `ptelnet' to do so.
4093
4094 First, we'll consider the easy case, in which `ptelnet chessclub.com
4095 5000' gets you to the chess server. In this case set command line
4096 options as follows:
4097
4098 xboard -ics -telnet -telnetProgram ptelnet
4099
4100 Then when you run XBoard in ICS mode, it will issue the command `ptel‐
4101 net chessclub.com 5000' to connect to the ICS.
4102
4103 Next, suppose that `ptelnet chessclub.com 5000' doesn't work; that is,
4104 your `ptelnet' program doesn't let you connect to alternative ports. As
4105 noted above, your chess server may allow you to connect on port 23
4106 instead. In that case, just add the option `-icsport ""' to the above
4107 command. But if your chess server doesn't let you connect on port 23,
4108 you will have to find some other host outside the firewall and hop
4109 through it. For instance, suppose you have a shell account at
4110 `foo.edu'. Set command line options as follows:
4111
4112 xboard -ics -telnet -telnetProgram ptelnet -icshost foo.edu -icsport ""
4113
4114 Then when you run XBoard in ICS mode, it will issue the command `ptel‐
4115 net foo.edu' to connect to your account at `foo.edu'. Log in there,
4116 then type `telnet chessclub.com 5000'.
4117
4118 ICC timestamp and FICS timeseal do not work through some firewalls.
4119 You can use them only if your firewall gives a clean TCP connection
4120 with a full 8-bit wide path. If your firewall allows you to get out
4121 only by running a special telnet program, you can't use timestamp or
4122 timeseal across it. But if you have access to a computer just outside
4123 your firewall, and you have much lower netlag when talking to that com‐
4124 puter than to the ICS, it might be worthwhile running timestamp there.
4125 Follow the instructions above for hopping through a host outside the
4126 firewall (foo.edu in the example), but run timestamp or timeseal on
4127 that host instead of telnet.
4128
4129 Suppose that you have a SOCKS firewall that will give you a clean 8-bit
4130 wide TCP connection to the chess server, but only after you authenti‐
4131 cate yourself via the SOCKS protocol. In that case, you could make a
4132 socksified version of XBoard and run that. If you are using timestamp
4133 or timeseal, you will to socksify it, not XBoard; this may be difficult
4134 seeing that ICC and FICS do not provide source code for these programs.
4135 Socksification is beyond the scope of this document, but see the SOCKS
4136 Web site at http://www.socks.permeo.com/. If you are missing SOCKS,
4137 try http://www.funbureau.com/.
4138
4139
4141 Game and position files are found in a directory named by the `CHESS‐
4142 DIR' environment variable. If this variable is not set, the current
4143 working directory is used. If `CHESSDIR' is set, XBoard actually
4144 changes its working directory to `$CHESSDIR', so any files written by
4145 the chess engine will be placed there too.
4146
4147
4149 There is no way for two people running copies of XBoard to play each
4150 other without going through an Internet Chess Server.
4151
4152 Under some circumstances, your ICS password may be echoed when you log
4153 on.
4154
4155 If you are connecting to the ICS by running telnet on an Internet
4156 provider or firewall host, you may find that each line you type is
4157 echoed back an extra time after you hit <Enter>. If your Internet
4158 provider is a Unix system, you can probably turn its echo off by typing
4159 `stty -echo' after you log in, and/or typing <^E><Enter> (Ctrl+E fol‐
4160 lowed by the Enter key) to the telnet program after you have logged
4161 into ICS. It is a good idea to do this if you can, because the extra
4162 echo can occasionally confuse XBoard's parsing routines.
4163
4164 The game parser recognizes only algebraic notation.
4165
4166 Many of the following points used to be limitations in XBoard 4.2.7 and
4167 earlier, but are now fixed: The internal move legality tester in XBoard
4168 4.3.xx does look at the game history, and is fully aware of castling or
4169 en-passant-capture rights. It permits castling with the king on the d
4170 file because this is possible in some "wild 1" games on ICS. The
4171 piece-drop menu does not check piece drops in bughouse to see if you
4172 actually hold the piece you are trying to drop. But this way of drop‐
4173 ping pieces should be considered an obsolete feature, now that pieces
4174 can be dropped by dragging them from the holdings to the board. Anyway,
4175 if you would attempt an illegal move when using a chess engine or the
4176 ICS, XBoard will accept the error message that comes back, undo the
4177 move, and let you try another. FEN positions saved by XBoard do
4178 include correct information about whether castling or en passant are
4179 legal, and also handle the 50-move counter. The mate detector does not
4180 understand that non-contact mate is not really mate in bughouse. The
4181 only problem this causes while playing is minor: a "#" (mate indicator)
4182 character will show up after a non-contact mating move in the move
4183 list. XBoard will not assume the game is over at that point, not even
4184 when the option Detect Mates is on. Edit Game mode always uses the
4185 rules of the selected variant, which can be a variant that uses piece
4186 drops. You can load and edit games that contain piece drops. The
4187 (obsolete) piece menus are not active, but you can perform piece drops
4188 by dragging pieces from the holdings. Fischer Random castling is fully
4189 understood. You can enter castlings by dragging the King on top of
4190 your Rook. You can probably also play Fischer Random successfully on
4191 ICS by typing castling moves into the ICS Interaction window.
4192
4193 The menus may not work if your keyboard is in Caps Lock or Num Lock
4194 mode. This seems to be a problem with the Athena menu widget, not an
4195 XBoard bug.
4196
4197 Also see the ToDo file included with the distribution for many other
4198 possible bugs, limitations, and ideas for improvement that have been
4199 suggested.
4200
4202 You can report bugs and problems with XBoard using the bug tracker at
4203 `https://savannah.gnu.org/projects/xboard/' or by sending mail to
4204 `<bug-xboard@gnu.org>'. It can also be useful to report or discuss
4205 bugs in the WinBoard Forum at `http://www.open-aurec.com/wbforum/',
4206 WinBoard development section.
4207
4208 Please use the `script' program to start a typescript, run XBoard with
4209 the `-debug' option, and include the typescript output in your message.
4210 Also tell us what kind of machine and what operating system version you
4211 are using. The command `uname -a' will often tell you this.
4212
4213 If you improve XBoard, please send a message about your changes, and we
4214 will get in touch with you about merging them in to the main line of
4215 development.
4216
4217
4219 Chris Sears and Dan Sears wrote the original XBoard. They were respon‐
4220 sible for versions 1.0 through 1.2. The color scheme was taken from
4221 Wayne Christopher's `XChess' program.
4222
4223 Tim Mann was primarily responsible for XBoard versions 1.3 through
4224 4.2.7, and for WinBoard (a port of XBoard to Microsoft Win32) from its
4225 inception through version 4.2.7.
4226
4227 John Chanak contributed the initial implementation of ICS mode. Evan
4228 Welsh wrote `CMail', and Patrick Surry helped in designing, testing,
4229 and documenting it. Elmar Bartel contributed the new piece bitmaps
4230 introduced in version 3.2. Jochen Wiedmann converted the documentation
4231 to texinfo. Frank McIngvale added click/click moving, the Analysis
4232 modes, piece flashing, ZIICS import, and ICS text colorization to
4233 XBoard. Hugh Fisher added animated piece movement to XBoard, and Hen‐
4234 rik Gram added it to WinBoard. Mark Williams contributed the initial
4235 (WinBoard-only) implementation of many new features added to both
4236 XBoard and WinBoard in version 4.1.0, including copy/paste, premove,
4237 icsAlarm, autoFlipView, training mode, auto raise, and blindfold. Ben
4238 Nye contributed X copy/paste code for XBoard.
4239
4240 In a fork from version 4.2.7, Alessandro Scotti added many elements to
4241 the user interface of WinBoard, including the board textures and font-
4242 based rendering, the evaluation-graph, move-history and engine-output
4243 window. He was also responsible for adding the UCI support.
4244
4245 H. G. Muller continued this fork of the project, producing version 4.3.
4246 He made WinBoard castling- and e.p.-aware, added variant support with
4247 adjustable board sizes, the crazyhouse holdings, and the fairy pieces.
4248 In addition he added most of the adjudication options, made WinBoard
4249 more robust in dealing with buggy and crashing engines, and extended
4250 time control with a time-odds and node-count-based modes. Most of the
4251 options that initially were WinBoard only have now been back-ported to
4252 XBoard.
4253
4254 Michel van den Bergh provided the code for reading Polyglot opening
4255 books.
4256
4257 Meanwhile, some work continued on the GNU XBoard project maintained at
4258 savannah.gnu.org, but version 4.2.8 was never released. Daniel
4259 Mehrmann was responsible for much of this work.
4260
4261 Most recently, Arun Persaud worked with H. G. Muller to merge all the
4262 features of the never-released XBoard/WinBoard 4.2.8 of the GNU XBoard
4263 project and the never-released 4.3.16 from H. G.'s fork into a unified
4264 XBoard/WinBoard 4.4, which is now available both from the savan‐
4265 nah.gnu.org web site and the WinBoard forum.
4266
4267
4269 The `cmail' program can help you play chess by email with opponents of
4270 your choice using XBoard as an interface.
4271
4272 You will usually run `cmail' without giving any options.
4273
4274
4275 CMail options
4276 -h Displays `cmail' usage information.
4277
4278 -c Shows the conditions of the GNU General Public License. See
4279 Copying.
4280
4281 -w Shows the warranty notice of the GNU General Public License.
4282 See Copying.
4283
4284 -v
4285 -xv Provides or inhibits verbose output from `cmail' and XBoard,
4286 useful for debugging. The `-xv' form also inhibits the cmail
4287 introduction message.
4288
4289 -mail
4290 -xmail Invokes or inhibits the sending of a mail message containing the
4291 move.
4292
4293 -xboard
4294 -xxboard
4295 Invokes or inhibits the running of XBoard on the game file.
4296
4297 -reuse
4298 -xreuse
4299 Invokes or inhibits the reuse of an existing XBoard to display
4300 the current game.
4301
4302 -remail
4303 Resends the last mail message for that game. This inhibits run‐
4304 ning XBoard.
4305
4306 -game <name>
4307 The name of the game to be processed.
4308
4309 -wgames <number>
4310 -bgames <number>
4311 -games <number>
4312 Number of games to start as White, as Black or in total. Default
4313 is 1 as white and none as black. If only one color is specified
4314 then none of the other color is assumed. If no color is speci‐
4315 fied then equal numbers of White and Black games are started,
4316 with the extra game being as White if an odd number of total
4317 games is specified.
4318
4319 -me <short name>
4320 -opp <short name>
4321 A one-word alias for yourself or your opponent.
4322
4323 -wname <full name>
4324 -bname <full name>
4325 -myname <full name>
4326 -oppname <full name>
4327 The full name of White, Black, yourself or your opponent.
4328
4329 -wna <net address>
4330 -bna <net address>
4331 -na <net address>
4332 -oppna <net address>
4333 The email address of White, Black, yourself or your opponent.
4334
4335 -dir <directory>
4336 The directory in which `cmail' keeps its files. This defaults to
4337 the environment variable `$CMAIL_DIR' or failing that, `$CHESS‐
4338 DIR', `$HOME/Chess' or `~/Chess'. It will be created if it does
4339 not exist.
4340
4341 -arcdir <directory>
4342 The directory in which `cmail' archives completed games.
4343 Defaults to the environment variable `$CMAIL_ARCDIR' or, in its
4344 absence, the same directory as cmail keeps its working files
4345 (above).
4346
4347 -mailprog <mail program>
4348 The program used by cmail to send email messages. This defaults
4349 to the environment variable `$CMAIL_MAILPROG' or failing that
4350 `/usr/ucb/Mail', `/usr/ucb/mail' or `Mail'. You will need to set
4351 this variable if none of the above paths fit your system.
4352
4353 -logFile <file>
4354 A file in which to dump verbose debugging messages that are
4355 invoked with the `-v' option.
4356
4357 -event <event>
4358 The PGN Event tag (default `Email correspondence game').
4359
4360 -site <site>
4361 The PGN Site tag (default `NET').
4362
4363 -round <round>
4364 The PGN Round tag (default `-', not applicable).
4365
4366 -mode <mode>
4367 The PGN Mode tag (default `EM', Electronic Mail).
4368
4369 Other options
4370 Any option flags not listed above are passed through to XBoard.
4371 Invoking XBoard through CMail changes the default values of two
4372 XBoard options: The default value for `-noChessProgram' is
4373 changed to true; that is, by default no chess engine is started.
4374 The default value for `-timeDelay' is changed to 0; that is, by
4375 default XBoard immediately goes to the end of the game as played
4376 so far, rather than stepping through the moves one by one. You
4377 can still set these options to whatever values you prefer by
4378 supplying them on CMail's command line. See Options.
4379
4380 Starting a CMail Game
4381 Type `cmail' from a shell to start a game as white. After an opening
4382 message, you will be prompted for a game name, which is optional -- if
4383 you simply press <Enter>, the game name will take the form `you-VS-
4384 opponent'. You will next be prompted for the short name of your oppo‐
4385 nent. If you haven't played this person before, you will also be
4386 prompted for his/her email address. `cmail' will then invoke XBoard in
4387 the background. Make your first move and select `Mail Move' from the
4388 `File' menu. See File Menu. If all is well, `cmail' will mail a copy of
4389 the move to your opponent. If you select `Exit' without having selected
4390 `Mail Move' then no move will be made.
4391
4392
4393 Answering a Move
4394 When you receive a message from an opponent containing a move in one of
4395 your games, simply pipe the message through `cmail'. In some mailers
4396 this is as simple as typing `| cmail' when viewing the message, while
4397 in others you may have to save the message to a file and do `cmail <
4398 file' at the command line. In either case `cmail' will display the game
4399 using XBoard. If you didn't exit XBoard when you made your first move
4400 then `cmail' will do its best to use the existing XBoard instead of
4401 starting a new one. As before, simply make a move and select `Mail
4402 Move' from the `File' menu. See File Menu. `cmail' will try to use the
4403 XBoard that was most recently used to display the current game. This
4404 means that many games can be in progress simultaneously, each with its
4405 own active XBoard.
4406
4407 If you want to look at the history or explore a variation, go ahead,
4408 but you must return to the current position before XBoard will allow
4409 you to mail a move. If you edit the game's history you must select
4410 `Reload Same Game' from the `File' menu to get back to the original
4411 position, then make the move you want and select `Mail Move'. As
4412 before, if you decide you aren't ready to make a move just yet you can
4413 either select `Exit' without sending a move or just leave XBoard run‐
4414 ning until you are ready.
4415
4416
4417 Multi-Game Messages
4418 It is possible to have a `cmail' message carry more than one game.
4419 This feature was implemented to handle IECG (International Email Chess
4420 Group) matches, where a match consists of one game as white and one as
4421 black, with moves transmitted simultaneously. In case there are more
4422 general uses, `cmail' itself places no limit on the number of
4423 black/white games contained in a message; however, XBoard does.
4424
4425
4426 Completing a Game
4427 Because XBoard can detect checkmate and stalemate, `cmail' handles game
4428 termination sensibly. As well as resignation, the `Action' menu allows
4429 draws to be offered and accepted for `cmail' games.
4430
4431 For multi-game messages, only unfinished and just-finished games will
4432 be included in email messages. When all the games are finished, they
4433 are archived in the user's archive directory, and similarly in the
4434 opponent's when he or she pipes the final message through `cmail'. The
4435 archive file name includes the date the game was started.
4436
4437
4438 Known CMail Problems
4439 It's possible that a strange conjunction of conditions may occasionally
4440 mean that `cmail' has trouble reactivating an existing XBoard. If this
4441 should happen, simply trying it again should work. If not, remove the
4442 file that stores the XBoard's PID (`game.pid') or use the `-xreuse'
4443 option to force `cmail' to start a new XBoard.
4444
4445 Versions of `cmail' after 2.16 no longer understand the old file format
4446 that XBoard used to use and so cannot be used to correspond with anyone
4447 using an older version.
4448
4449 Versions of `cmail' older than 2.11 do not handle multi-game messages,
4450 so multi-game correspondence is not possible with opponents using an
4451 older version.
4452
4453
4455 Here are some other programs you can use with XBoard
4456
4457
4458 GNU Chess
4459 The GNU Chess engine is available from:
4460
4461 ftp://ftp.gnu.org/gnu/gnuchess/
4462
4463 You can use XBoard to play a game against GNU Chess, or to interface
4464 GNU Chess to an ICS.
4465
4466
4467 Fairy-Max
4468 Fairy-Max is a derivative from the once World's smallest Chess program
4469 micro-Max, which measures only about 100 lines of source code. The
4470 main difference with micro-Max is that Fairy-Max loads its move-genera‐
4471 tor tables from a file, so that the rules for piece movement can be
4472 easily configured to implement unorthodox pieces. Fairy-Max can there‐
4473 fore play a large number of variants, normal Chess being one of those.
4474 In addition it plays Knightmate, Capablanca and Gothic Chess, Shatranj,
4475 Courier Chess, Cylinder chess, Berolina Chess, while the user can eas‐
4476 ily define new variants. It can be obtained from:
4477
4478 http://home.hccnet.nl/h.g.muller/dwnldpage.html
4479
4480
4481 HoiChess
4482 HoiChess is a not-so-very-strong Chess engine, which comes with a de‐
4483 rivative HoiXiangqi, able to play Chinese Chess. It can be obtained
4484 from the standard Linux repositories through:
4485
4486 sudo apt-get install hoichess
4487
4488
4489 Crafty
4490 Crafty is a chess engine written by Bob Hyatt. You can use XBoard to
4491 play a game against Crafty, hook Crafty up to an ICS, or use Crafty to
4492 interactively analyze games and positions for you.
4493
4494 Crafty is a strong, rapidly evolving chess program. This rapid pace of
4495 development is good, because it means Crafty is always getting better.
4496 This can sometimes cause problems with backwards compatibility, but
4497 usually the latest version of Crafty will work well with the latest
4498 version of XBoard. Crafty can be obtained from its author's FTP site:
4499 ftp://ftp.cis.uab.edu/hyatt/.
4500
4501 To use Crafty with XBoard, give the -fcp and -fd options as follows,
4502 where <crafty's directory> is the directory in which you installed
4503 Crafty and placed its book and other support files.
4504
4505
4507 Copyright (C) 1991 Digital Equipment Corporation, Maynard, Massachu‐
4508 setts.
4509
4510 All Rights Reserved.
4511
4512 Permission to use, copy, modify, and distribute this software and its
4513 documentation for any purpose and without fee is hereby granted, pro‐
4514 vided that the above copyright notice appear in all copies and that
4515 both that copyright notice and this permission notice appear in sup‐
4516 porting documentation, and that the name of Digital not be used in
4517 advertising or publicity pertaining to distribution of the software
4518 without specific, written prior permission.
4519
4520 Digital disclaims all warranties with regard to this software, includ‐
4521 ing all implied warranties of merchantability and fitness. In no event
4522 shall Digital be liable for any special, indirect or consequential dam‐
4523 ages or any damages whatsoever resulting from loss of use, data or
4524 profits, whether in an action of contract, negligence or other tortious
4525 action, arising out of or in connection with the use or performance of
4526 this software.
4527
4528 Enhancements copyright (C) 1992-2003, 2004, 2005, 2006, 2007, 2008,
4529 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Founda‐
4530 tion, Inc.
4531
4532 Published by the Free Software Foundation
4533 59 Temple Place - Suite 330
4534 Boston, MA 02111-1307 USA
4535
4536 Permission is granted to make and distribute verbatim copies of this
4537 manual provided the copyright notice and this permission notice are
4538 preserved on all copies.
4539
4540 Permission is granted to copy and distribute modified versions of this
4541 manual under the conditions for verbatim copying, provided also that
4542 the section entitled ``GNU General Public License,'' is included
4543 exactly as in the original, and provided that the entire resulting
4544 derived work is distributed under the terms of a permission notice
4545 identical to this one.
4546
4547 Permission is granted to copy and distribute translations of this man‐
4548 ual into another language, under the above conditions for modified ver‐
4549 sions, except that the section entitled ``GNU General Public License,''
4550 and this permission notice, may be included in translations approved by
4551 the Free Software Foundation instead of in the original English.
4552
4553
4555 Copyright (C) 2007 Free Software Foundation, Inc. `http://fsf.org/'
4556
4557 Everyone is permitted to copy and distribute verbatim copies of this
4558 license document, but changing it is not allowed.
4559
4560 The GNU General Public License is a free, copyleft license for software
4561 and other kinds of works.
4562
4563 The licenses for most software and other practical works are designed
4564 to take away your freedom to share and change the works. By contrast,
4565 the GNU General Public License is intended to guarantee your freedom to
4566 share and change all versions of a program -- to make sure it remains
4567 free software for all its users. We, the Free Software Foundation, use
4568 the GNU General Public License for most of our software; it applies
4569 also to any other work released this way by its authors. You can apply
4570 it to your programs, too.
4571
4572 When we speak of free software, we are referring to freedom, not price.
4573 Our General Public Licenses are designed to make sure that you have the
4574 freedom to distribute copies of free software (and charge for them if
4575 you wish), that you receive source code or can get it if you want it,
4576 that you can change the software or use pieces of it in new free pro‐
4577 grams, and that you know you can do these things.
4578
4579 To protect your rights, we need to prevent others from denying you
4580 these rights or asking you to surrender the rights. Therefore, you
4581 have certain responsibilities if you distribute copies of the software,
4582 or if you modify it: responsibilities to respect the freedom of others.
4583
4584 For example, if you distribute copies of such a program, whether gratis
4585 or for a fee, you must pass on to the recipients the same freedoms that
4586 you received. You must make sure that they, too, receive or can get
4587 the source code. And you must show them these terms so they know their
4588 rights.
4589
4590 Developers that use the GNU GPL protect your rights with two steps: (1)
4591 assert copyright on the software, and (2) offer you this License giving
4592 you legal permission to copy, distribute and/or modify it.
4593
4594 For the developers' and authors' protection, the GPL clearly explains
4595 that there is no warranty for this free software. For both users' and
4596 authors' sake, the GPL requires that modified versions be marked as
4597 changed, so that their problems will not be attributed erroneously to
4598 authors of previous versions.
4599
4600 Some devices are designed to deny users access to install or run modi‐
4601 fied versions of the software inside them, although the manufacturer
4602 can do so. This is fundamentally incompatible with the aim of protect‐
4603 ing users' freedom to change the software. The systematic pattern of
4604 such abuse occurs in the area of products for individuals to use, which
4605 is precisely where it is most unacceptable. Therefore, we have
4606 designed this version of the GPL to prohibit the practice for those
4607 products. If such problems arise substantially in other domains, we
4608 stand ready to extend this provision to those domains in future ver‐
4609 sions of the GPL, as needed to protect the freedom of users.
4610
4611 Finally, every program is threatened constantly by software patents.
4612 States should not allow patents to restrict development and use of
4613 software on general-purpose computers, but in those that do, we wish to
4614 avoid the special danger that patents applied to a free program could
4615 make it effectively proprietary. To prevent this, the GPL assures that
4616 patents cannot be used to render the program non-free.
4617
4618 The precise terms and conditions for copying, distribution and modifi‐
4619 cation follow.
4620
4621
4622 Definitions.
4623 ``This License'' refers to version 3 of the GNU General Public
4624 License.
4625
4626 ``Copyright'' also means copyright-like laws that apply to other
4627 kinds of works, such as semiconductor masks.
4628
4629 ``The Program'' refers to any copyrightable work licensed under
4630 this License. Each licensee is addressed as ``you''.
4631 ``Licensees'' and ``recipients'' may be individuals or organiza‐
4632 tions.
4633
4634 To ``modify'' a work means to copy from or adapt all or part of
4635 the work in a fashion requiring copyright permission, other than
4636 the making of an exact copy. The resulting work is called a
4637 ``modified version'' of the earlier work or a work ``based on''
4638 the earlier work.
4639
4640 A ``covered work'' means either the unmodified Program or a work
4641 based on the Program.
4642
4643 To ``propagate'' a work means to do anything with it that, with‐
4644 out permission, would make you directly or secondarily liable
4645 for infringement under applicable copyright law, except execut‐
4646 ing it on a computer or modifying a private copy. Propagation
4647 includes copying, distribution (with or without modification),
4648 making available to the public, and in some countries other
4649 activities as well.
4650
4651 To ``convey'' a work means any kind of propagation that enables
4652 other parties to make or receive copies. Mere interaction with
4653 a user through a computer network, with no transfer of a copy,
4654 is not conveying.
4655
4656 An interactive user interface displays ``Appropriate Legal
4657 Notices'' to the extent that it includes a convenient and promi‐
4658 nently visible feature that (1) displays an appropriate copy‐
4659 right notice, and (2) tells the user that there is no warranty
4660 for the work (except to the extent that warranties are pro‐
4661 vided), that licensees may convey the work under this License,
4662 and how to view a copy of this License. If the interface
4663 presents a list of user commands or options, such as a menu, a
4664 prominent item in the list meets this criterion.
4665
4666
4667 Source Code.
4668 The ``source code'' for a work means the preferred form of the
4669 work for making modifications to it. ``Object code'' means any
4670 non-source form of a work.
4671
4672 A ``Standard Interface'' means an interface that either is an
4673 official standard defined by a recognized standards body, or, in
4674 the case of interfaces specified for a particular programming
4675 language, one that is widely used among developers working in
4676 that language.
4677
4678 The ``System Libraries'' of an executable work include anything,
4679 other than the work as a whole, that (a) is included in the nor‐
4680 mal form of packaging a Major Component, but which is not part
4681 of that Major Component, and (b) serves only to enable use of
4682 the work with that Major Component, or to implement a Standard
4683 Interface for which an implementation is available to the public
4684 in source code form. A ``Major Component'', in this context,
4685 means a major essential component (kernel, window system, and so
4686 on) of the specific operating system (if any) on which the exe‐
4687 cutable work runs, or a compiler used to produce the work, or an
4688 object code interpreter used to run it.
4689
4690 The ``Corresponding Source'' for a work in object code form
4691 means all the source code needed to generate, install, and (for
4692 an executable work) run the object code and to modify the work,
4693 including scripts to control those activities. However, it does
4694 not include the work's System Libraries, or general-purpose
4695 tools or generally available free programs which are used unmod‐
4696 ified in performing those activities but which are not part of
4697 the work. For example, Corresponding Source includes interface
4698 definition files associated with source files for the work, and
4699 the source code for shared libraries and dynamically linked sub‐
4700 programs that the work is specifically designed to require, such
4701 as by intimate data communication or control flow between those
4702 subprograms and other parts of the work.
4703
4704 The Corresponding Source need not include anything that users
4705 can regenerate automatically from other parts of the Correspond‐
4706 ing Source.
4707
4708 The Corresponding Source for a work in source code form is that
4709 same work.
4710
4711
4712 Basic Permissions.
4713 All rights granted under this License are granted for the term
4714 of copyright on the Program, and are irrevocable provided the
4715 stated conditions are met. This License explicitly affirms your
4716 unlimited permission to run the unmodified Program. The output
4717 from running a covered work is covered by this License only if
4718 the output, given its content, constitutes a covered work. This
4719 License acknowledges your rights of fair use or other equiva‐
4720 lent, as provided by copyright law.
4721
4722 You may make, run and propagate covered works that you do not
4723 convey, without conditions so long as your license otherwise
4724 remains in force. You may convey covered works to others for
4725 the sole purpose of having them make modifications exclusively
4726 for you, or provide you with facilities for running those works,
4727 provided that you comply with the terms of this License in con‐
4728 veying all material for which you do not control copyright.
4729 Those thus making or running the covered works for you must do
4730 so exclusively on your behalf, under your direction and control,
4731 on terms that prohibit them from making any copies of your copy‐
4732 righted material outside their relationship with you.
4733
4734 Conveying under any other circumstances is permitted solely
4735 under the conditions stated below. Sublicensing is not allowed;
4736 section 10 makes it unnecessary.
4737
4738
4739 Protecting Users' Legal Rights From Anti-Circumvention Law.
4740 No covered work shall be deemed part of an effective technologi‐
4741 cal measure under any applicable law fulfilling obligations
4742 under article 11 of the WIPO copyright treaty adopted on 20
4743 December 1996, or similar laws prohibiting or restricting cir‐
4744 cumvention of such measures.
4745
4746 When you convey a covered work, you waive any legal power to
4747 forbid circumvention of technological measures to the extent
4748 such circumvention is effected by exercising rights under this
4749 License with respect to the covered work, and you disclaim any
4750 intention to limit operation or modification of the work as a
4751 means of enforcing, against the work's users, your or third par‐
4752 ties' legal rights to forbid circumvention of technological mea‐
4753 sures.
4754
4755
4756 Conveying Verbatim Copies.
4757 You may convey verbatim copies of the Program's source code as
4758 you receive it, in any medium, provided that you conspicuously
4759 and appropriately publish on each copy an appropriate copyright
4760 notice; keep intact all notices stating that this License and
4761 any non-permissive terms added in accord with section 7 apply to
4762 the code; keep intact all notices of the absence of any war‐
4763 ranty; and give all recipients a copy of this License along with
4764 the Program.
4765
4766 You may charge any price or no price for each copy that you con‐
4767 vey, and you may offer support or warranty protection for a fee.
4768
4769
4770 Conveying Modified Source Versions.
4771 You may convey a work based on the Program, or the modifications
4772 to produce it from the Program, in the form of source code under
4773 the terms of section 4, provided that you also meet all of these
4774 conditions:
4775
4776 The work must carry prominent notices stating that you modified
4777 it, and giving a relevant date.
4778
4779 The work must carry prominent notices stating that it is
4780 released under this License and any conditions added under sec‐
4781 tion 7. This requirement modifies the requirement in section 4
4782 to ``keep intact all notices''.
4783
4784 You must license the entire work, as a whole, under this License
4785 to anyone who comes into possession of a copy. This License
4786 will therefore apply, along with any applicable section 7 addi‐
4787 tional terms, to the whole of the work, and all its parts,
4788 regardless of how they are packaged. This License gives no per‐
4789 mission to license the work in any other way, but it does not
4790 invalidate such permission if you have separately received it.
4791
4792 If the work has interactive user interfaces, each must display
4793 Appropriate Legal Notices; however, if the Program has interac‐
4794 tive interfaces that do not display Appropriate Legal Notices,
4795 your work need not make them do so.
4796
4797 A compilation of a covered work with other separate and indepen‐
4798 dent works, which are not by their nature extensions of the cov‐
4799 ered work, and which are not combined with it such as to form a
4800 larger program, in or on a volume of a storage or distribution
4801 medium, is called an ``aggregate'' if the compilation and its
4802 resulting copyright are not used to limit the access or legal
4803 rights of the compilation's users beyond what the individual
4804 works permit. Inclusion of a covered work in an aggregate does
4805 not cause this License to apply to the other parts of the aggre‐
4806 gate.
4807
4808
4809 Conveying Non-Source Forms.
4810 You may convey a covered work in object code form under the
4811 terms of sections 4 and 5, provided that you also convey the
4812 machine-readable Corresponding Source under the terms of this
4813 License, in one of these ways:
4814
4815 Convey the object code in, or embodied in, a physical product
4816 (including a physical distribution medium), accompanied by the
4817 Corresponding Source fixed on a durable physical medium custom‐
4818 arily used for software interchange.
4819
4820 Convey the object code in, or embodied in, a physical product
4821 (including a physical distribution medium), accompanied by a
4822 written offer, valid for at least three years and valid for as
4823 long as you offer spare parts or customer support for that prod‐
4824 uct model, to give anyone who possesses the object code either
4825 (1) a copy of the Corresponding Source for all the software in
4826 the product that is covered by this License, on a durable physi‐
4827 cal medium customarily used for software interchange, for a
4828 price no more than your reasonable cost of physically performing
4829 this conveying of source, or (2) access to copy the Correspond‐
4830 ing Source from a network server at no charge.
4831
4832 Convey individual copies of the object code with a copy of the
4833 written offer to provide the Corresponding Source. This alter‐
4834 native is allowed only occasionally and noncommercially, and
4835 only if you received the object code with such an offer, in
4836 accord with subsection 6b.
4837
4838 Convey the object code by offering access from a designated
4839 place (gratis or for a charge), and offer equivalent access to
4840 the Corresponding Source in the same way through the same place
4841 at no further charge. You need not require recipients to copy
4842 the Corresponding Source along with the object code. If the
4843 place to copy the object code is a network server, the Corre‐
4844 sponding Source may be on a different server (operated by you or
4845 a third party) that supports equivalent copying facilities, pro‐
4846 vided you maintain clear directions next to the object code say‐
4847 ing where to find the Corresponding Source. Regardless of what
4848 server hosts the Corresponding Source, you remain obligated to
4849 ensure that it is available for as long as needed to satisfy
4850 these requirements.
4851
4852 Convey the object code using peer-to-peer transmission, provided
4853 you inform other peers where the object code and Corresponding
4854 Source of the work are being offered to the general public at no
4855 charge under subsection 6d.
4856
4857 A separable portion of the object code, whose source code is
4858 excluded from the Corresponding Source as a System Library, need
4859 not be included in conveying the object code work.
4860
4861 A ``User Product'' is either (1) a ``consumer product'', which
4862 means any tangible personal property which is normally used for
4863 personal, family, or household purposes, or (2) anything
4864 designed or sold for incorporation into a dwelling. In deter‐
4865 mining whether a product is a consumer product, doubtful cases
4866 shall be resolved in favor of coverage. For a particular prod‐
4867 uct received by a particular user, ``normally used'' refers to a
4868 typical or common use of that class of product, regardless of
4869 the status of the particular user or of the way in which the
4870 particular user actually uses, or expects or is expected to use,
4871 the product. A product is a consumer product regardless of
4872 whether the product has substantial commercial, industrial or
4873 non-consumer uses, unless such uses represent the only signifi‐
4874 cant mode of use of the product.
4875
4876 ``Installation Information'' for a User Product means any meth‐
4877 ods, procedures, authorization keys, or other information
4878 required to install and execute modified versions of a covered
4879 work in that User Product from a modified version of its Corre‐
4880 sponding Source. The information must suffice to ensure that
4881 the continued functioning of the modified object code is in no
4882 case prevented or interfered with solely because modification
4883 has been made.
4884
4885 If you convey an object code work under this section in, or
4886 with, or specifically for use in, a User Product, and the con‐
4887 veying occurs as part of a transaction in which the right of
4888 possession and use of the User Product is transferred to the
4889 recipient in perpetuity or for a fixed term (regardless of how
4890 the transaction is characterized), the Corresponding Source con‐
4891 veyed under this section must be accompanied by the Installation
4892 Information. But this requirement does not apply if neither you
4893 nor any third party retains the ability to install modified
4894 object code on the User Product (for example, the work has been
4895 installed in ROM).
4896
4897 The requirement to provide Installation Information does not
4898 include a requirement to continue to provide support service,
4899 warranty, or updates for a work that has been modified or
4900 installed by the recipient, or for the User Product in which it
4901 has been modified or installed. Access to a network may be
4902 denied when the modification itself materially and adversely
4903 affects the operation of the network or violates the rules and
4904 protocols for communication across the network.
4905
4906 Corresponding Source conveyed, and Installation Information pro‐
4907 vided, in accord with this section must be in a format that is
4908 publicly documented (and with an implementation available to the
4909 public in source code form), and must require no special pass‐
4910 word or key for unpacking, reading or copying.
4911
4912
4913 Additional Terms.
4914 ``Additional permissions'' are terms that supplement the terms
4915 of this License by making exceptions from one or more of its
4916 conditions. Additional permissions that are applicable to the
4917 entire Program shall be treated as though they were included in
4918 this License, to the extent that they are valid under applicable
4919 law. If additional permissions apply only to part of the Pro‐
4920 gram, that part may be used separately under those permissions,
4921 but the entire Program remains governed by this License without
4922 regard to the additional permissions.
4923
4924 When you convey a copy of a covered work, you may at your option
4925 remove any additional permissions from that copy, or from any
4926 part of it. (Additional permissions may be written to require
4927 their own removal in certain cases when you modify the work.)
4928 You may place additional permissions on material, added by you
4929 to a covered work, for which you have or can give appropriate
4930 copyright permission.
4931
4932 Notwithstanding any other provision of this License, for mate‐
4933 rial you add to a covered work, you may (if authorized by the
4934 copyright holders of that material) supplement the terms of this
4935 License with terms:
4936
4937 Disclaiming warranty or limiting liability differently from the
4938 terms of sections 15 and 16 of this License; or
4939
4940 Requiring preservation of specified reasonable legal notices or
4941 author attributions in that material or in the Appropriate Legal
4942 Notices displayed by works containing it; or
4943
4944 Prohibiting misrepresentation of the origin of that material, or
4945 requiring that modified versions of such material be marked in
4946 reasonable ways as different from the original version; or
4947
4948 Limiting the use for publicity purposes of names of licensors or
4949 authors of the material; or
4950
4951 Declining to grant rights under trademark law for use of some
4952 trade names, trademarks, or service marks; or
4953
4954 Requiring indemnification of licensors and authors of that mate‐
4955 rial by anyone who conveys the material (or modified versions of
4956 it) with contractual assumptions of liability to the recipient,
4957 for any liability that these contractual assumptions directly
4958 impose on those licensors and authors.
4959
4960 All other non-permissive additional terms are considered ``fur‐
4961 ther restrictions'' within the meaning of section 10. If the
4962 Program as you received it, or any part of it, contains a notice
4963 stating that it is governed by this License along with a term
4964 that is a further restriction, you may remove that term. If a
4965 license document contains a further restriction but permits
4966 relicensing or conveying under this License, you may add to a
4967 covered work material governed by the terms of that license doc‐
4968 ument, provided that the further restriction does not survive
4969 such relicensing or conveying.
4970
4971 If you add terms to a covered work in accord with this section,
4972 you must place, in the relevant source files, a statement of the
4973 additional terms that apply to those files, or a notice indicat‐
4974 ing where to find the applicable terms.
4975
4976 Additional terms, permissive or non-permissive, may be stated in
4977 the form of a separately written license, or stated as excep‐
4978 tions; the above requirements apply either way.
4979
4980
4981 Termination.
4982 You may not propagate or modify a covered work except as
4983 expressly provided under this License. Any attempt otherwise to
4984 propagate or modify it is void, and will automatically terminate
4985 your rights under this License (including any patent licenses
4986 granted under the third paragraph of section 11).
4987
4988 However, if you cease all violation of this License, then your
4989 license from a particular copyright holder is reinstated (a)
4990 provisionally, unless and until the copyright holder explicitly
4991 and finally terminates your license, and (b) permanently, if the
4992 copyright holder fails to notify you of the violation by some
4993 reasonable means prior to 60 days after the cessation.
4994
4995 Moreover, your license from a particular copyright holder is
4996 reinstated permanently if the copyright holder notifies you of
4997 the violation by some reasonable means, this is the first time
4998 you have received notice of violation of this License (for any
4999 work) from that copyright holder, and you cure the violation
5000 prior to 30 days after your receipt of the notice.
5001
5002 Termination of your rights under this section does not terminate
5003 the licenses of parties who have received copies or rights from
5004 you under this License. If your rights have been terminated and
5005 not permanently reinstated, you do not qualify to receive new
5006 licenses for the same material under section 10.
5007
5008
5009 Acceptance Not Required for Having Copies.
5010 You are not required to accept this License in order to receive
5011 or run a copy of the Program. Ancillary propagation of a cov‐
5012 ered work occurring solely as a consequence of using peer-to-
5013 peer transmission to receive a copy likewise does not require
5014 acceptance. However, nothing other than this License grants you
5015 permission to propagate or modify any covered work. These
5016 actions infringe copyright if you do not accept this License.
5017 Therefore, by modifying or propagating a covered work, you indi‐
5018 cate your acceptance of this License to do so.
5019
5020
5021 Automatic Licensing of Downstream Recipients.
5022 Each time you convey a covered work, the recipient automatically
5023 receives a license from the original licensors, to run, modify
5024 and propagate that work, subject to this License. You are not
5025 responsible for enforcing compliance by third parties with this
5026 License.
5027
5028 An ``entity transaction'' is a transaction transferring control
5029 of an organization, or substantially all assets of one, or sub‐
5030 dividing an organization, or merging organizations. If propaga‐
5031 tion of a covered work results from an entity transaction, each
5032 party to that transaction who receives a copy of the work also
5033 receives whatever licenses to the work the party's predecessor
5034 in interest had or could give under the previous paragraph, plus
5035 a right to possession of the Corresponding Source of the work
5036 from the predecessor in interest, if the predecessor has it or
5037 can get it with reasonable efforts.
5038
5039 You may not impose any further restrictions on the exercise of
5040 the rights granted or affirmed under this License. For example,
5041 you may not impose a license fee, royalty, or other charge for
5042 exercise of rights granted under this License, and you may not
5043 initiate litigation (including a cross-claim or counterclaim in
5044 a lawsuit) alleging that any patent claim is infringed by mak‐
5045 ing, using, selling, offering for sale, or importing the Program
5046 or any portion of it.
5047
5048
5049 Patents.
5050 A ``contributor'' is a copyright holder who authorizes use under
5051 this License of the Program or a work on which the Program is
5052 based. The work thus licensed is called the contributor's
5053 ``contributor version''.
5054
5055 A contributor's ``essential patent claims'' are all patent
5056 claims owned or controlled by the contributor, whether already
5057 acquired or hereafter acquired, that would be infringed by some
5058 manner, permitted by this License, of making, using, or selling
5059 its contributor version, but do not include claims that would be
5060 infringed only as a consequence of further modification of the
5061 contributor version. For purposes of this definition, ``con‐
5062 trol'' includes the right to grant patent sublicenses in a man‐
5063 ner consistent with the requirements of this License.
5064
5065 Each contributor grants you a non-exclusive, worldwide, royalty-
5066 free patent license under the contributor's essential patent
5067 claims, to make, use, sell, offer for sale, import and otherwise
5068 run, modify and propagate the contents of its contributor ver‐
5069 sion.
5070
5071 In the following three paragraphs, a ``patent license'' is any
5072 express agreement or commitment, however denominated, not to
5073 enforce a patent (such as an express permission to practice a
5074 patent or covenant not to sue for patent infringement). To
5075 ``grant'' such a patent license to a party means to make such an
5076 agreement or commitment not to enforce a patent against the
5077 party.
5078
5079 If you convey a covered work, knowingly relying on a patent
5080 license, and the Corresponding Source of the work is not avail‐
5081 able for anyone to copy, free of charge and under the terms of
5082 this License, through a publicly available network server or
5083 other readily accessible means, then you must either (1) cause
5084 the Corresponding Source to be so available, or (2) arrange to
5085 deprive yourself of the benefit of the patent license for this
5086 particular work, or (3) arrange, in a manner consistent with the
5087 requirements of this License, to extend the patent license to
5088 downstream recipients. ``Knowingly relying'' means you have
5089 actual knowledge that, but for the patent license, your convey‐
5090 ing the covered work in a country, or your recipient's use of
5091 the covered work in a country, would infringe one or more iden‐
5092 tifiable patents in that country that you have reason to believe
5093 are valid.
5094
5095 If, pursuant to or in connection with a single transaction or
5096 arrangement, you convey, or propagate by procuring conveyance
5097 of, a covered work, and grant a patent license to some of the
5098 parties receiving the covered work authorizing them to use,
5099 propagate, modify or convey a specific copy of the covered work,
5100 then the patent license you grant is automatically extended to
5101 all recipients of the covered work and works based on it.
5102
5103 A patent license is ``discriminatory'' if it does not include
5104 within the scope of its coverage, prohibits the exercise of, or
5105 is conditioned on the non-exercise of one or more of the rights
5106 that are specifically granted under this License. You may not
5107 convey a covered work if you are a party to an arrangement with
5108 a third party that is in the business of distributing software,
5109 under which you make payment to the third party based on the
5110 extent of your activity of conveying the work, and under which
5111 the third party grants, to any of the parties who would receive
5112 the covered work from you, a discriminatory patent license (a)
5113 in connection with copies of the covered work conveyed by you
5114 (or copies made from those copies), or (b) primarily for and in
5115 connection with specific products or compilations that contain
5116 the covered work, unless you entered into that arrangement, or
5117 that patent license was granted, prior to 28 March 2007.
5118
5119 Nothing in this License shall be construed as excluding or lim‐
5120 iting any implied license or other defenses to infringement that
5121 may otherwise be available to you under applicable patent law.
5122
5123
5124 No Surrender of Others' Freedom.
5125 If conditions are imposed on you (whether by court order, agree‐
5126 ment or otherwise) that contradict the conditions of this
5127 License, they do not excuse you from the conditions of this
5128 License. If you cannot convey a covered work so as to satisfy
5129 simultaneously your obligations under this License and any other
5130 pertinent obligations, then as a consequence you may not convey
5131 it at all. For example, if you agree to terms that obligate you
5132 to collect a royalty for further conveying from those to whom
5133 you convey the Program, the only way you could satisfy both
5134 those terms and this License would be to refrain entirely from
5135 conveying the Program.
5136
5137
5138 Use with the GNU Affero General Public License.
5139 Notwithstanding any other provision of this License, you have
5140 permission to link or combine any covered work with a work
5141 licensed under version 3 of the GNU Affero General Public
5142 License into a single combined work, and to convey the resulting
5143 work. The terms of this License will continue to apply to the
5144 part which is the covered work, but the special requirements of
5145 the GNU Affero General Public License, section 13, concerning
5146 interaction through a network will apply to the combination as
5147 such.
5148
5149
5150 Revised Versions of this License.
5151 The Free Software Foundation may publish revised and/or new ver‐
5152 sions of the GNU General Public License from time to time. Such
5153 new versions will be similar in spirit to the present version,
5154 but may differ in detail to address new problems or concerns.
5155
5156 Each version is given a distinguishing version number. If the
5157 Program specifies that a certain numbered version of the GNU
5158 General Public License ``or any later version'' applies to it,
5159 you have the option of following the terms and conditions either
5160 of that numbered version or of any later version published by
5161 the Free Software Foundation. If the Program does not specify a
5162 version number of the GNU General Public License, you may choose
5163 any version ever published by the Free Software Foundation.
5164
5165 If the Program specifies that a proxy can decide which future
5166 versions of the GNU General Public License can be used, that
5167 proxy's public statement of acceptance of a version permanently
5168 authorizes you to choose that version for the Program.
5169
5170 Later license versions may give you additional or different per‐
5171 missions. However, no additional obligations are imposed on any
5172 author or copyright holder as a result of your choosing to fol‐
5173 low a later version.
5174
5175
5176 Disclaimer of Warranty.
5177 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
5178 APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE
5179 COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS
5180 IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
5181 INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER‐
5182 CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE
5183 RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
5184 YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
5185 ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
5186
5187
5188 Limitation of Liability.
5189 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
5190 WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODI‐
5191 FIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO
5192 YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
5193 CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
5194 THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
5195 BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
5196 PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
5197 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED
5198 OF THE POSSIBILITY OF SUCH DAMAGES.
5199
5200
5201 Interpretation of Sections 15 and 16.
5202 If the disclaimer of warranty and limitation of liability pro‐
5203 vided above cannot be given local legal effect according to
5204 their terms, reviewing courts shall apply local law that most
5205 closely approximates an absolute waiver of all civil liability
5206 in connection with the Program, unless a warranty or assumption
5207 of liability accompanies a copy of the Program in return for a
5208 fee.
5209
5210 If you develop a new program, and you want it to be of the
5211 greatest possible use to the public, the best way to achieve
5212 this is to make it free software which everyone can redistribute
5213 and change under these terms.
5214
5215 To do so, attach the following notices to the program. It is
5216 safest to attach them to the start of each source file to most
5217 effectively state the exclusion of warranty; and each file
5218 should have at least the ``copyright'' line and a pointer to
5219 where the full notice is found.
5220
5221 ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
5222 Copyright (C) YEAR NAME OF AUTHOR
5223
5224 This program is free software: you can redistribute it and/or modify
5225 it under the terms of the GNU General Public License as published by
5226 the Free Software Foundation, either version 3 of the License, or (at
5227 your option) any later version.
5228
5229 This program is distributed in the hope that it will be useful, but
5230 WITHOUT ANY WARRANTY; without even the implied warranty of
5231 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5232 General Public License for more details.
5233
5234 You should have received a copy of the GNU General Public License
5235 along with this program. If not, see `http://www.gnu.org/licenses/'.
5236
5237 Also add information on how to contact you by electronic and
5238 paper mail.
5239
5240 If the program does terminal interaction, make it output a short
5241 notice like this when it starts in an interactive mode:
5242
5243 PROGRAM Copyright (C) YEAR NAME OF AUTHOR
5244 This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
5245 This is free software, and you are welcome to redistribute it
5246 under certain conditions; type `show c' for details.
5247
5248 The hypothetical commands `show w' and `show c' should show the
5249 appropriate parts of the General Public License. Of course,
5250 your program's commands might be different; for a GUI interface,
5251 you would use an ``about box''.
5252
5253 You should also get your employer (if you work as a programmer)
5254 or school, if any, to sign a ``copyright disclaimer'' for the
5255 program, if necessary. For more information on this, and how to
5256 apply and follow the GNU GPL, see
5257 `http://www.gnu.org/licenses/'.
5258
5259 The GNU General Public License does not permit incorporating
5260 your program into proprietary programs. If your program is a
5261 subroutine library, you may consider it more useful to permit
5262 linking proprietary applications with the library. If this is
5263 what you want to do, use the GNU Lesser General Public License
5264 instead of this License. But first, please read
5265 `http://www.gnu.org/philosophy/why-not-lgpl.html'.
5266
5267
5268
5269
5270GNU $Date: xboard(6)