-
Notifications
You must be signed in to change notification settings - Fork 0
/
xboard.texi
4292 lines (4091 loc) · 190 KB
/
xboard.texi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename xboard.info
@settitle XBoard
@c %**end of header
@include version.texi
@ifinfo
@format
INFO-DIR-SECTION Games
START-INFO-DIR-ENTRY
* xboard: (xboard). An X Window System graphical chessboard.
END-INFO-DIR-ENTRY
@end format
@end ifinfo
@titlepage
@title XBoard
@page
@vskip 0pt plus 1filll
@include copyright.texi
@end titlepage
@ifset man
.TH xboard 6 "$Date: " "GNU"
.SH NAME
.PP
xboard @- X graphical user interface for chess
.SH SYNOPSIS
.PP
.B xboard [options]
.br
.B xboard -ics -icshost hostname [options]
.br
.B xboard -ncp [options]
.br
.B |pxboard
.br
.B cmail [options]
@end ifset
@node Top
@top Introduction
@cindex introduction
@ifset man
.SH DESCRIPTION
@end ifset
XBoard is a graphical chessboard that can serve as a
user interface to chess engines (such as GNU Chess), the
Internet Chess Servers,
electronic mail correspondence chess, or your own collection of saved games.
This manual documents version @value{VERSION} of XBoard.
@menu
* Major modes:: The main things XBoard can do.
* Basic operation:: Mouse and keyboard functions.
* Menus:: Menus, buttons, and keys.
* Options:: Command options supported by XBoard.
* Chess Servers:: Using XBoard with an Internet Chess Server (ICS).
* Firewalls:: Connecting to a chess server through a firewall.
* Environment:: Environment variables.
* Limitations:: Known limitations and/or bugs.
* Problems:: How and where to report any problems you run into.
* Contributors:: People who have helped developing XBoard.
* CMail:: Using XBoard for electronic correspondence chess.
* Other programs:: Other programs you can use with XBoard.
@ifnottex
* Copyright:: Copyright notice for this manual.
@end ifnottex
* Copying:: The GNU General Public License.
* Index:: Index of concepts and symbol names.
@end menu
@node Major modes
@chapter Major modes
@cindex Major modes
XBoard always runs in one of four major modes. You select the
major mode from the command line when you start up XBoard.
@table @asis
@item xboard [options]
As an interface to GNU Chess or another chess engine running on your
machine, XBoard lets you play a game against the machine,
set up arbitrary positions, force variations, watch a game between two
chess engines, interactively analyze your stored games or set up and
analyze arbitrary positions. (Note: Not all chess engines support
analysis.)
@item xboard -ics -icshost hostname [options]
As Internet Chess Server (ICS) interface, XBoard
lets you play against other ICS users, observe games
they are playing, or review games that have recently finished. Most
of the ICS "wild" chess variants are supported, including bughouse.
@item xboard -ncp [options]
XBoard can also be used simply
as an electronic chessboard to play through games. It will read and
write game files and allow you to play through variations
manually. You can use it to browse games off the net or review games
you have saved. These features are also available in the other modes.
@item |pxboard
If you want to pipe games into XBoard, use the supplied shell
script @file{pxboard}. For example, from the news reader @file{xrn},
find a message with one or more games in it, click the Save button,
and type @samp{|pxboard} as the file name.
@item cmail [options]
As an interface to electronic mail correspondence chess, XBoard
works with the cmail program. See @ref{CMail} below for
instructions.
@end table
@node Basic operation
@chapter Basic operation
@cindex Basic operation
To move a piece, you can drag it with the left mouse button, or you
can click the left mouse button once on the piece, then once more on
the destination square. In crazyhouse, bughouse or shogi you can
drag and drop pieces to the board from the holdings squares
displayed next to the board.
Old behavior, where right-clicking a square brings up a menu
where you can select what piece to drop on it can still be
selected through the @samp{Drop Menu} option.
Only in Edit Position mode right and middle clicking a square is still used to
put a piece on it, and the piece to drop is selected by sweeping
the mouse vertically with the button held down.
The default function of the right mouse button in other modes is
to display the position the chess program thinks it will end up in.
While moving the mouse vertically with this button pressed
XBoard will step through the principal variation to show how
this position will be reached.
Lines of play displayed in the engine-output window,
or PGN variations in the comment window can similarly
be played out on the board, by right-clicking on them.
Only in Analysis mode, when you walk along a PV,
releasing the mouse button will forward the game upto that point,
like you entered all previous PV moves.
As the display of the PV in that case starts after the first move
a simple right-click will play the move the engine indicates.
In Analysis mode you can also make a move by grabbing the piece
with a double-click of the left mouse button
(or while keeping the Ctrl key pressed).
In this case the move you enter will not be played,
but will be excluded from the analysis of the current position.
(Or included if it was already excluded; it is a toggle.)
This only works for engines that support this feature.
When connected to an ICS, it is possible to call up a graphical
representation of players seeking a game in stead of the chess board,
when the latter is not in use
(i.e. when you are not playing or observing).
Left-clicking the display area will switch between this 'seek graph'
and the chess board.
Hovering the mouse pointer over a dot will show the details of the
seek ad in the message field above the board.
Left-clicking the dot will challenge that player.
Right-clicking a dot will 'push it to the back',
to reveal any dots that were hidden behind it.
Right-clicking off dots will refresh the graph.
Most other XBoard commands are available from the menu bar. The most
frequently used commands also have shortcut keys or on-screen buttons.
These shortcut keystrokes are mostly non-printable characters.
Typing a letter or digit while the board window has focus
will bring up a type-in box with the typed letter already in it.
You can use that to type a move in siuations where it is your
turn to enter a move,
type a move number to call up the position after that move
in the display,
or, in Edit Position mode, type a FEN.
Some rarely used parameters can only be set through options on the
command line used to invoke XBoard.
XBoard uses a settings file, in which it can remember any changes to
the settings that are made through menus or command-line options,
so they will still apply when you restart XBoard for another session.
The settings can be saved into this file automatically when XBoard exits,
or on explicit request of the user.
The default name for the settings file is /etc/xboard/xboard.conf,
but in a standard install this file is only used as a master settings
file that determines the system-wide default settings,
and defers reading and writing of user settings to a user-specific
file like ~/.xboardrc in the user's home directory.
When XBoard is iconized, its graphical icon is a white knight if
it is White's turn to move, a black knight if it is Black's turn.
@node Menus
@chapter Menus, buttons, and keys
@cindex Menus
@menu
* File Menu:: Accessing external games and positions.
* Edit Menu:: Altering games, positions, PGN tags or comments.
* View Menu:: Controlling XBoard's shape and looks.
* Mode Menu:: Selecting XBoard's mode.
* Action Menu:: Talking to the chess engine or ICS opponents.
* Engine Menu:: Controlling settings and actions of the engine(s).
* Options Menu:: User preferences.
* Help Menu:: Getting help.
* Keys:: Other shortcut keys.
@end menu
@node File Menu
@section File Menu
@cindex File Menu
@cindex Menu, File
@table @asis
@item New Game
@cindex New Game, Menu Item
Resets XBoard and the chess engine to the beginning of a new chess
game. The @kbd{Ctrl-N} key is a keyboard equivalent. In Internet Chess
Server mode, clears the current state of XBoard, then
resynchronizes with the ICS by sending a refresh command. If you want to
stop playing, observing, or examining an ICS game, use an
appropriate command from the Action menu, not @samp{New Game}.
@xref{Action Menu}.
@item New Shuffle Game
@cindex New Shuffle Game, Menu Item
Similar to @samp{New Game}, but allows you to specify a particular initial position
(according to a standardized numbering system)
in chess variants which use randomized opening positions (e.g. Chess960).
You can also press the @samp{Pick Fixed} button to let XBoard generate
a random number for you.
The thus selected opening position will then persistently be chosen on any following
New Game command until you use this menu to select another.
Selecting position number -1 (or pushing the @samp{Randomize} button)
will produce a newly randomized position on any new game.
Using this menu item in variants that normally do not shuffle their opening position
does cause these variants to become shuffle variants until you use the
@samp{New Shuffle Game} menu to explicitly switch the randomization off,
or select a new variant.
@item New Variant
@cindex New variant, Menu Item
Allows you to select a new chess variant in non-ICS mode.
(In ICS play, the ICS is responsible for deciding which variant will be played,
and XBoard adapts automatically.) The shifted @kbd{Alt+V} key is a
keyboard equivalent. If you play with an engine, the engine must
be able to play the selected variant, or the command will be ignored.
XBoard supports all major variants, such as xiangqi, shogi, chess, chess960,
Capablanca Chess, shatranj, crazyhouse, bughouse.
But not every board size has built-in bitmaps for un-orthodox pieces!
Only sizes bulky (72) and middling (49) have all pieces,
while size petite (33) has most.
These sizes would have to be set at startup through the @code{size}
command-line option when you start up XBoard for such variants to be playable.
You can overrule the default board format of the selected variant,
(e.g. to play suicide chess on a 6 x 6 board),
in this dialog, but normally you would not do that,
and leave them at '-1', which means 'default'.
@item Load Game
@cindex Load Game, Menu Item
Plays a game from a record file. The @kbd{Ctrl-O} key is a keyboard equivalent.
A pop-up dialog prompts you for the file name. If the file contains more
than one game, a second pop-up dialog
displays a list of games (with information drawn from their PGN tags, if
any), and you can select the one you want. Alternatively, you can load the
Nth game in the file directly, by typing the number @kbd{N} after the
file name, separated by a space.
The game file parser will accept PGN (portable game notation),
or in fact almost any file that contains moves in algebraic
notation.
Notation of the form @samp{P@@f7}
is accepted for piece-drops in bughouse games;
this is a nonstandard extension to PGN.
If the file includes a PGN position (FEN tag), or an old-style
XBoard position diagram bracketed by @samp{[--} and @samp{--]}
before the first move, the game starts from that position. Text
enclosed in parentheses, square brackets, or curly braces is assumed to
be commentary and is displayed in a pop-up window. Any other
text in the file is ignored. PGN variations (enclosed in
parentheses) also are treated as comments;
however, if you rights-click them in the comment window,
XBoard will shelve the current line, and load the the selected variation,
so you can step through it.
You can later revert to the previous line with the @samp{Revert} command.
This way you can walk quite complex varation trees with XBoard.
The nonstandard PGN tag [Variant "varname"] functions similarly to
the -variant command-line option (see below), allowing games in certain chess
variants to be loaded.
Note that it must appear before any FEN tag for XBoard to recognize
variant FENs appropriately.
There is also a heuristic to
recognize chess variants from the Event tag, by looking for the strings
that the Internet Chess Servers put there when saving variant ("wild") games.
@item Load Position
@cindex Load Position, Menu Item
Sets up a position from a position file. A pop-up dialog prompts
you for the file name. The shifted @kbd{Ctrl-O} key is a keyboard
equivalent. If the file contains more than one saved
position, and you want to load the Nth one, type the number N
after the file name, separated by a space. Position files must
be in FEN (Forsythe-Edwards notation), or in the format that the
Save Position command writes when oldSaveStyle is turned on.
@item Load Next Position
@cindex Load Next Position, Menu Item
Loads the next position from the last position file you loaded.
The shifted @kbd{PgDn} key is a keyboard equivalent.
@item Load Previous Position
@cindex Load Previous Position, Menu Item
Loads the previous position from the last position file you
loaded. The shifted @kbd{PgUp} key is a keyboard equivalent.
Not available if the last position was loaded from a pipe.
@item Save Game
@cindex Save Game, Menu Item
Appends a record of the current game to a file.
The @kbd{Ctrl-S} key is a keyboard equivalent.
A pop-up dialog
prompts you for the file name. If the game did not begin with
the standard starting position, the game file includes the
starting position used. Games are saved in the PGN (portable
game notation) format, unless the oldSaveStyle option is true,
in which case they are saved in an older format that is specific
to XBoard. Both formats are human-readable, and both can be
read back by the @samp{Load Game} command.
Notation of the form @samp{P@@f7}
is accepted for piece-drops in bughouse games;
this is a nonstandard extension to PGN.
@item Save Position
@cindex Save Position, Menu Item
Appends a diagram of the current position to a file.
The shifted @kbd{Ctrl+S} key is a keyboard equivalent.
A pop-up dialog prompts you for the file name. Positions are saved in
FEN (Forsythe-Edwards notation) format unless the @code{oldSaveStyle}
option is true, in which case they are saved in an older,
human-readable format that is specific to XBoard. Both formats
can be read back by the @samp{Load Position} command.
@item Save Selected Games
@cindex Save Selected Games
Will cause all games selected for display in the current Game List
to be appended to a file of the user's choice.
@item Save Games as Book
@cindex Save Games as Book, Menu Item
Creates an opening book from the currently loaded game file,
incorporating only the games currently selected in the Game List.
The book will be saved on the file specified in the @samp{Common Engine}
options dialog.
The value of @samp{Book Depth} specified in that same dialog will
be used to determine how many moves of each game will be added to
the internal book buffer.
This command can take a long time to process,
and the size of the buffer is currently limited.
At the end the buffer will be saved as a Polyglot book,
but the buffer will not be cleared,
so that you can continue adding games from other game files.
@item Mail Move
@itemx Reload CMail Message
@cindex Mail Move, Menu Item
@cindex Reload CMail Message, Menu Item
See @ref{CMail}.
@item Exit
@cindex Exit, Menu Item
Exits from XBoard. The @kbd{Ctrl-Q} key is a keyboard equivalent.
@end table
@node Edit Menu
@section Edit Menu
@cindex Menu, Edit
@cindex Edit Menu
@table @asis
@item Copy Game
@cindex Copy Game, Menu Item
Copies a record of the current game to an internal clipboard in PGN
format and sets the X selection to the game text. The @kbd{Ctrl-C}
key is a keyboard equivalent. The game can be
pasted to another application (such as a text editor or another copy
of XBoard) using that application's paste command. In many X
applications, such as xterm and emacs, the middle mouse button can be
used for pasting; in XBoard, you must use the Paste Game command.
@item Copy Position
@cindex Copy Position, Menu Item
Copies the current position to an internal clipboard in FEN format and
sets the X selection to the position text. The shifted @kbd{Ctrl-C} key
is a keyboard equivalent. The position can be pasted
to another application (such as a text editor or another copy of
XBoard) using that application's paste command. In many X
applications, such as xterm and emacs, the middle mouse button can be
used for pasting; in XBoard, you must use the Paste Position command.
@item Copy Game List
@cindex Copy Game List, Menu Item
Copies the current game list to the clipboard,
and sets the X selection to this text.
A format of comma-separated double-quoted strings is used,
including all tags,
so it can be easily imported into spread-sheet programs.
@item Paste Game
@cindex Paste Game, Menu Item
Interprets the current X selection as a game record and loads it, as
with Load Game. The @kbd{Ctrl-V} key is a keyboard equivalent.
@item Paste Position
@cindex Paste Position, Menu Item
Interprets the current X selection as a FEN position and loads it, as
with Load Position. The shifted @kbd{Ctrl-V} key is a keyboard equivalent.
@item Edit Game
@cindex Edit Game, Menu Item
Allows you to make moves for both Black and White, and to change
moves after backing up with the @samp{Backward} command. The clocks do
not run. The @kbd{Ctrl-E} key is a keyboard equivalent.
In chess engine mode, the chess engine continues to check moves for legality
but does not participate in the game. You can bring the chess engine
into the game by selecting @samp{Machine White}, @samp{Machine Black},
or @samp{Two Machines}.
In ICS mode, the moves are not sent to the ICS: @samp{Edit Game} takes
XBoard out of ICS Client mode and lets you edit games locally.
If you want to edit games on ICS in a way that other ICS users
can see, use the ICS @kbd{examine} command or start an ICS match
against yourself.
@item Edit Position
@cindex Edit Position, Menu Item
Lets you set up an arbitrary board position.
The shifted @kbd{Ctrl-E} key is a keyboard equivalent.
Use mouse button 1 to drag pieces to new squares, or to delete a piece
by dragging it off the board or dragging an empty square on top of it.
To drop a new piece on a square, press mouse button 2 or 3 over the
square.
This puts a white or black pawn in the square, respectively,
but you can change that to any other piece type by dragging the
mouse down before you release the button.
You will then see the piece on the originally clicked square
cycle through the available pieces
(including those of opposite color),
and can release the button when you see the piece you want.
To alter the side to move, you can click the clock
(the words White and Black above the board)
of the side you want to give the move to.
To clear the board you can click the clock of the side that
alread has the move (which is highlighted in black).
The old behavior with a piece menu can still be configured
with the aid of the @code{pieceMenu} option.
Selecting @samp{Edit Position} causes XBoard to discard
all remembered moves in the current game.
In ICS mode, changes made to the position by @samp{Edit Position} are
not sent to the ICS: @samp{Edit Position} takes XBoard out of
@samp{ICS Client} mode and lets you edit positions locally. If you want to
edit positions on ICS in a way that other ICS users can see, use
the ICS @kbd{examine} command, or start an ICS match against yourself.
(See also the ICS Client topic above.)
@item Edit Tags
@cindex Edit Tags, Menu Item
Lets you edit the PGN (portable game notation)
tags for the current game. After editing, the tags must still conform to
the PGN tag syntax:
@example
<tag-section> ::= <tag-pair> <tag-section>
<empty>
<tag-pair> ::= [ <tag-name> <tag-value> ]
<tag-name> ::= <identifier>
<tag-value> ::= <string>
@end example
@noindent
See the PGN Standard for full details. Here is an example:
@example
[Event "Portoroz Interzonal"]
[Site "Portoroz, Yugoslavia"]
[Date "1958.08.16"]
[Round "8"]
[White "Robert J. Fischer"]
[Black "Bent Larsen"]
[Result "1-0"]
@end example
@noindent
Any characters that do not match this syntax are silently ignored. Note that
the PGN standard requires all games to have at least the seven tags shown
above. Any that you omit will be filled in by XBoard
with @samp{?} (unknown value), or @samp{-} (inapplicable value).
@item Edit Comment
@cindex Edit Comment, Menu Item
Adds or modifies a comment on the current position. Comments are
saved by @samp{Save Game} and are displayed by @samp{Load Game},
PGN variations will also be printed in this window,
and can be promoted to main line by right-clicking them.
@samp{Forward}, and @samp{Backward}.
@item Edit Book
@cindex Edit Book, Menu Item
Pops up a window listing the moves available in the GUI book
(specified in the @samp{Common Engine Settings} dialog)
from the currently displayed position,
together with their weights and (optionally in braces) learn info.
You can then edit this list, and the new list will be stored
back into the book when you press OK.
Note that the listed percentages are neither used, nor updated when
you change the weights; they are just there as an optical aid.
@item Revert
@itemx Annotate
@cindex Revert, Menu Item
@cindex Annotate, Menu Item
If you are examining an ICS game and Pause mode is off,
Revert issues the ICS command @samp{revert}.
In local mode, when you were editing or analyzing a game,
and the @code{-variations} command-line option is switched on,
you can start a new variation by holding the Shift key down while
entering a move not at the end of the game.
Variations can also become the currently displayed line by
clicking a PGN variation displayed in the Comment window.
This can be applied recursively,
so that you can analyze variations on variations;
each time you create a new variation by entering an alternative move
with Shift pressed, or select a new one from the Comment window,
the current variation will be shelved.
@samp{Revert} allows you to return to the most recently shelved variation.
The difference between @samp{Revert} and @samp{Annotate}
is that with the latter,
the variation you are now abandoning will be added as a comment
(in PGN variation syntax, i.e. between parentheses)
to the original move where you deviated, for later recalling.
The @kbd{Home} key is a keyboard equivalent to @samp{Revert}.
@item Truncate Game
@cindex Truncate Game, Menu Item
Discards all remembered moves of the game beyond the current
position. Puts XBoard into @samp{Edit Game} mode if it was not there
already.
The @kbd{End} key is a keyboard equivalent.
@item Backward
@cindex Backward, Menu Item
@cindex <, Button
Steps backward through a series of remembered moves.
The @samp{[<]} button and the @kbd{Alt+LeftArrow} key are equivalents,
as is turning the mouse wheel towards you.
In addition, pressing the Control key steps back one move, and releasing
it steps forward again.
In most modes, @samp{Backward} only lets you look back at old positions;
it does not retract moves. This is the case if you are playing against
a chess engine, playing or observing a game on an ICS, or loading a game.
If you select @samp{Backward} in any of these situations, you will not
be allowed to make a different move. Use @samp{Retract Move} or
@samp{Edit Game} if you want to change past moves.
If you are examining an ICS game, the behavior of @samp{Backward}
depends on whether XBoard is in Pause mode. If Pause mode is
off, @samp{Backward} issues the ICS backward command, which backs up
everyone's view of the game and allows you to make a different
move. If Pause mode is on, @samp{Backward} only backs up your local
view.
@item Forward
@cindex Forward, Menu Item
@cindex >, Button
Steps forward through a series of remembered moves (undoing the
effect of @samp{Backward}) or forward through a game file. The
@samp{[>]} button and the @kbd{Alt+RightArrow} key are equivalents,
as is turning the mouse wheel away from you.
If you are examining an ICS game, the behavior of Forward
depends on whether XBoard is in Pause mode. If Pause mode is
off, @samp{Forward} issues the ICS forward command, which moves
everyone's view of the game forward along the current line. If
Pause mode is on, @samp{Forward} only moves your local view forward,
and it will not go past the position that the game was in when
you paused.
@item Back to Start
@cindex Back to Start, Menu Item
@cindex <<, Button
Jumps backward to the first remembered position in the game.
The @samp{[<<]} button and the @kbd{Alt+Home} key are equivalents.
In most modes, Back to Start only lets you look back at old
positions; it does not retract moves. This is the case if you
are playing against a local chess engine, playing or observing a game on
a chess server, or loading a game. If you select @samp{Back to Start} in any
of these situations, you will not be allowed to make different
moves. Use @samp{Retract Move} or @samp{Edit Game} if you want to change past
moves; or use Reset to start a new game.
If you are examining an ICS game, the behavior of @samp{Back to
Start} depends on whether XBoard is in Pause mode. If Pause mode
is off, @samp{Back to Start} issues the ICS @samp{backward 999999}
command, which backs up everyone's view of the game to the start and
allows you to make different moves. If Pause mode is on, @samp{Back
to Start} only backs up your local view.
@item Forward to End
@cindex Forward to End, Menu Item
@cindex >>, Button
Jumps forward to the last remembered position in the game. The
@samp{[>>]} button and the @kbd{Alt+End} key are equivalents.
If you are examining an ICS game, the behavior of @samp{Forward to
End} depends on whether XBoard is in Pause mode. If Pause mode
is off, @samp{Forward to End} issues the ICS @samp{forward 999999}
command, which moves everyone's view of the game forward to the end of
the current line. If Pause mode is on, @samp{Forward to End} only moves
your local view forward, and it will not go past the position
that the game was in when you paused.
@end table
@node View Menu
@section View Menu
@cindex Menu, View
@cindex View Menu
@table @asis
@item Flip View
@cindex Flip View, Menu Item
Inverts your view of the chess board for the duration of the
current game. Starting a new game returns the board to normal.
The @kbd{F2} key is a keyboard equivalent.
@item Show Engine Output
@cindex Show Engine Output, Menu Item
Shows or hides a window in which the thinking output of any loaded engines
is displayed. The shifted @kbd{Alt+O} key is a keyboard equivalent.
XBoard will display lines of thinking output of the same depth ordered by score,
(highest score on top), rather than in the order the engine produced them.
Usually this amounts to the same, as a normal engine search will only find new PV
(and emit it as thinking output)
when it searches a move with a higher score than the previous variation.
But when the engine is in multi-variation mode this needs not always be true,
and it is more convenient for someone analyzing games to see the moves sorted by score.
The order in which the engine found them is only of interest to the engine author,
and can still be deduced from the time or node count printed with the line.
Right-clicking a line in this window, and then moving the mouse vertically with the
right button kept down, will make XBoard play through the PV listed there.
The use of the board window as 'variation board' will normally end when
you release the right button,
or when the opponent plays a move.
But beware: in Analysis mode, moves thus played out will be added to the game.
The Engine-Output pane for each engine will contain a header displaying the
multi-PV status and a list of excluded moves in Analysis mode,
which are also responsive to right-clicking.
@item Show Move History
@cindex Show Move History, Menu Item
Shows or hides a list of moves of the current game.
The shifted @kbd{Alt+H} key is a keyboard equivalent.
This list allows you to move the display to any earlier position in the game
by clicking on the corresponding move.
@item Show Evaluation Graph
@cindex Show Evaluation Graph, Menu Item
Shows or hides a window which displays a graph of how the engine score(s)
evolved as a function of the move number.
The shifted @kbd{Alt+E} key is a keyboard equivalent.
Clicking on the graph will bring
the corresponding position in the board display.
@item Show Game List
@cindex Show Game List, Menu Item
Shows or hides the list of games generated by the last @samp{Load Game}
command. The shifted @kbd{Alt+G} key is a keyboard equivalent.
@item Tags
@cindex Tags, Menu Item
Pops up a window which shows the PGN (portable game notation)
tags for the current game.
For now this is a duplicate of the @samp{Edit Tags} item in the @samp{Edit} menu.
@item Comments
@cindex Comments, Menu Item
Pops up a window which shows any comments to or variations on the current move.
For now this is a duplicate of the @samp{Edit Comment} item in the @samp{Edit} menu.
@item ICS Input Box
@cindex ICS Input Box, Menu Item
If this option is set in ICS mode,
XBoard
creates an extra window that you can use for typing in ICS commands.
The input box is especially useful if you want to type in something long or do
some editing on your input, because output from ICS doesn't get mixed
in with your typing as it would in the main terminal window.
@item Open Chat Window
@cindex Open Chat Window, Menu Item
This menu item opens a window in which you can conduct upto 5 chats
with other ICS users (or channels).
To use the window, write the name of your chat partner, the channel number,
or the words 'shouts', 'whispers', 'cshouts' in the upper field
(closing with <Enter>).
Everything you type in the lowest field will then automatically be sent to
the mentioned party, while everything that party sends to you will
appear in the central text box, rather than appear in the ICS console.
The row of buttons allow you to choose between chat;
to start a new chat, just select an empty button,
and complete the @samp{Chat partner} field.
@item Board
@cindex Board, Menu Item
Summons a dialog where you can customize the look of the chess board.
Here you can specify the directory from which piece images should be taken,
when you don't want to use the built-in piece images
(see @code{pieceImageDirectory} option),
external images to be used for the board squares
(@code{liteBackTextureFile} and @code{darkBackTextureFile} options),
and square and piece colors for the default pieces.
@item Game List Tags
@cindex Game List Tags, Menu Item
a duplicate of the Game List dialog in the Options menu.
@end table
@node Mode Menu
@section Mode Menu
@cindex Menu, Mode
@cindex Mode Menu
@table @asis
@item Machine White
@cindex Machine White, Menu Item
Tells the chess engine to play White.
The @kbd{Ctrl-W} key is a keyboard equivalent.
@item Machine Black
@cindex Machine Black, Menu Item
Tells the chess engine to play Black.
The @kbd{Ctrl-B} key is a keyboard equivalent.
@item Two Machines
@cindex Two Machines, Menu Item
Plays a game between two chess engines.
The @kbd{Ctrl-T} key is a keyboard equivalent.
@item Analysis Mode
@cindex Analysis Mode, Menu Item
@cindex null move
XBoard tells the chess engine to start analyzing the current game/position
and shows you the analysis as you move pieces around.
The @kbd{Ctrl-A} key is a keyboard equivalent.
Note: Some chess engines do not support Analysis mode.
To set up a position to analyze, you do the following:
1. Select Edit Position from the Mode Menu
2. Set up the position. Use the middle and right buttons to
bring up the white and black piece menus.
3. When you are finished, click on either the Black or White
clock to tell XBoard which side moves first.
4. Select Analysis Mode from the Mode Menu to start the analysis.
You can now play legal moves to create follow-up positions for the
engine to analyze, while the moves will be remembered as a stored game,
and then step backward through this game to take the moves back.
Note that you can also click on the clocks to set the opposite
side to move (adding a so-called @samp{null move} to the game).
You can also tell the engine to exclude some moves from analysis.
(Engines that do not support the exclude-moves feature will
ignore this, however.)
The general way to do this is to play the move you want to exclude
starting with a double click on the piece.
When you use drag-drop moving, the piece you grab with a double click
will also remain on its square, to show you that you are not really
making the move, but just forbid it from the current position.
Playing a thus excluded move a second time will include it again.
Excluded moves will be listed as text in a header line in the
Engine Output window, and you can also re-include them by
right-clicking them there.
This header line will also contain the words 'best' and 'tail';
right-clicking those will exclude the currently best move,
or all moves not explicitly listed in the header line.
Once you leave the current position all memory of excluded
moves will be lost when you return there.
Selecting this menu item while already in @samp{Analysis Mode} will
toggle the participation of the second engine in the analysis.
The output of this engine will then be shown in the lower pane
of the Engine Output window.
The analysis function can also be used when observing games on an ICS
with an engine loaded (zippy mode); the engine then will analyse
the positions as they occur in the observed game.
@item Analyze Game
@cindex Analyze Game, Menu Item
This option subjects the currently loaded game to automatic
analysis by the loaded engine.
The @kbd{Ctrl-G} key is a keyboard equivalent.
XBoard will start auto-playing the game from the currently displayed position,
while the engine is analyzing the current position.
The game will be annotated with the results of these analyses.
In particlar, the score and depth will be added as a comment,
and the PV will be added as a variation.
Normally the analysis would stop after reaching the end of the game.
But when a game is loaded from a multi-game file
while @samp{Analyze Game} was already switched on,
the analysis will continue with the next game in the file
until the end of the file is reached (or you switch to another mode).
The time the engine spends on analyzing each move can be controlled
through the command-line option @samp{-timeDelay},
which can also be set from the @samp{Load Game Options} menu dialog.
Note: Some chess engines do not support Analysis mode.
@item Edit Game
Duplicate of the item in the Edit menu.
Note that @samp{Edit Game} is the idle mode of XBoard, and can be used
to get you out of other modes. E.g. to stop analyzing, stop a game
between two engines or stop editing a position.
@item Edit Position
Duplicate of the item in the Edit menu.
@item Training
@cindex Training, Menu Item
Training mode lets you interactively guess the moves of a game for one
of the players. You guess the next move of the game by playing the
move on the board. If the move played matches the next move of the
game, the move is accepted and the opponent's response is auto-played.
If the move played is incorrect, an error message is displayed. You
can select this mode only while loading a game (that is, after
selecting @samp{Load Game} from the File menu). While XBoard is in
@samp{Training} mode, the navigation buttons are disabled.
@item ICS Client
@cindex ICS Client, Menu Item
This is the normal mode when XBoard
is connected to a chess server. If you have moved into
Edit Game or Edit Position mode, you can select this option to get out.
To use xboard in ICS mode, run it in the foreground with the -ics
option, and use the terminal you started it from to type commands and
receive text responses from the chess server. See
@ref{Chess Servers} below for more information.
XBoard activates some special position/game editing features when you
use the @kbd{examine} or @kbd{bsetup} commands on ICS and you have
@samp{ICS Client} selected on the Mode menu. First, you can issue the
ICS position-editing commands with the mouse. Move pieces by dragging
with mouse button 1. To drop a new piece on a square, press mouse
button 2 or 3 over the square. This brings up a menu of white pieces
(button 2) or black pieces (button 3). Additional menu choices let
you empty the square or clear the board. Click on the White or Black
clock to set the side to play. You cannot set the side to play or
drag pieces to arbitrary squares while examining on ICC, but you can
do so in @kbd{bsetup} mode on FICS. In addition, the menu commands
@samp{Forward}, @samp{Backward}, @samp{Pause}, and @samp{Stop Examining}
have special functions in this mode; see below.
@item Machine Match
@cindex Machine match, Menu Item
Starts a match between two chess programs,
with a number of games and other parameters set through
the @samp{Match Options} menu dialog.
When a match is already running, selecting this item will make
XBoard drop out of match mode after the current game finishes.
@item Pause
@cindex Pause, Menu Item
Pauses updates to the board, and if you are playing against a chess engine,
also pauses your clock. To continue, select @samp{Pause} again, and the
display will automatically update to the latest position.
The @samp{P} button and keyboard @kbd{Pause} key are equivalents.
If you select Pause when you are playing against a chess engine and
it is not your move, the chess engine's clock
will continue to run and it will eventually make a move, at which point
both clocks will stop. Since board updates are paused, however,
you will not see the move until you exit from Pause mode (or select Forward).
This behavior is meant to simulate adjournment with a sealed move.
If you select Pause while you are observing or examining a game on a
chess server, you can step backward and forward in the current history
of the examined game without affecting the other observers and
examiners, and without having your display jump forward to the latest
position each time a move is made. Select Pause again to reconnect
yourself to the current state of the game on ICS.
If you select @samp{Pause} while you are loading a game, the game stops
loading. You can load more moves manually by selecting @samp{Forward}, or
resume automatic loading by selecting @samp{Pause} again.
@end table
@node Action Menu
@section Action Menu
@cindex Menu, Action
@cindex Action, Menu
@table @asis
@item Accept
@cindex Accept, Menu Item
Accepts a pending match offer.
The @kbd{F3} key is a keyboard equivalent.
If there is more than one offer
pending, you will have to type in a more specific command
instead of using this menu choice.
@item Decline
@cindex Decline, Menu Item
Declines a pending offer (match, draw, adjourn, etc.).
The @kbd{F4} key is a keyboard equivalent. If there
is more than one offer pending, you will have to type in a more
specific command instead of using this menu choice.
@item Call Flag
@cindex Call Flag, Menu Item
Calls your opponent's flag, claiming a win on time, or claiming
a draw if you are both out of time.
The @kbd{F5} key is a keyboard equivalent.
You can also call your
opponent's flag by clicking on his clock.
@item Draw
@cindex Draw, Menu Item
Offers a draw to your opponent, accepts a pending draw offer
from your opponent, or claims a draw by repetition or the 50-move
rule, as appropriate. The @kbd{F6} key is a keyboard equivalent.
@item Adjourn
@cindex Adjourn, Menu Item
Asks your opponent to agree to adjourning the current game, or
agrees to a pending adjournment offer from your opponent.
The @kbd{F7} key is a keyboard equivalent.
@item Abort
@cindex Abort, Menu Item
Asks your opponent to agree to aborting the current game, or
agrees to a pending abort offer from your opponent.
The @kbd{F8} key is a keyboard equivalent. An aborted
game ends immediately without affecting either player's rating.
@item Resign
@cindex Resign, Menu Item
Resigns the game to your opponent. The @kbd{F9} key is a
keyboard equivalent.
@item Stop Observing
@cindex Stop Observing, Menu Item
Ends your participation in observing a game, by issuing the ICS
observe command with no arguments. ICS mode only.
The @kbd{F10} key is a keyboard equivalent.
@item Stop Examining
@cindex Stop Examining, Menu Item
Ends your participation in examining a game, by issuing the ICS
unexamine command. ICS mode only.
The @kbd{F11} key is a keyboard equivalent.
@item Upload to Examine
@cindex Upload to Examine, Menu Item
Create an examined game of the proper variant on the ICS,
and send the game there that is currenty loaded in XBoard
(e.g. through pasting or loading from file).
You must be connected to an ICS for this to work.
@item Adjudicate to White
@itemx Adjudicate to Black
@itemx Adjudicate Draw
@cindex Adjudicate to White, Menu Item
@cindex Adjudicate to Black, Menu Item
@cindex Adjudicate Draw, Menu Item
Terminate an ongoing game in Two-Machines mode (including match mode),
with as result a win for white, for black, or a draw, respectively.
The PGN file of the game will accompany the result string
by the comment "user adjudication".
@end table
@node Engine Menu
@section Engine Menu
@cindex Engine Menu
@cindex Menu, Engine
@table @asis
@item Load Engine
@cindex Load Engine, Menu Item
Pops up a dialog where you can select or specify an engine to be loaded.
You will always have to indicate whether you want to load the engine
as first or second engine, through the ‘Load menitioned engine as’
drop-down list at the bottom of the dialog.
You can even replace engines during a game, without disturbing that game.
(Beware that after loading an engine, XBoard will always be in Edit Game mode,
so you will have to tell the new engine what to do before it does anything!)
When you select an already installed engine from the ‘Select Engine from List’
drop-down list,
all other fields of the dialog will be ignored.
In other cases, you have to specify the engine executable,
possible arguments on the engine command line
(if the engine docs say the engine needs any),
and the directory where the engine should look for its files
(if this cannot be deduced automatically from the specification of the engine executable).
You will also have to specify (with the aid of checkboxes) if the engine is UCI.
If ‘Add this engine to the list’ is ticked (which it is by default),
the engine will be added to the list of installed engines in your settings file,
(provided you save the settings!),
so that next time you can select it from the drop-down list.
You can also specify a ‘nickname’,
under which the engine will then appear in that drop-down list,
and even choose to use that nickname for it in PGN files for engine-engine games.
The info you supply with the checkboxes whether the engine should use GUI book,
or (for variant engines) automatically switch to the current variant when loaded,
will also be included in the list.
For obsolete XBoard engines, which would normally take a long delay to load
because XBoard is waiting for a response they will not give,
you can tick ‘WB protocol v1’ to speed up the loading process.
@item Engine #N Settings
@cindex Engine Settings, Menu Item
@cindex Engine #1 Settings, Menu Item
@cindex Engine #2 Settings, Menu Item
Pop up a menu dialog to alter the settings specific to the applicable engine.
(The second engine is only accessible once it has been used in Two-Machines mode.)
For each parameter the engine allows to be set,
a control element will appear in this dialog that can be used to alter the value.
Depending on the type of parameter (text string, number, multiple choice,
on/off switch, instantaneous signal) the appropriate control will appear,
with a description next to it.
XBoard has no idea what these values mean; it just passes them on to the engine.
How this dialog looks is completely determined by the engine,
and XBoard just passes it on to the user.
Many engines do not have any parameters that can be set by the user,
and in that case the dialog will be empty (except for the OK and cancel buttons).
UCI engines usually have many parameters. (But these are only visible with
a sufficiently modern version of the Polyglot adapter needed to run UCI engines,
e.g. Polyglot 1.4.55b.) For native XBoard engines this is less common.
@item Hint
@cindex Hint, Menu Item
Displays a move hint from the chess engine.
@item Book
@cindex Book, Menu Item
Displays a list of possible moves from the chess engine's opening
book. The exact format depends on what chess engine you are using.
With GNU Chess 4, the first column gives moves, the second column
gives one possible response for each move, and the third column shows
the number of lines in the book that include the move from the first
column. If you select this option and nothing happens, the chess
engine is out of its book or does not support this feature.
@item Move Now
@cindex Move Now, Menu Item
Forces the chess engine to move immediately. Chess engine mode only.