Skip to main content

🔧 Settings

OctoType accepts a configuration file in the TOML format, located in the default configuration folder for your system:

SystemLocation
Linux$XDG_CONFIG_HOME/octotype/config.toml or $HOME/.config/octotype/config.toml
MacOS$HOME/Library/Application Support/com.Mahlquist.OctoType/config.toml
Windows%AppData%\OctoType\config\config.toml

The configuration location can also be specified with the -c <path> flag.

Some official themes can be found in the repo

Default settings​

The default settings looks like so:

sources_dir = "<OCTOTYPE_CONFIG_DIR>/sources"
modes_dir = "<OCTOTYPE_CONFIG_DIR>/modes"
words_per_line = 5
show_ghost_lines = 3
ghost_opacity = [
0.2,
0.5,
0.8,
]
disable_ghost_fade = false

[theme]
term_fg = "<YOUR_TERMINAL_FOREGROUND_COLOR>"
term_bg = "<YOUR_TERMINAL_BACKGROUND_COLOR>"

[theme.spinner]
color = "Yellow"
animation = [
"⣡",
"⣯",
"⣟",
"⥿",
"⢿",
"⣝",
"⣽",
"⣞",
]
timing_millis = 250

[theme.text]
success = "#A6E3A1"
warning = "#F9E2AF"
error = "#F38BA8"
highlight = "#89B4FA"

[theme.plot]
raw_wpm = "#CDD6F4"
actual_wpm = "#F9E2AF"
accuracy = "#CDD6F4"
errors = "#F38BA8"
scatter_symbol = "Dot"
line_symbol = "HalfBlock"

[theme.cursor]
color = "White"
text = "Black"

[statistic]
save_enabled = true
history_limit = 10

Options and Types​

KeyTypeDescription
sources_dirStringOverwrites the path of the sources directory
modes_dirStringOverwrites the path of the modes directory
words_per_lineintHow many words should be displayed per line
show_ghost_linesintHow many "ghost lines" should be displayed around the active line
ghost_opacity[float]Overwrite the levels of opacity for each ghost line. Must have a length matching show_ghost_lines
disable_ghost_fadeboolSet this to true if you want the "scrolling" behaviour of ghost lines, but don't like the fading colors
theme.term_fgColorThe foreground of your terminal (Queried directly from you terminal or else it defaults to White)
theme.term_bgColorThe background of your terminal (Queried directly from you terminal or else it defaults to Black)
theme.spinner.colorColorSets the color of the loading-screen spinner
theme.spinner.animation[String]Sets the animation of the loading-screen spinner
theme.spinner.timing_millisintHow many milliseconds per "frame" of the animation
theme.text.successColorSets the color of success-type text
theme.text.warningColorSets the color of warning-type text
theme.text.errorColorSets the color of error-type text
theme.text.highlightColorSets the color of highlighted text
theme.plot.raw_wpmColorSets the color of the raw_wpm datapoints
theme.plot.actual_wpmColorSets the color of the actual_wpm datapoints
theme.plot.accurracyColorSets the color of the accurracy datapoints
theme.plot.errorsColorSets the color of the error datapoints
theme.plot.scatter_symbolPlotSymbolSets the symbols of scatter-type plots (errors)
theme.plot.line_symbolPlotSymbolSets the symbols of line-type plots (wpm, accurracy, etc.)
theme.cursor.colorColorThe color of the cursor when in a session
theme.cursor.textColorThe color of the text under the cursor
statistics.save_enabledbool(Reserved for future use): Wether statistics should save to disk
statistics.history_limitint(Reserved for future use): How many session-statistics can be saved before deleting. 0 = infinite

Colors​

warning

While ANSI colors are supported, OctoType is made for mordern terminals with 24bit color support - Using hex colors is recommended for the best experience possible.

Some known issues regarding ghost-lines can happen, if not using hex colors.

ANSI-Colors may or may not be deprecated in future releases.

Two different types of colors can be supplied: ANSI or Custom which sets a specific color.

ColorTypeDescription
#RRGGBBCustomHex color
<integer>ANSIANSI index
BlackANSI
RedANSI
GreenANSI
YellowANSI
BlueANSI
MagentaANSI
CyanANSI
GrayANSI
DarkGrayANSI
LightRedANSI
LightGreenANSI
LightYellowANSI
LightBlueANSI
LightMagentaANSI
LightCyanANSI
WhiteANSI

PlotSymbol​

This type determines what symbols are used to display data within the graphs

NameSymbol
Dot•
Block█
HalfBlock█, ▄, and ▀
Braille⠓, ⣇, ⣿, etc.
Bar▄