## 📺 PR Description
update `init` shell generation to include autocompleting options for
`tv` itself.
<img width="817" height="497" alt="image"
src="https://github.com/user-attachments/assets/e65bc0aa-410e-43ef-86a5-2d6e01c6c1df"
/>
<img width="837" height="186" alt="image"
src="https://github.com/user-attachments/assets/6d9665f6-0664-4e6e-bce3-e6a970c79524"
/>
I've only tested this on macOS (arm64) with `zsh` and `bash` so far:
<img width="893" height="349" alt="image"
src="https://github.com/user-attachments/assets/dd66ecec-fee3-4713-a68c-f69e961a4ba6"
/>
## 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)
- [ ] I have added a reasonable amount of documentation to the code
where appropriate
---------
Co-authored-by: Alex Pasmantier <47638216+alexpasmantier@users.noreply.github.com>
## 📺 PR Description
Rework the help panel to show live keybinding source information
(global, channel) instead of hard-coded entries
Before
<img width="511" height="934" alt="image"
src="https://github.com/user-attachments/assets/bea29e07-ec4a-443d-a468-be1e9f28a705"
/>
After
<img width="690" height="1355" alt="image"
src="https://github.com/user-attachments/assets/a930382b-e814-482a-a729-54ef2dc286c4"
/>
## Env
### Command
```bash
RUST_LOG=debug cargo run -q -- --cable-dir ./cable/unix --config-file ./.config/config.toml --show-help-panel --keybindings "f10 = \"toggle_help\"; f9 = \"toggle_status_bar\""
```
### Config file
```toml
[metadata]
name = "files"
description = "A channel to select files and directories"
requirements = ["fd", "bat"]
[source]
command = ["fd -t f", "fd -t f -H"]
[preview]
command = "bat -n --color=always '{}'"
env = { BAT_THEME = "ansi" }
[keybindings]
shortcut = "f1"
f9 = "toggle_preview"
f8 = "quit"
esc = false
```
## 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
## 📺 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>
## 📺 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
Fixes#660
## 📺 PR Description
**This PR adds a cache mechanism for previews that can be set on a
per-channel basis.**
**Typical use case**: your preview is making an expensive call (e.g. API
call, heavily computational, etc.)
This introduces a new `cache` option inside each channel's preview
specification:
```toml
[metadata]
name = "test"
[source]
command = "echo 'test1\\ntest2\\ntest3\\ntest4\\ntest5'"
[preview]
command = "sleep 1 && echo 'Previewing {}'"
cached = true
```
## Checklist
- [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
## 📺 PR Description
<!-- summary of the change + which issue is fixed if applicable. -->
Currently the links on the docs homepage are broken, because when we run
the website locally it uses [just a slash as the `prefix`/`baseUrl`, but
when run as a production build it uses `/television` as the
`baseUrl`](1d6b996c83/website/docusaurus.config.ts (L21)).
So I added a hook that will take the `baseUrl` and append it to the link
you provide. This hook should be used for any relative link that we add
to the app in React (`.tsx`) files.
## 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
- [ ] 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)
- [ ] I have added a reasonable amount of documentation to the code
where appropriate
fixes#653
>
28f58e0641/television/utils/shell/completion.fish (L112)
>
> This line should be
>
> ```
> commandline -t -- (string escape -- "$dir$i")' '
> ```
>
> This is a bug in the fish completion. Bash seems to be fine.
>
> Testing with:
>
> ```
> ❯ fish --version
> fish, version 4.0.2
>
> ❯ mkdir -p "a/with whitespace"
>
> ❯ cd a<ctrl-t>
> ```
>
> Result:
>
> ```
> ❯ cd a/'with whitespace/'
> ```
>
> Expected result:
>
> ```
> ❯ cd 'a/with whitespace/'
> ```
>
> The fix on top gets this result.
## 📺 PR Description
update all file based tests to follow a naming convention in a dedicated
testing folder to prevent clashes. Make sure all needed files are in
place before running the test
## 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
- [ ] 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
## 📺 PR Description
Added `aws-buckets` and `aws-instances` channels.
## Checklist
- [x] my commits **and PR title** follow the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format
- [ ] 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)
- [ ] I have added a reasonable amount of documentation to the code
where appropriate
---------
Co-authored-by: Leonardo Vencovsky <leoven@Leonardos-MacBook-Pro.local>
Co-authored-by: alexandre pasmantier <alex.pasmant@gmail.com>
## 📺 PR Description
Fixes#628
## Checklist
<!-- a quick pass through the following items to make sure you haven't
forgotten anything -->
- [ ] my commits **and PR title** follow the [conventional
commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) format
- [ ] 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)
- [ ] I have added a reasonable amount of documentation to the code
where appropriate
## 📺 PR Description
Fixes#631
Added constraints to make either mitigate or remove "flakiness" for some
tests
## 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
- [ ] 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)
- [ ] I have added a reasonable amount of documentation to the code
where appropriate
`meta.mainProgram` must be set otherwise `lib.getExe` assumes that the
package name is `television` and home manager shell integrations are
broken
## 📺 PR Description
<!-- summary of the change + which issue is fixed if applicable. -->
## 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
- [ ] 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)
- [ ] I have added a reasonable amount of documentation to the code
where appropriate
## 📺 PR Description
Fixes#627
stdin and adhoc channels now inherit from global config making them
consistent with the rest
## 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
- [ ] 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
Fixes#560
### Add theme color overrides in configuration file
Link to #560
### Problem
Currently, customizing television's appearance to match personal style
requires users to rebuild from source code to modify theme colors. This
creates a significant barrier for users who want to personalize their
experience without dealing with compilation and development setup.
Users who want to adjust colors for better readability, match their
terminal theme, or create custom color schemes must either:
- Modify theme files in the source code
- Rebuild the entire application
- Maintain separate theme files
This workflow is not user-friendly and prevents quick experimentation
with different color combinations.
### Solution
Added theme color overrides directly in the configuration file, allowing
users to customize any theme color without rebuilding from source. The
themes/*.toml files now serve as defaults, while the configuration file
provides overrides that take precedence.
### Key features:
- No rebuild required: Customize colors instantly through config
- Easy testing: Try different color combinations without compilation
- Theme flexibility: Mix and match colors from different themes
- Backward compatible: Existing configs continue to work unchanged
- User-friendly: Simple TOML syntax for color customization
### Usage Example
Find your config file location:
```
Default locations:
# Unix: ~/.config/television/config.toml
# Windows: %APPDATA%\television\config.toml
```
Add theme overrides to your config:
```
[ui]
theme = "catppuccin" # or any other theme
[ui.theme_overrides]
background = "#000000" # Pure black background for maximum contrast
text_fg = "#00ff00" # Bright green for main text (high visibility)
selection_bg = "#ff00ff" # Bright magenta for selected items (eye-catching)
selection_fg = "#ffffff" # Pure white text on selected items (high contrast)
match_fg = "#ffff00" # Bright yellow for search matches (stands out)
border_fg = "#00ffff" # Bright cyan for borders (neon effect)
result_name_fg = "#ff8800" # Bright orange for file names (warm highlight)
result_value_fg = "#ff0080" # Bright pink for values (vibrant accent)
```
Test your changes:
```
# Run with your config
./target/release/tv --config-file ~/.config/television/config.toml
```
<img width="1420" alt="Screenshot 2025-07-08 at 08 14 42"
src="https://github.com/user-attachments/assets/90563f86-74aa-460a-a7c2-82080be3dc0b"
/>
---------
Co-authored-by: Mohamed-Amine Bousahih <mohamed-aminebousahih@pc-66.home>
Co-authored-by: Mohamed-Amine Bousahih <mohamed-aminebousahih@mohamedminesair.home>