Configuration
The configuration should be the following paths otherwise Rio will use the default configuration.
MacOS configuration file path is ~/.config/rio/config.toml.
Linux configuration file path is $XDG_CONFIG_HOME/rio/config.toml or ~/.config/rio/config.toml.
Windows configuration file path is %USERPROFILE%\AppData\Local\rio\config.toml or $env:USERPROFILE\AppData\Local\rio\config.toml(PowerShell).
You can also set a custom config path by using the $RIO_CONFIG_HOME env var. It will be used as a replacement
for ~/.config/rio reading configs, themes...
Updates to the configuration file automatically triggers Rio to render the terminal with the new configuration.
Note that all parameters without a header must be at the beginning of the file, otherwise they will be ignored. Example:
[editor]
program = "vi"
args = []
theme = "dracula" # won't work, because it's under the `editor` header
theme = "dracula" # will work
[editor]
program = "vi"
args = []
adaptive-theme
Rio supports adaptive themes that automatically switch between light and dark themes based on the system theme. This feature works on Web, MacOS, and Windows platforms.
[adaptive-theme]
light = "belafonte-day"
dark = "belafonte-night"
When configured, Rio will automatically switch between the specified light and dark themes based on your system's current theme setting.

force-theme
When using adaptive themes, you can override the system theme by forcing Rio to use a specific theme regardless of the system appearance.
force-theme = "dark"
Accepted values: "dark" or "light". When not set, Rio follows the system theme.
You can also toggle the appearance theme at runtime using the ToggleAppearanceTheme key binding action or through the command palette.
colors
Defining colors in the configuration file will not have any effect if you're using a theme.
The default configuration is without a theme.
Example:
[colors]
# Regular colors
background = '#0F0D0E'
black = '#4C4345'
blue = '#006EE6'
cyan = '#88DAF2'
foreground = '#F9F4DA'
green = '#0BA95B'
magenta = '#7B5EA7'
red = '#ED203D'
white = '#F1F1F1'
yellow = '#FCBA28'
# Cursor
cursor = '#F712FF'
vi-cursor = '#12d0ff'
# Navigation
tabs = '#cccccc' # Inactive tab text and border color
tabs-active = '#ffffff' # Active tab text color
bar = '#1b1a1a'
split = '#292527'
# Search
search-match-background = '#44C9F0'
search-match-foreground = '#FFFFFF'
search-focused-match-background = '#E6A003'
search-focused-match-foreground = '#FFFFFF'
# Hints
hint-foreground = '#181818'
hint-background = '#f4bf75'
# Selection`
selection-foreground = '#0F0D0E'
selection-background = '#44C9F0'
# Dim colors
dim-black = '#1C191A'
dim-blue = '#0E91B7'
dim-cyan = '#93D4E7'
dim-foreground = '#ECDC8A'
dim-green = '#098749'
dim-magenta = '#624A87'
dim-red = '#C7102A'
dim-white = '#C1C1C1'
dim-yellow = '#E6A003'
# Light colors
light-black = '#ADA8A0'
light-blue = '#44C9F0'
light-cyan = '#7BE1FF'
light-foreground = '#F2EFE2'
light-green = '#0ED372'
light-magenta = '#9E88BE'
light-red = '#F25E73'
light-white = '#FFFFFF'
light-yellow = '#FDF170'
You can also specify RGBA with hex, for example: #43ff64d9.
confirm-before-quit
Require confirmation before quitting (Default: true).
confirm-before-quit = true
copy-on-select
Automatically copy the selected text to the clipboard when a mouse selection ends. Disabled by default.
This is a top-level option — it must appear before any [section] header in your config file.
copy-on-select = true
cursor
By default, the cursor shape is set to block. You can also choose from other options like underline and beam.
Additionally, you can enable or disable cursor blinking, which is set to false by default.
Shape
Options: 'block', 'underline', 'beam'
[cursor]
shape = 'block'
Blinking
Enable/disable blinking (default: false)
[cursor]
blinking = false
Blinking-interval
Set cursor blinking interval (default: 800, only configurable from 350ms to 1200ms).
[cursor]
blinking-interval = 800
bell
Configure the terminal bell behavior. The bell can be triggered by applications using the BEL control character (ASCII 7).
Visual
Enable or disable the visual bell. When enabled, the screen will flash instead of playing a sound.
Default is false.
[bell]
visual = false