Configuration

Configuration files readed by nocheto executables are written in INI format and stored in the ~/.nocheto/configs/ directory.

This page describes the INI format and properties you can set in it.

About config files

First time you run nocheto it makes a copy of /usr/local/etc/nocheto/nocheto.ini.template into ~/.nocheto/configs/nocheto.ini file.

This file is readed by nocheto's executables. Some executables can read other ini file(s) as well - by default (for example nochetoclient reads client.ini file after nocheto.ini) - or you can use --config filename option to read given ini file.

These othrer files (re)sets values for the same variables as in nocheto.ini.

Many values which are set in config file can by changed "on the fly" by nocheto commands. But changes made by this commands are not permanent (are not stored anywhere aftrer nocheto ends). To make the change permanent, change values in the ini file(s).

Description of INI format

INI file is an ordinary text file, which has special format. You can edit it by any of your favourite text editor.

INI file is divided into several sections.

Sections start by its name in [square brackets]. Under the section name you can set values to different properties, each on its own row:

    [section_xy]
    property = value
    # this is a comment

Value can be "string in quotes" (or without quotes if there is no white space in value), or number. For boolean values (which can be true or false) 0 is used for false/no and 1 for true/yes.

Anything after # to the end of a line is a just a comment (it is ignored).

Default nocheto.ini content

Default nocheto.ini file looks like this:

Description of sections, properties and theirs values in configuration files

Properties in this section are related to nocheto executable.

checkforupdate

checkforupdate = 1

Download news from https://nocheto.sallyx.org/.

This might freeze nocheto at start if the page or your internet connection is down. In that case, turn this value to 0.

checkdayinterval

checkdayinterval = 1

How many days shoud be between checks for update.

Properties in this section will be run during nocheto start.

Properties names are irelevant, they just need to be unique.

Example:


[startup]
cmd1="http silent"

Example above runs http command whenever nocheto starts (with --future option).

More commands can be separated by semicolon.

The difference between more commands separated by semicolon and more commands addeded as separate properties is, that in the second case asynchronous (stopable) commands "eat" all following commands (they will not be run).
While if you separate commands by semicolon in one property, they are called one by one after the previous command ends.

Properties in this section affects how PGN files are stored or printed.

pngclock3.0.0

pgnclock = ""

Sets time related commands which should be saved/printed into PGN.

  • If empty, do not save any.
  • clk prints clk command

Only clk is supported for now.

Properties in this section are related to nochetoengine executable.

logfile2.4.0

logfile = ""

Path to a file where UCI communication will be logged. (See also --logfile option.)

Properties in this sections are related to chess engine used for playing in nocheto, or evaluating positions in nocheto, nochetodbeval or nochetoclient in analyze mode.

You can set any uci engine option in this section.2.3.0 For example, if you add Ponder="false", nocheto will send "setoption name Ponder value false" to the engine on start.

engine

engine = stockfish

This value is the UCI engine used by nocheto applications. You can change this value by command line option --engine. Use nocheng for nochetoengi.

level

level = 0

This value sets the strength of the engine. 0 = weakest, 20 = strongest. Level is used for playing the game. Analyzing moves always runs at level 20.

goseconds

goseconds = 1

The number of seconds engine thing about a move. It is also used in nochetoclient in analyze mode to set the lenght of thinking about one move2.0.0. You can use -1 for infinite time in client.ini file.

You can add ! after the numeric value to force this value to be used by all configured engines2.4.0.

threads

threads = 1

Number of threads the engine should use.

Not every engine actually uses this value, but stockfish does.

autoplay

autoplay = 1

Use 1 or 0 to enable / disable autoplay. (Autoplay means that whenever you do a move, nocheto ask engine to do another move.)

multipv1.1.0

multipv = 1

Set the count of best lines client in analyze mode shows.

Not every engine actually uses this value, but stockfish does.

This sections is about chess board in console configuration. You can change colors or what parts of the board will be shown.

Not all properties affects/are supported by all board types.

boardtype

boardtype=utf8

Could be one of iso, utf8, ascii, compressed, compressed-utf81.1.0 and kitty2.0.0.
See nocheto option --board.

autoboard

autoboard = 1

Whether or not to show automatically bard. By "board" is meant not only chess board, but also moves tree, graph etc.

If autoboard is set to 0 (usefull for blindfold chess), you can always show board by using board (b) command.

viewgraph

viewgraph = 0

Show the graph.

viewtree

viewtree = 1

Show moves tree.

viewtreeheight

viewtreeheight = -1

Maximum count of rows tree shoud take. -1 means unlimited.

viewtabletree3.0.0

viewtabletree = 0

Show moves in table format next to a board.

viewtabletreeheight3.0.0

viewtabletreeheight = 0

Maximum count of rows tree shoud take. 0 means as board, -1 means unlimited.

viewboard

viewboard = 1

Whether to show chess board.

viewmoves

viewmoves = 0

Whether to show all possible moves.

viewvariants

viewvariants = 0

Whether to shows following moves from moves tree.

colorvariants

colorvariants = 1

Whether to color moves in variants.

viewfen

viewfen = 0

Whether to show FEN of current position.

viewopening

viewopening = 0

Whether to show opening name.

viewcoordinates

viewcoordinates = 1

Whether to show coordinates around chess board.

viewexplorer

viewexplorer = 0

Whether to show explorer.

viewexplorerheight2.5.0

viewexplorerheight = 0

Limits height of an explorer. 0 = unlimited.

viewgamesexplorer3.0.0

viewgamesexplorer = 0

Whether to shows games from a database explorer.

gamesexplorerdimension3.0.0

gamesexplorerdimension = 2 0

Set numer of colums (default 2) and rows (default 0) of games explorer view.
0 rows means `same as board height`, -1 means unlimited.

See also vgedimension command.

gamesexplorermode3.0.0

gamesexplorermode = "both"

mode can by "asc" (show oldest games), "desc" (show newest games) or "both" (show both newest and oldest games)

See also vgemode command.

viewtablebase

viewtablebase = 0

Whether to show tablebase (require internet access to tablebase.lichess.ovh).

viewcomments

viewcomments = "window,tree"

Where comments should be shown.

expandtree

expandtree = 0

Whether to expand moves tree.

Expanded vs not expanded tree

expandtabletree3.0.0

expandtabletree = 0

Whether to expand moves in table tree view.

actualmove_l

actualmove_l = >>

Characters on the left side of actual move in moves tree.

actualmove_r

actualmove_r = <<

Characters on the right side of actual move in moves tree.

actualmove_color

actualmove_color = 44

Color of actual move in moves tree.

analyzenotation

analyzenotation = "algebraic"

What notation to use for lines in nochetoclient analyze mode. Possible values are algebraic (i.e. Nf3) or german (i.e. g1f3). Unknown value is interpreted as german.

whiteisofield2.3.0

whiteisofield="."

Character used to fill empty white field in iso boards.

blackisofield2.3.0

blackisofield=""

Character used to fill empty black field in iso boards.

whiteutf8field2.3.0

whiteutf8field="."

Character used to fill empty white field in utf8 boards. If not set, whiteisofield is used.

blackutf8field2.3.0

blackutf8field="."

Character used to fill empty black field in utf8 boards. If not set, blackisofield is used.

stalemateisosign2.4.0

stalemateisosign="#="

String used to mark stalemate in a moves tree on iso boards.

stalemateutf8sign2.4.0

String used to mark stalemate in moves tree in utf8 boards.

stalemateisosign
is used.

This section is related to linux console, its colors, speach and audio.

Colors used for console pieces, actual move or chess board could be:

39
Default console color
30
Black
31
Red
32
Green
33
Yellow
34
Blue
35
Magenta/Purple
36
Cyan
37
Light Gray
90
Dark Gray
91
Light Red
92
Light Green
93
Light Yellow
94
Light Blue
95
Light Magenta/Pink
96
Light Cyan
97
White

speach

speach = 0

Enable/disable text to speach. You need to have installed espak application (its part of most linux packages systems).

playsounds1.1.0

playsounds = 1

Enable/disable sounds.

keepontop2.0.0

keepontop = 0

Clear the console before drawing board. That causes that the drawing always starts at the top of the console.

whitecolor

whitecolor = 93

White pieces color for console boards.

blackcolor

blackcolor = 31

Black pieces color for console board.

boardcolor

boardcolor = 34

Board color of console board.

movecolor

movecolor = 33

Color used to emphasize starting and landing chess board cells for last move was played.

onmovecolor2.0.0

onmovecolor = 34

Color used for star showing who is no move (Star is in top right or bottom right corner of the board depending on who is on move).

bestmovecolor2.0.0

bestmovecolor = 92

Color used for move evaluated as best.

okmovecolor2.0.0

okmovecolor = "37!"

Color used for move evaluated as ok (not best but not inaccurancy also).

inaccuracymovecolor2.0.0

inaccuracymovecolor = "35"

Color used for move evaluated as inaccuracy.

mistakemovecolor2.0.0

mistakemovecolor = 33

Color used for move evaluated as mistake.

blundermovecolor2.0.0

blundermovecolor = "31!"

Color used for move evaluated as blunder.

bestlinecolor2.0.0

bestlinecolor = "90!"

Color used for best line of moves.

whitefieldcolor2.3.0

whitefieldcolor = ""

Color used for character filling empty white board field.

blackfieldcolor2.3.0

blackfieldcolor = ""

Color used for character filling empty black board field.

This section is related to kitty board gui.

boardtheme2.0.0

boardtheme = "default"

Where to search for board image. Images must be in nepix format and saved in ~/.nocheto/themes/<theme>/board.nepix or /usr/local/share/nocheto/themes/<theme>/board.nepix file.

Alternatively, you can use board.txt file to set board colors.2.3.0

For example, if you create ~/.nocheto/themes/poisonous/board.txt with this content: 10,255,10 0,33,0 255,255,0, then kitty board using poisonous boardtheme will looke like this:

Poisonous board theme

piecestheme2.0.0

piecestheme = "default"

As boardtheme, but for pieces images. If not set, it uses boardtheme value.

boardwhitecolor2.0.0

boardwhitecolor = ""

Color for white square of board. The value must be 3 numers (for red, green and blue value of the color) between 0 and 255 and separated by comma (for example boardwhitecolor = "255,255,255").

You have to set both boardwhitecolor and boardblackcolor, else image from boardtheme is used.

boardblackcolor2.0.0

boardblackcolor = ""

Color for black square of board. The value must be 3 numers (for red, green and blue value of the color) between 0 and 255 and separated by comma (for example boardblackcolor = "0,0,0").

You have to set both boardwhitecolor and boardblackcolor, else image from boardtheme is used.

movecolor2.3.0

movecolor = "155,0,0"

Color used for stroke around last move.

Set names for timecontrols used by setclock.

Property name is the name of timecontrol used by setclock command.

Value is the timecontrol. See Timecontrols.

Example:

[timecontrols]
default="180+1"
classical="40/7200:1800:900+30"
standard="40/7200:3600"
rapid="900+10"
rapid30="1800"
blitz="300+5"
blitz5="300"
blitz3="180"
bullet="60"
bullet2="120+1"
hourglass="*180"

You can use this section to add new names to nocheto commands.

There are some aliases predefined. For example, c = O-O means that you can use c command to castle king side.

There is a restriction on variable name characters (for example variable can't start with !), so sometime you have to put the variable name inside alias[]. For example, alias[!] = "nag !" means, that you can use ! command to add ! annotation to an actual move.

You can even change meaning of an existing command by it. For example, redo = "r<" causes redo command (which is also called by ENTER) to always go in the main line of the moves tree (the default behavior is going through the last alternative line you were in).

Under this section is configured database used for analyze's results.

player

player = 

Player name (for example your nickname you use to play online).

dbname

dbname = data/explorer/

Directory where to save (sqlite) database data. You need to have writte access to this directory.

namespaces1.1.0

namespaces = primary

Namespace(s) used by explorer from which are selected games. You can use * for all existsing namespaces.

Under this section is configured database used for games and moves explorer.

You can configure the same options as under [database] section.

if no [explorer] section is configured, games and moves explorers use [database] section.