mirror of
https://github.com/prdlk/television.git
synced 2026-11-02 13:12:51 +00:00
257 lines
7.4 KiB
TOML
257 lines
7.4 KiB
TOML
# CONFIGURATION FILE LOCATION ON YOUR SYSTEM:
|
||
# -------------------------------------------
|
||
# Defaults:
|
||
# ---------
|
||
# Linux: `$HOME/.config/television/config.toml`
|
||
# macOS: `$HOME/.config/television/config.toml`
|
||
# Windows: `%LocalAppData%\television\config\config.toml`
|
||
#
|
||
# XDG dirs:
|
||
# ---------
|
||
# You may use XDG_CONFIG_HOME if set on your system.
|
||
# In that case, television will expect the configuration file to be in:
|
||
# `$XDG_CONFIG_HOME/television/config.toml`
|
||
#
|
||
|
||
# General settings
|
||
# ----------------------------------------------------------------------------
|
||
tick_rate = 50
|
||
default_channel = "files"
|
||
# Shell settings
|
||
# --------------
|
||
# Default shell used for executing commands (source, preview, actions).
|
||
# Options: bash, zsh, fish, powershell, cmd, nu
|
||
# If not specified, the shell is detected from the environment ($SHELL on Unix).
|
||
# Channel-specific shell settings override this global setting.
|
||
# shell = "bash"
|
||
# History settings
|
||
# ---------------
|
||
# Maximum number of entries to keep in the global history (default: 100)
|
||
# The history tracks search queries across all channels and sessions
|
||
# Set to 0 to disable history functionality entirely
|
||
history_size = 200
|
||
# Whether to use global history (default: false)
|
||
# When true: history navigation shows entries from all channels
|
||
# When false: history navigation is scoped to the current channel
|
||
global_history = false
|
||
|
||
[ui]
|
||
# How much space to allocate for the UI (in percentage of the screen)
|
||
# ┌─────────────────────────┐
|
||
# │ Terminal screen │
|
||
# │ ┌───────────────────┐ │
|
||
# │ │ │ │
|
||
# │ │ Television UI │ │
|
||
# │ │ │ │
|
||
# │ └───────────────────┘ │
|
||
# │ │
|
||
# └─────────────────────────┘
|
||
ui_scale = 100
|
||
# What orientation should tv be (landscape or portrait)
|
||
orientation = "landscape"
|
||
# The theme to use for the UI: themes/cyberdream-transparent.toml in this
|
||
# config dir (a builtin theme shadows a user theme of the same name).
|
||
theme = "cyberdream-transparent"
|
||
|
||
# Minimal UI: no borders, no status bar, no scrollbar — padding alone
|
||
# separates the panels. tv 0.15 has no config key for inline
|
||
# mode (--inline / --height are CLI-only), so every call site in the shells,
|
||
# pj and the cables passes --inline. A channel that sets its own
|
||
# [ui.preview_panel] resets these fields to tv's defaults (rounded border),
|
||
# so cables leave that table alone.
|
||
[ui.input_bar]
|
||
# Where to place the input bar in the UI (top or bottom)
|
||
position = "top"
|
||
prompt = "❯"
|
||
# header = "{}"
|
||
border_type = "none"
|
||
# a blank row between the query and the results
|
||
padding = { left = 1, right = 1, top = 0, bottom = 1 }
|
||
|
||
[ui.status_bar]
|
||
separator_open = ""
|
||
separator_close = ""
|
||
# f12 toggles it back
|
||
hidden = true
|
||
|
||
[ui.results_panel]
|
||
border_type = "none"
|
||
padding = { left = 1, right = 1, top = 0, bottom = 0 }
|
||
|
||
[ui.preview_panel]
|
||
# Preview panel size (percentage of screen width/height)
|
||
size = 50
|
||
#header = ""
|
||
#footer = ""
|
||
scrollbar = false
|
||
border_type = "none"
|
||
padding = { left = 2, right = 1, top = 0, bottom = 0 }
|
||
hidden = false
|
||
|
||
[ui.help_panel]
|
||
# Whether to split the help panel by categories
|
||
show_categories = true
|
||
hidden = true
|
||
|
||
[ui.remote_control]
|
||
# Whether to show channel descriptions in remote control mode
|
||
show_channel_descriptions = true
|
||
# Whether to sort channels alphabetically
|
||
sort_alphabetically = true
|
||
# disabled = false
|
||
|
||
# Theme color overrides
|
||
# ---------------------
|
||
# You can override specific colors from the selected theme by adding them here.
|
||
# This allows you to customize the appearance without creating a full theme file.
|
||
# Colors can be specified as ANSI color names (e.g., "red", "bright-blue") or
|
||
# as hex values (e.g., "#ff0000", "#1e1e2e").
|
||
#
|
||
# Example overrides:
|
||
# [ui.theme_overrides]
|
||
# background = "#000000"
|
||
# text_fg = "#ffffff"
|
||
# selection_bg = "#444444"
|
||
# match_fg = "#ff0000"
|
||
|
||
# Keybindings and Events
|
||
# ----------------------------------------------------------------------------
|
||
#
|
||
[keybindings]
|
||
# Application control
|
||
# ------------------
|
||
esc = "quit"
|
||
ctrl-c = "quit"
|
||
|
||
# Navigation and selection
|
||
# -----------------------
|
||
down = "select_next_entry"
|
||
ctrl-n = "select_next_entry"
|
||
ctrl-j = "select_next_entry"
|
||
up = "select_prev_entry"
|
||
ctrl-p = "select_prev_entry"
|
||
ctrl-k = "select_prev_entry"
|
||
|
||
# History navigation
|
||
# -----------------
|
||
ctrl-up = "select_prev_history"
|
||
ctrl-down = "select_next_history"
|
||
|
||
# Multi-selection
|
||
# --------------
|
||
tab = "toggle_selection_down"
|
||
backtab = "toggle_selection_up"
|
||
enter = "confirm_selection"
|
||
|
||
# Preview panel control
|
||
# --------------------
|
||
pagedown = "scroll_preview_half_page_down"
|
||
pageup = "scroll_preview_half_page_up"
|
||
ctrl-f = "cycle_previews"
|
||
|
||
# Data operations
|
||
# --------------
|
||
ctrl-y = "copy_entry_to_clipboard"
|
||
ctrl-r = "reload_source"
|
||
ctrl-s = "cycle_sources"
|
||
|
||
# UI Features
|
||
# ----------
|
||
ctrl-t = "toggle_remote_control"
|
||
ctrl-x = "toggle_action_picker"
|
||
ctrl-o = "toggle_preview"
|
||
# ctrl-h/ctrl-e run the current channel's actions (files: goto_parent_dir,
|
||
# edit in nvim — see cable/files.toml); `end` still jumps to input end.
|
||
ctrl-h = "actions:goto_parent_dir"
|
||
f12 = "toggle_status_bar"
|
||
ctrl-l = "toggle_layout"
|
||
|
||
# Input field actions
|
||
# ----------------------------------------
|
||
backspace = "delete_prev_char"
|
||
ctrl-w = "delete_prev_word"
|
||
ctrl-u = "delete_line"
|
||
delete = "delete_next_char"
|
||
left = "go_to_prev_char"
|
||
right = "go_to_next_char"
|
||
home = "go_to_input_start"
|
||
ctrl-a = "go_to_input_start"
|
||
end = "go_to_input_end"
|
||
ctrl-e = "actions:edit"
|
||
|
||
# Shell integration
|
||
# ----------------------------------------------------------------------------
|
||
#
|
||
# The shell integration feature allows you to use television as a picker for
|
||
# your shell commands (as well as your shell history with <CTRL-R>).
|
||
# E.g. typing `git checkout <CTRL-T>` will open television with a list of
|
||
# branches to choose from.
|
||
|
||
[shell_integration]
|
||
# This specifies the default fallback channel if no other channel is matched.
|
||
fallback_channel = "files"
|
||
|
||
[shell_integration.channel_triggers]
|
||
# Add your channel triggers here. Each key is a channel that will be triggered
|
||
# by the corresponding commands.
|
||
# Example: say you want the following commands to trigger the following channels
|
||
# when pressing <CTRL-T>:
|
||
# `git checkout` should trigger the `git-branches` channel
|
||
# `ls` should trigger the `dirs` channel
|
||
# `cat` and `cp` should trigger the `files` channel
|
||
#
|
||
# You would add the following to your configuration file:
|
||
# ```
|
||
# [shell_integration.channel_triggers]
|
||
# "git-branches" = ["git checkout"]
|
||
# "dirs" = ["ls"]
|
||
# "files" = ["cat", "cp"]
|
||
# ```
|
||
"alias" = ["alias", "unalias"]
|
||
"env" = ["export", "unset"]
|
||
"dirs" = ["cd", "ls", "rmdir", "z"]
|
||
"files" = [
|
||
"cat",
|
||
"less",
|
||
"head",
|
||
"tail",
|
||
"vim",
|
||
"nano",
|
||
"bat",
|
||
"cp",
|
||
"mv",
|
||
"rm",
|
||
"touch",
|
||
"chmod",
|
||
"chown",
|
||
"ln",
|
||
"tar",
|
||
"zip",
|
||
"unzip",
|
||
"gzip",
|
||
"gunzip",
|
||
"xz",
|
||
]
|
||
"git-diff" = ["git add", "git restore"]
|
||
"git-branch" = [
|
||
"git checkout",
|
||
"git switch",
|
||
"git branch",
|
||
"git merge",
|
||
"git rebase",
|
||
"git pull",
|
||
"git push",
|
||
]
|
||
"git-log" = ["git log", "git show"]
|
||
"docker-images" = ["docker run"]
|
||
"git-repos" = ["nvim", "code", "hx", "git clone"]
|
||
|
||
|
||
[shell_integration.keybindings]
|
||
# controls which key binding should trigger tv
|
||
# for shell autocomplete
|
||
"smart_autocomplete" = "ctrl-t"
|
||
# controls which keybinding should trigger tv
|
||
# for command history
|
||
"command_history" = "ctrl-r"
|