Skip to main content

Configuration

TV uses a single configuration file written in TOML format to manage its core settings.

User configuration

Locations where television expects the user configuration file to be located for each platform:

PlatformValue
Linux$HOME/.config/television/config.toml
macOS$HOME/.config/television/config.toml
Windows%LocalAppData%\television\config

Or, if you'd rather use the XDG Base Directory Specification, tv will look for the configuration file in $XDG_CONFIG_HOME/television/config.toml if the environment variable is set.

Default configuration file

latest default config file: config.toml

Option reference

General Settings

OptionTypeDefaultDescription
tick_rateinteger50Application tick rate in milliseconds. Controls how frequently the UI updates.
default_channelstring"files"The default channel to use when no channel is specified on the command line.
history_sizeinteger200Maximum number of entries to keep in the search history. Set to 0 to disable history functionality.
global_historybooleanfalseWhen true, history navigation shows entries from all channels. When false, history is scoped to the current channel.

UI Configuration

Top-level UI settings under the [ui] section:

OptionTypeDefaultDescription
ui_scaleinteger (0-100)100Percentage of terminal space to allocate for the Television UI.
orientationstring"landscape"UI orientation. Valid values: "landscape", "portrait".
themestring"default"Theme name to use for the UI. See Available Themes below.

Available Themes

Built-in themes: default, television, gruvbox-dark, gruvbox-light, catppuccin, nord-dark, solarized-dark, solarized-light, dracula, monokai, onedark, tokyonight.

You can also create custom themes by placing them in $CONFIG_DIR/television/themes/ (see themes for details).

UI Components

Input Bar ([ui.input_bar])

OptionTypeDefaultDescription
positionstring"top"Position of the input bar. Valid values: "top", "bottom".
promptstring">"The input prompt string displayed before user input.
headerstringnullOptional header text displayed above the input bar.
border_typestring"rounded"Border style. Valid values: "none", "plain", "rounded", "thick".
paddingobject{left: 0, right: 0, top: 0, bottom: 0}Padding around the input bar.

Status Bar ([ui.status_bar])

OptionTypeDefaultDescription
separator_openstring""Opening character for status bar separators.
separator_closestring""Closing character for status bar separators.
hiddenbooleanfalseWhether to hide the status bar by default.

Results Panel ([ui.results_panel])

OptionTypeDefaultDescription
border_typestring"rounded"Border style. Valid values: "none", "plain", "rounded", "thick".
paddingobject{left: 0, right: 0, top: 0, bottom: 0}Padding around the results panel.

Preview Panel ([ui.preview_panel])

OptionTypeDefaultDescription
sizeinteger (0-100)50Preview panel size as percentage of screen width (landscape) or height (portrait).
headerstringnullOptional header template for the preview panel.
footerstringnullOptional footer template for the preview panel.
scrollbarbooleantrueWhether to show a scrollbar in the preview panel.
border_typestring"rounded"Border style. Valid values: "none", "plain", "rounded", "thick".
paddingobject{left: 0, right: 0, top: 0, bottom: 0}Padding around the preview panel.
hiddenbooleanfalseWhether to hide the preview panel by default.

Help Panel ([ui.help_panel])

OptionTypeDefaultDescription
show_categoriesbooleantrueWhether to split the help panel by categories.
hiddenbooleantrueWhether to hide the help panel by default.
disabledbooleanfalseWhether to completely disable the help panel.

Remote Control ([ui.remote_control])

OptionTypeDefaultDescription
show_channel_descriptionsbooleantrueWhether to show channel descriptions in remote control mode.
sort_alphabeticallybooleantrueWhether to sort channels alphabetically in remote control mode.
disabledbooleanfalseWhether to disable the remote control feature.

Theme Overrides ([ui.theme_overrides])

Override specific colors from the selected theme without creating a full theme file. Colors can be specified as ANSI color names (e.g., "red", "bright-blue") or hex values (e.g., "#ff0000").

Available ANSI colors: black, red, green, yellow, blue, magenta, cyan, white, bright-black, bright-red, bright-green, bright-yellow, bright-blue, bright-magenta, bright-cyan, bright-white.

OptionDescription
backgroundBackground color
border_fgBorder foreground color
text_fgGeneral text foreground color
dimmed_text_fgDimmed text foreground color
input_text_fgInput text foreground color
result_count_fgResult count foreground color
result_name_fgResult name foreground color
result_line_number_fgResult line number foreground color
result_value_fgResult value foreground color
selection_bgSelection background color
selection_fgSelection foreground color
match_fgMatch highlight foreground color
preview_title_fgPreview title foreground color
channel_mode_fgChannel mode indicator foreground color
channel_mode_bgChannel mode indicator background color
remote_control_mode_fgRemote control mode indicator foreground color
remote_control_mode_bgRemote control mode indicator background color

Keybindings ([keybindings])

Map keyboard keys to actions. Keys can be specified as:

  • Single characters: a, b, 1, etc.
  • Special keys: enter, esc, tab, backtab, space, backspace, delete, home, end, pageup, pagedown, up, down, left, right
  • Control keys: ctrl-a, ctrl-b, ctrl-c, etc.
  • Function keys: f1, f2, ..., f12

Available Actions:

ActionDescription
delete_prev_charDelete the character before the cursor
delete_prev_wordDelete the previous word
delete_next_charDelete the character after the cursor
delete_lineDelete the current line
go_to_prev_charMove cursor to previous character
go_to_next_charMove cursor to next character
go_to_input_startMove cursor to start of input
go_to_input_endMove cursor to end of input
toggle_selection_downToggle selection and move down
toggle_selection_upToggle selection and move up
confirm_selectionConfirm current selection
select_next_entrySelect next entry in results
select_prev_entrySelect previous entry in results
select_next_pageSelect next page of results
select_prev_pageSelect previous page of results
copy_entry_to_clipboardCopy selected entry to clipboard
scroll_preview_upScroll preview up by one line
scroll_preview_downScroll preview down by one line
scroll_preview_half_page_upScroll preview up by half page
scroll_preview_half_page_downScroll preview down by half page
quitQuit the application
toggle_remote_controlToggle remote control mode
toggle_helpToggle help panel
toggle_status_barToggle status bar visibility
toggle_previewToggle preview panel visibility
toggle_layoutSwitch between landscape and portrait
cycle_sourcesCycle through available source commands
reload_sourceReload the current source
select_prev_historyNavigate to previous history entry
select_next_historyNavigate to next history entry

Event Bindings ([events])

Map non-keyboard events to actions:

EventDescription
mouse-scroll-upMouse scroll up event
mouse-scroll-downMouse scroll down event

Shell Integration ([shell_integration])

This section is a very quick overview of the shell integration options. For more details on what this is and how to set it up, see this page.

Configure shell integration for smart command completion:

OptionTypeDefaultDescription
fallback_channelstring"files"Default channel when no command trigger matches

Channel Triggers ([shell_integration.channel_triggers])

Map shell commands to specific channels. Format: channel_name = ["command1", "command2"]

Example:

[shell_integration.channel_triggers]
"git-branch" = ["git checkout", "git branch"]
"files" = ["cat", "less", "vim"]

Shell Integration Keybindings ([shell_integration.keybindings])

OptionTypeDefaultDescription
smart_autocompletestring"ctrl-t"Keybinding to trigger smart autocomplete in shell
command_historystring"ctrl-r"Keybinding to trigger command history search