-
Notifications
You must be signed in to change notification settings - Fork 5
/
xboard.texi
5079 lines (4874 loc) · 225 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.
To run engines that use the UCI standard XBoard will draw upon
the Polyglot adapter fully transparently, but you will need to have
the polyglot package installed for this to work.
@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. To under-promote a Pawn you can drag it backwards
until it morphs into the piece you want to promote to, after which you
drag that forward to the promotion square.
Or after selecting the pawn with a first click you can then click
the promotion square and move the mouse while keeping the button down
until the piece that you want appears in the promotion square.
To castle you move the King to its destination or, in Chess960,
on top of the Rook you want to castle with.
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 might 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 @kbd{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 situations 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.
Note that the board window can be sized by the user, but that this
will not affect the size of the clocks above it, and won't be remembered
in the settings file.
To persistently change the size of the clocks, use the @code{size}
command-line option when starting XBoard.
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).
@item shuffle
@cindex shuffle, Menu Item
Ticking @samp{shuffle} will cause the current variant to be played
with shuffled initial position.
Shuffling will preserve the possibility to castle in the way allowed by the variant.
@item Fischer castling
@cindex Fischer castling, menu item
Ticking @samp{Fischer castling} will allow castling with Kings and Rooks
that did not start in their normal place, as in Chess960.
@item Start-position number
@itemx randomize
@itemx pick fixed
@cindex randomize, Menu Item
@cindex pick fixed, Menu Item
@cindex Start-position number, Menu Item
The @samp{Start-position number} selects a particular start position
from all allowed shufflings, which will then be used for every new game.
Setting this to -1 (which can be done by pressing the @samp{randomize} button)
will cause a fresh random position to be picked for every new game.
Pressing the @samp{pick fixed} button causes @samp{Start-position number}
to be set to a random value, to be used for all subsequent games.
@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 corresponding choice will be disabled.
XBoard supports all major variants, such as xiangqi, shogi, chess, chess960,
makruk, Capablanca Chess, shatranj, crazyhouse, bughouse.
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' for the chosen variant.
@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.
When you do this keeping the @kbd{Ctrl} key pressed,
or start dragging with a double-click,
you will move a copy of the piece, leaving the piece itself where it was.
In variants where pieces can promote (such as Shogi),
left-clicking an already selected piece promotes or demotes 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.
(Note you can swap the function of button 2 and 3 by pressing
the shift key, and that there is an option @code{monoMouse}
to combine al functions in one button, which then acts as
button 3 over an empty square, and as button 1 over a piece.)
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
already has the move (which is highlighted in black).
If you repeat this the board will cycle from empty to a
@code{pallette board} containing every piece once to the initial
position to the one before clearing.
The quickest way to set up a position is usually to start
with the pallette board, and move the pieces to were you
want them, duplicating them where necessary by using the
@kbd{Ctrl} key, dragging those you don't want off board,
and use static button 2 or 3 clicks to place the Pawns.
The old behavior with a piece menu can still be configured
with the aid of the @code{pieceMenu} option.
Dragging empty squares off board can create boards with
holes (inaccessible black squares) in them.
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 'save changes'.
When you press the button 'add next move', and play a move
on the board, that move will be added to the list with weight 1.
Note that the listed percentages are neither used, nor updated when
you change the weights; they are just there as an optical aid.
When you right-click a move in the list it will be played.
@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
@itemx <
@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 ??? 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
@itemx >
@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
@itemx <<
@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
@itemx >>
@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 might be added to the game,
depending on the setting of the option 'Play moves of clicked PV',
when you initiate the click left of the PV in the score area.
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:
Clicking the words 'fewer' or 'more' will alter the number of variations
shown at each depth, through the engine's MultiPV option,
while clicking in between those and moving the mouse horizontally adjust
the option 'Multi-PV Margin'. (In so far the engines support those.)
@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.
The title bar shows the score (and search depth at which it was obtained)
of the currently displayed position numerically.
Clicking on the graph will bring
the corresponding position in the board display.
A button 3 click will toggle the display mode between plain and differential
(showing the difference in score between successive half moves).
Using the mouse wheel over the window will change the scale of the
low-score region (from -1 to +1).
@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.
The line describing each game is built from a selection of the PGN tags.
Which tags contribute, and in what order, can be changed by the @samp{Game list tags}
menu dialog, which can be popped up through the @samp{Tags} button below the Game List.
Display can be restricted to a sub-set of the games meeting certain criteria.
A text entry below the game list allows you to type a text that the game lines
must contain in order to be displayed.
Games can also be selected based on their Elo PGN tag,
as set in the @samp{Load Game Options} dialog, which can be popped up through the
@samp{Thresholds} button below the Game List.
Finally they can be selected based on containing a position similar to the one
currently displayed in the main window, by pressing the 'Position' button below
the Game List, (which searches the entire list for the position), or the 'Narrow'
button (which only searches the already-selected games).
What counts as similar enough to be selected can also be set in the
@samp{Load Game Options} dialog, and ranges from an exact match to just the
same material.
@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 ICS/Chat Console
@cindex ICS Chat/Console, Menu Item
This menu item opens a window in which you can interact with the ICS,
so you don't have to use the messy xterm from which you launched XBoard
for that.
The window has a text entry at the bottom where you can type your
commands and messages unhindered by the stream of ICS output.
The latter will be displayed in a large pane above the input field,
the ICS Console.
Up and down arrow keys can be used to recall previous input lines.
Typing an <Esc> character in the input field transfers focus back
to the board window (so you could operate the menus there
through accelerator keys).
Typing a printable character in the board window transfers focus
back to the input field of the @samp{ICS Chat/Console} window.
@item Chats
@cindex Chats
There is a row of buttons at the top of the @samp{ICS Chat/Console} dialog,
which can be used to navigate between upto 5 'chats'
with other ICS users (or channels).
These will switch the window to 'chat mode',
where the ICS output pane is vertically split to divert messages from
a specific user or ICS channel to the lower half.
Lines typed in the input field will then be interpreted as messages
to be sent to that user or channel,
(automatically prefixed with the apporpriate ICS command and user name)
rather than as commands to the ICS.
Chats will keep collecting ICS output intended for them even when not displayed,
and their buttons will turn orange to alert the user there has been activity.
Typing <Tab> in the input field will switch to another active chat,
giving priority to those with content you have not seen yet.
@item New Chat
@cindex New Chat, Menu Item
Buttons for chats currently not assigned to a user or channel
will carry the text @samp{New Chat}, and pressing them will
switch to chat mode, enabling you to enter the user name or channel number
you want to use it for.
Typing Ctrl-N in the input field is a keyboard equivalent.
@item Chat partner
@cindex Chat partner, Menu Item
To (re-)assign a chat, write the name of your chat partner, the channel number,
or the words 'shouts', 'whispers', 'cshouts' in the @samp{Chat partner} text entry
(ending with <Enter>!).
Typing Ctrl-O in the input field at the bottom of the window will
open a chat with the person that last sent you a 'tell' that was printed
in the ICS Console output pane.
The @samp{ICS text menu} can contain a button @samp{Open Chat (name)}
that can be used to open a chat with as partner the word/number you
right-clicked in the output pane to pop up this menu.
@item End Chat
@cindex End Chat, Menu Item
This button, only visible when the chat pane is open,
will clear the @samp{Chat partner} field, so that the chat can be
assigned to a new user or channel.
Typing Ctrl-E in the input field is a keyboard equivalent.
@item Hide
@cindex Hide, Menu Item
This button, only visible when the chat pane is open,
will close the latter, so you can use the input field
to give commands to the ICS again.
Typing Ctrl-H in the input field is a keyboard equivalent.
@item ICS text menu
@cindex ICS text menu, Menu Item
Brings up a menu that is user-configurable through the @code{icsMenu} option.
Buttons in this menu can sent pre-configured commands directly to the ICS,
or can put partial commands in the input field of the @samp{ICS Chat/Console}
window, so that you can complete those with some text of your own before
sending them to the ICS by pressing Enter.
This menu item can also be popped up by right-clicking in the text memos
of the ICS Chat/Console window.
In that case the word that was clicked can be incorporated in the message
sent to the ICS. E.g. to challenge a player whose name you click for a game,
or prepare for sending him a message through a 'tell' commands.
@item Edit ICS menu
@cindex Edit ICS menu, Menu Item
Brings up an edit box with the definition of the @samp{ICS text menu},
so you can adapt its appearance to your needs.
The menu is defined by a semi-colon-separated list,
each button through a pair of items in it.
The first item of each pair is the text on the button,
the second the text to be sent when the button is pressed.
The word '$input' in the text will put that text in the input field
of the @samp{ICS Chat/Console} with the cursor in that place,
the word '$name' will be replaced by the word right-clicked
to pop up the text menu.
@item Edit Theme List
@cindex Edit Theme List
Brings up an edit box with the definitions of the themes
shown in the listbox of the @samp{Board} dialog,
so you can delete, re-order or alter themes defined previously.
@item Board
@cindex Board, Menu Item
Summons a dialog where you can customize the look of the chess board.
@item White Piece Color
@itemx Black Piece Color
@itemx Light Square Color
@itemx Dark Square Color
@itemx Highlight Color
@itemx Premove Highlight Color
@cindex Piece Color, Menu Item
@cindex Square Color, Menu Item
@cindex Highlight Color, Menu Item
These items set the color of pieces, board squares and move highlights
(borders or arrow).
Square colors are only used when the @samp{Use Board Textures} option is off,
the piece colors only when @samp{Use piece bitmaps with their own colors} is off.
You can type the color as hexadecimally encoded RGB value preceded by '#',
or adjust it through the R, G, B and D buttons to make it redder, greener, bluer
or darker.
A sample of the adjusted color will be displayed behind its text description;
pressing this colored button restores the default value for the color.
@item Flip Pieces Shogi Style
@cindex Flip Pieces Shogi Style, Menu Item
With this option on XBoard will swap white and black pieces,
when you flip the view of the board to make white play downward.
This should be used with piece themes that do not distinguish sides by color,
but by orientation.
@item Mono Mode
@cindex Mono Mode, Menu Item
This option sets XBoard to pure black-and-white display
(no grey scales, and thus no anti-aliasing).
@item Logo Size
@cindex Logo Size, Menu Item
Specifies the width of the engine logos displayed next to the clocks, in pixels.
Setting it to 0 suppresses the display of such logos.
The height of the logo will be half its width.
In the GTK build of XBoard any non-zero value is equivalent,
and the logos are always sized to 1/4 of the board width.
@item Line Gap
@cindex Line Gap, Menu Item
This option specifies the width of the grid lines that separate the squares,
which change color on highlighting the move.
Setting it to 0 suppresses these lines, which in general looks better,
but hides the square-border highlights,
so that you would have to rely on other forms of highlighting.
Setting the value to -1 makes XBoard choose a width by itself,
depending on the square size.
@item Use Board Textures
@itemx Light-Squares Texture File
@itemx Dark-Squares Texture File
@cindex Use Board Texture, Menu Item
@cindex Texture Files, Menu Item
When the option @samp{Use Board Textures} is set,
the squares will not be drawn as evenly colored surfaces,
but will be cut from a texture image, as specified by the
@samp{Texture Files}.
Separate images can be used for light and dark squares.
XBoard will try to cut the squares out of the texture image
with as little overlap as possible, so they all look different.
The name of the texture file can contain a size hint,
e.g. @code{xqboard-9x10.png}, alerting XBoard to the fact that
it contains a whole-board image, out of which squares have to
be cut in register with the nominal sub-division.
@item Use external piece bitmaps with their own color
@cindex Draw pieces with their own colors, Menu Item
When this option is on XBoard will ignore the piece-color settings,
and draw the piece images in their original colors.
The piece-color settings would only work well for evenly colored
pieces, such as the default theme.
@item Directory with Pieces Images
@cindex Piece-Image Directory, Menu Item
When a directory is specified here, XBoard will first look for
piece images (SVG or PNG files) in that directory,
and fall back on the image from the default theme only for
images it cannot find there.
An image file called White/BlackTile in the directory will be prefered
as fall-back for missing pieces over the default image, however.
@item Selectable themes
@itemx New name for current theme
@cindex Board Themes, Menu Item
@cindex Theme name, Menu Item
When a theme name is specified while pressing 'OK',
the combination of settings specified in the dialog
will be stored in XBoard's list of themes,
which will be saved with the other options in the settings file
(as the @code{themeNames} option).
This name will then appear in the selection listbox next time
you open the dialog,
so that you can recall the entire combination of settings
by double-clicking it.
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.
The current combination of these settings can be assigned a 'theme' name
by typing one in the text entry in the lower-left of the dialog,
and closing the latter with OK.
It will then appear in the themes listbox next time you open the dialog,
where you can recall the complete settings combination with a double-click.
@item Fonts
@cindex Fonts, Menu Item
Pops up a dialog where you can set the fonts used in the main elements of various windows.
Pango font names can be typed for each window type,
and behind each text entry there are buttons to adjust the point size,
and toggle the 'bold' or 'italic' attributes of the font.
@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
@cindex move exclusion
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. Set up the position by any means. (E.g. using @samp{Edit Position}
mode, pasing a FEN or loading a game and stepping to the position.)
2. 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.