# CONFIGURATION FILE LOCATION ON YOUR SYSTEM: # ------------------------------------------- # Defaults: # --------- # Linux: `$HOME/.config/television/config.toml` # macOS: `$HOME/.config/television/config.toml` # Windows: `%LocalAppData%\television\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 # A list of builtin themes can be found in the `themes` directory of the television # repository. You may also create your own theme by creating a new file in a `themes` # directory in your configuration directory (see the `config.toml` location above). theme = "default" # Feature-specific configurations # Each feature can have its own configuration section [ui.input_bar] # Where to place the input bar in the UI (top or bottom) position = "top" # The input prompt string (defaults to ">" if not specified) prompt = ">" # header = "{}" # padding = {"left": 0, "right": 0, "top": 0, "bottom": 0} border_type = "rounded" # https://docs.rs/ratatui/latest/ratatui/widgets/block/enum.BorderType.html#variants [ui.status_bar] # Status bar separators (bubble): #separator_open = "" #separator_close = "" # Status bar separators (box): separator_open = "" separator_close = "" hidden = false [ui.results_panel] border_type = "rounded" # padding = {"left": 0, "right": 0, "top": 0, "bottom": 0} [ui.preview_panel] # Preview panel size (percentage of screen width/height) size = 50 #header = "" #footer = "" scrollbar = true border_type = "rounded" # padding = {"left": 0, "right": 0, "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 = "toggle_help" 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 = "go_to_input_end" # 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 ). # E.g. typing `git checkout ` 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 : # `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 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"