mirror of
https://github.com/alexpasmantier/television.git
synced 2025-07-29 06:11:37 +00:00

## 📺 PR Description this allows changing (or removing) the border styles tv 0.12.3: <img width="773" height="407" alt="image" src="https://github.com/user-attachments/assets/8b74fc2f-7abc-4bb8-b645-c6243f40230c" /> this PR with ```toml [ui.input_bar] border_type = 'none' [ui.results_panel] border_type = 'none' [ui.preview_panel] border_type = 'plain' ``` <img width="778" height="407" alt="image" src="https://github.com/user-attachments/assets/481fd0fa-a90a-4be8-bbe8-6e0ee5b002e3" /> see #638 ## Checklist - [ ] my commits **and PR title** follow the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format - [x] if this is a new feature, I have added tests to consolidate the feature and prevent regressions - [ ] if this is a bug fix, I have added a test that reproduces the bug (if applicable) - [x] I have added a reasonable amount of documentation to the code where appropriate --------- Co-authored-by: alexandre pasmantier <alex.pasmant@gmail.com>
282 lines
8.6 KiB
TOML
282 lines
8.6 KiB
TOML
# CONFIGURATION FILE LOCATION ON YOUR SYSTEM:
|
|
# -------------------------------------------
|
|
# Defaults:
|
|
# ---------
|
|
# Linux: `$HOME/.config/television/config.toml`
|
|
# macOS: `$HOME/.config/television/config.toml`
|
|
# Windows: `%APPDATA%\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"
|
|
|
|
# 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]
|
|
# Whether to use nerd font icons in the UI
|
|
# This option requires a font patched with Nerd Font in order to properly
|
|
# display glyphs (see https://www.nerdfonts.com/ for more information)
|
|
use_nerd_font_icons = false
|
|
# 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"
|
|
|
|
# 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"
|
|
# The default size of the preview panel (in percentage of the screen)
|
|
preview_size = 50
|
|
|
|
# UI Features
|
|
# -------------
|
|
# Each feature can have two states: enabled/disabled and visible/not visible
|
|
# - enabled: controls whether the feature is functional
|
|
# - visible: controls whether the feature is displayed (only works if enabled)
|
|
#
|
|
# You can use the old array format for backward compatibility:
|
|
# features = ["preview_panel", "status_bar", "remote_control"]
|
|
#
|
|
# Or use the new detailed format:
|
|
[ui.features]
|
|
preview_panel = { enabled = true, visible = true }
|
|
help_panel = { enabled = true, visible = false }
|
|
status_bar = { enabled = true, visible = true }
|
|
remote_control = { enabled = true, visible = false }
|
|
|
|
# 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 = "{}"
|
|
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 = ""
|
|
|
|
[ui.results_panel]
|
|
border_type = "rounded"
|
|
|
|
[ui.preview_panel]
|
|
# Preview panel size (percentage of screen width/height)
|
|
size = 50
|
|
#header = "{}"
|
|
#footer = ""
|
|
scrollbar = true
|
|
border_type = "rounded"
|
|
|
|
[ui.remote_control]
|
|
# Whether to show channel descriptions in remote control mode
|
|
show_channel_descriptions = true
|
|
# Whether to sort channels alphabetically
|
|
sort_alphabetically = true
|
|
|
|
|
|
# Keybindings and Events
|
|
# ----------------------------------------------------------------------------
|
|
#
|
|
# NEW CONFIGURATION FORMAT:
|
|
# -------------------------
|
|
# The keybindings are now structured as Key -> Action mappings
|
|
# This provides better discoverability and eliminates configuration complexity
|
|
#
|
|
[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"
|
|
|
|
# Data operations
|
|
# --------------
|
|
ctrl-y = "copy_entry_to_clipboard"
|
|
ctrl-r = "reload_source"
|
|
ctrl-s = "cycle_sources"
|
|
|
|
# UI Features
|
|
# ----------
|
|
ctrl-t = "toggle_remote_control"
|
|
ctrl-o = "toggle_preview"
|
|
ctrl-h = "toggle_help"
|
|
f12 = "toggle_status_bar"
|
|
|
|
# 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"
|
|
|
|
# Event bindings
|
|
# ----------------------------------------------------------------------------
|
|
# Event bindings map non-keyboard events to actions
|
|
# This includes mouse events, resize events, and custom events
|
|
[events]
|
|
# Mouse events
|
|
# -----------
|
|
mouse-scroll-up = "scroll_preview_up"
|
|
mouse-scroll-down = "scroll_preview_down"
|
|
|
|
# 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"]
|
|
"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"
|