LM 39610e145d feat(config): a more expressive bindings system (#666)
## 📺 PR Description

**IMPORTANT** Due to the nature of the changes this is a backwards
incompatible change

This PR reworks the already existing Action -> Bindings system in to a
more scalable system using
- Keys -> Actions
- Events -> Actions

With the new system a key or event can execute one or more actions
sequentially, for example

```toml
[keybindings]
# Zen Mode
"f1" = ["toggle_preview", "toggle_status_bar"]
```

Exposes input edit actions that we previously hard-coded

## Checklist

<!-- a quick pass through the following items to make sure you haven't
forgotten anything -->

- [x] 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
2025-07-23 21:17:42 +02:00
2025-07-18 01:09:42 +02:00
2025-03-18 02:21:24 +01:00
2025-07-18 02:35:03 +02:00
2025-07-18 02:35:03 +02:00
2025-07-13 01:49:12 +02:00
2025-07-19 21:32:39 +02:00


A cross-platform, fast and extensible general purpose fuzzy finder for the terminal.

GitHub Release docs.rs GitHub branch check runs GitHub License Discord

tv's files channel

About

Television is a cross-platform, fast and extensible fuzzy finder for the terminal.

It integrates with your shell and lets you quickly search through any kind of data source (files, git repositories, environment variables, docker images, you name it) using a fuzzy matching algorithm and is designed to be extensible.

It is inspired by the neovim telescope plugin and leverages tokio and the nucleo matcher used by the helix editor to ensure optimal performance.

Installation

See installation docs.

TL;DR

Create a channel: ~/.config/television/cable/files.toml

[metadata]
name = "files"
description = "A channel to select files and directories"
requirements = ["fd", "bat"]

[source]
command = "fd -t f"

[preview]
command = "bat -n --color=always '{}'"
env = { BAT_THEME = "Catppuccin Mocha" }

[ui]
preview_panel = { "size" = 70, "scrollbar" = true }

[keybindings]
shortcut = "f1"

Start searching:

tv files

tv files

Switch channels using the remote control and pick from a list of community-maintained channels which you can install with tv update-channels:

tv remote

See the channels docs for more info on how to set these up.

Usage

tv  # default channel

tv [channel]  # e.g. `tv files`, `tv env`, `tv git-repos`, etc.

# pipe the output of your program into tv
my_program | tv

fd -t f . | tv --preview 'bat -n --color=always {}'

# or build your own channel on the fly
tv --source-command 'fd -t f .' --preview-command 'bat -n --color=always {}' --preview-size 70

Tip

🐚 Television has builtin shell integration. More info here.

Credits

This project was inspired by the awesome work done by the telescope neovim plugin.

It also leverages the great helix editor's nucleo fuzzy matching library, the tokio async runtime as well as the formidable ratatui library.

Description
No description provided
Readme MIT
Languages
Rust 95.2%
Shell 1.7%
TypeScript 1.2%
CSS 0.7%
Just 0.5%
Other 0.7%