Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

layout.toml

Defines window positions, sizes, and properties.

Basic Structure

terminal_width = 120
terminal_height = 40

[[windows]]
name = "main"
widget_type = "text"
row = 0
col = 0
rows = 37
cols = 120

Window Properties

Required

PropertyTypeDescription
namestringUnique identifier
widget_typestringWidget type (see Widgets)
rowintegerTop row position (0 = top)
colintegerLeft column position (0 = left)
rowsintegerHeight in rows
colsintegerWidth in columns

Optional

PropertyTypeDefaultDescription
visiblebooltrueShow window
show_borderbooltrueDraw border
border_stylestring"single"single, double, rounded, thick
border_colorstring"#808080"Border color
border_sidesstring"all"Which sides: all, none, top, bottom, left, right, or combinations
titlestring-Custom title
show_titlebooltrueShow title in border
buffer_sizeinteger1000Lines to keep (text windows)
background_colorstring-Background color
text_colorstring-Default text color
transparent_backgroundboolfalseSee-through background

Size Constraints

[[windows]]
name = "compass"
widget_type = "compass"
min_rows = 3
max_rows = 5
min_cols = 7
max_cols = 15

Widget-Specific Properties

Text Windows

[[windows]]
name = "main"
widget_type = "text"
streams = ["main"]              # Streams to display
buffer_size = 10000
compact = false                 # Remove blank lines

Tabbed Text

[[windows]]
name = "channels"
widget_type = "tabbedtext"
buffer_size = 5000

[[windows.tabs]]
name = "Speech"
streams = ["speech"]
show_timestamps = true

[[windows.tabs]]
name = "Thoughts"
streams = ["thoughts"]

Progress Bars

[[windows]]
name = "health"
widget_type = "progress"
stat = "health"                 # health, mana, stamina, spirit, encumbrance
bar_color = "#00FF00"
show_percentage = true

Countdowns

[[windows]]
name = "roundtime"
widget_type = "countdown"
id = "roundtime"                # roundtime, casttime, stuntime

Room Window

[[windows]]
name = "room"
widget_type = "room"
show_desc = true
show_objs = true
show_players = true
show_exits = true
show_name = true

Example Layout

terminal_width = 160
terminal_height = 50

# Main game text - left side
[[windows]]
name = "main"
widget_type = "text"
streams = ["main"]
row = 0
col = 0
rows = 45
cols = 100
buffer_size = 10000

# Channels - right side
[[windows]]
name = "channels"
widget_type = "tabbedtext"
row = 0
col = 100
rows = 30
cols = 60
buffer_size = 2000

[[windows.tabs]]
name = "Speech"
streams = ["speech"]

[[windows.tabs]]
name = "Thoughts"
streams = ["thoughts"]

# Status bars
[[windows]]
name = "health"
widget_type = "progress"
stat = "health"
row = 30
col = 100
rows = 1
cols = 60

# Command input - bottom
[[windows]]
name = "command_input"
widget_type = "command_input"
row = 47
col = 0
rows = 3
cols = 160

Hidden Windows

Set visible = false to define windows that can be shown later via the menu:

[[windows]]
name = "society"
widget_type = "text"
streams = ["society"]
visible = false
# ... position and size still required

Show via: Menu → Windows → Add Window → Text Windows → Society