553 Commits

Author SHA1 Message Date
alexandre pasmantier
f1c68167ea chore: bump to 0.12.0 0.12.0 2025-07-07 18:21:18 +02:00
alexandre pasmantier
0112b40df3 docs: update installation docs 2025-07-07 18:01:57 +02:00
Alex Pasmantier
e5654fcdde docs: add docusaurus website (#597)
credits: @kapobajza
2025-07-07 17:56:30 +02:00
alexandre pasmantier
e797aba7c1 docs: reorganize docs 2025-07-07 16:29:20 +02:00
Alex Pasmantier
106004de94 docs: architecture (#596)
@lalvarezt experimented with ai based on the starting docs you wrote
[here](https://github.com/alexpasmantier/television/pull/595) to try and
add mermaid diagrams etc.

Ended up with this which I'm quite honestly positively surprised with.

wdyt?
2025-07-07 15:26:50 +02:00
github-actions[bot]
825e974363
docs(cable): update channel documentation (auto) (#594)
This PR was created by a GitHub Action to update the channel
documentation.

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
2025-07-06 20:20:16 +02:00
github-actions[bot]
185f7890ac docs(cable): update channel documentation (auto) (#593)
This PR was created by a GitHub Action to update the channel
documentation.

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
2025-07-06 20:18:10 +02:00
alexandre pasmantier
8bdebd382e docs(channels): autogenerate channel documentation + CI action 2025-07-06 20:02:58 +02:00
github-actions[bot]
f58e46c40a
chore(changelog): update changelog (auto) (#591)
This PR was created by a GitHub Action to update the changelog.

Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
2025-07-06 18:37:03 +02:00
Kacy Stocks
17439dace5
fix(channels): quote bat arguments
Adding `'` to bat to prevent errors in preview for Unix cable dotfiles
and files configurations.
2025-07-06 18:06:57 +02:00
Alex Pasmantier
1d33c93910 docs: add readme banner 2025-07-06 17:36:04 +02:00
alexandre pasmantier
3ac6c76233 docs: update readme 2025-07-06 17:00:56 +02:00
LM
dde319359f
fix(tui): fixed shell completion widget not rendering, add poc for fish (#588)
solves #586

---------

Co-authored-by: alexandre pasmantier <alex.pasmant@gmail.com>
2025-07-06 16:13:39 +02:00
alexandre pasmantier
1c5810fe75 docs: add assets + update readme image 2025-07-06 01:56:27 +02:00
alexandre pasmantier
d9d6554697 docs: migrate some of the wiki's content to the docs/ folder 2025-07-06 01:50:37 +02:00
alexandre pasmantier
9364b3eb15 docs: some cleaning and reorganizing 2025-07-06 01:31:34 +02:00
alexandre pasmantier
f60b492383 test(cli): add test that validates piping tv is working as expected 2025-07-04 19:50:58 +02:00
Alex Pasmantier
8fd91633e2
refactor: more stable behavior for --inline, --width and --height (#589)
Fixes #587
2025-07-04 13:07:26 +02:00
alexandre pasmantier
d82bf7226b refactor: extract overlay tui logic into separate function and call it on resize events 2025-07-03 12:27:59 +02:00
LM
ccc12e2644
feat(tui): add special testing conditions for overlay testing (#585)
the issue was related to the starting row. And this is the same reason
we cannot test --inline, in the test env there's no way to calculate the
amount of empty lines (or I don't see it). But at least --height and
--width are testable

---------

Co-authored-by: alexandre pasmantier <alex.pasmant@gmail.com>
2025-07-03 12:07:08 +02:00
LM
4faab403d2
refactor: QOL improvements on channels and CLI override logic (#584)
- Improved determine channel logic, it will make easier to maintain
moving forward
- Fixed hint logic for preview, it had issues for stdin and ad-hoc
channels
- Override logic for CLI UI elements was not handled consistently
- Added few more tests
2025-07-02 14:08:15 +02:00
LM
4ed48ccdad
feat(ui): support for non-fullscreen UI (#578)
fixes #575
2025-07-01 23:24:00 +02:00
alexandre pasmantier
0f8a585c85 fix(preview): default to no offset when offset template formatting fails 2025-07-01 22:14:35 +02:00
alexandre pasmantier
429bfaeb2f chore: remove unused serde renames 2025-07-01 19:02:20 +02:00
Alex Pasmantier
dc75e80fb9
fix(ui): avoid glitches caused by programs outputting control sequences (#579)
Fixes #561
2025-07-01 15:39:56 +02:00
LM
45139457a1
feat: add global/channel input history (#573)
sometimes I want to tweak the previous search, or just run it again.
this solves that problem

---------

Co-authored-by: alexandre pasmantier <alex.pasmant@gmail.com>
2025-07-01 12:49:01 +02:00
dependabot[bot]
e6008350d0
chore(deps): bump crazy-max/ghaction-import-gpg from 5 to 6 (#576) 2025-07-01 08:48:38 +02:00
kapobajza
c34fa57312
feat(binary): host our own apt repo (#568)
This PR solves part of
https://github.com/alexpasmantier/television/issues/246, since hosting
our own apt repo is just the first step.

Right now it's a draft, because I put the CD code inside of the
[.github/workflows/static.yml](98a3d7b854/.github/workflows/static.yml)
file and this, most-likely, doesn't belong there. Where exactly to put
it will need to be discussed, but the requirements are:
- to start executing this code after we generate the `.deb` binary
- and to deploy the static GH pages content after we've executed this
code

I've deployed a test version of the `.deb` package to my GH pages and
you can actually already install `television` via `apt` like this:

```sh
# download the repository public key and put it in the trusted directory
curl -sS https://kapobajza.github.io/television/apt/repository-key.asc | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/television.gpg

# put the repository download link inside the apt sources list
echo "deb https://kapobajza.github.io/television/apt stable main" | sudo tee /etc/apt/sources.list.d/television.list

sudo apt update

# install the package 🚀 
sudo apt install television
```

---------

Co-authored-by: Kapobajza <kapobajza@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Alex Pasmantier <47638216+alexpasmantier@users.noreply.github.com>
Co-authored-by: alexandre pasmantier <alex.pasmant@gmail.com>
2025-06-29 23:20:43 +02:00
alexandre pasmantier
292c521205 refactor: use super for linux and windows and cmd for macos 2025-06-29 17:30:58 +02:00
domaschh
9a80919f66 fix(keybindings): add cmd as an option for modifrs 2025-06-29 17:30:58 +02:00
alexandre pasmantier
639caa1a30 feat(stdin): accept various entry separator characters 2025-06-29 17:16:23 +02:00
alexandre pasmantier
07556eac79 fix(cli): fix validation rules when reading from stdin 2025-06-29 13:52:54 +02:00
lalvarezt
ca5808affe fix(cli): fix parsing of arguments for autocomplete-prompt 2025-06-29 13:04:14 +02:00
alexandre pasmantier
141d3e7fb9 chore: update dependencies 2025-06-28 18:09:02 +02:00
Alex Pasmantier
f52d4ef524 docs: update README 2025-06-28 18:09:02 +02:00
alexandre pasmantier
c25a5bd75f docs: update readme and add new format docs 2025-06-28 16:59:57 +02:00
Domasch
090d71aff0 fix(cli): using --exact now works on the --input text aswell (#566) 2025-06-28 16:59:57 +02:00
alexandre pasmantier
d429a9a6ee fix(matcher): better handling of reloading and cycling through sources 2025-06-28 16:59:57 +02:00
Alex Pasmantier
e5a13ef8a1 fix: reset picker selection when cycling through sources 2025-06-28 16:59:57 +02:00
Alex Pasmantier
7b40e769ae feat(cable): migrate windows channels (#567) 2025-06-28 16:59:57 +02:00
LM
42e2728269 test(cli): new cli test suite (#564)
new set of test that cover the overall functionality of the cli

---------

Co-authored-by: alexandre pasmantier <alex.pasmant@gmail.com>
2025-06-28 16:59:57 +02:00
LM
23f52d4533 feat(ui): Optional scrollbar and mouse support for the preview panel (#563)
cleaned up keybinding section from config

@alexpasmantier you had this code before, perhaps there was a reason for
it?

```rust
        if cfg!(not(windows)) {
            execute!(buffered_stderr, DisableMouseCapture)?;
        }
```
2025-06-28 16:59:52 +02:00
alexandre pasmantier
94e34c1668 fix(os): no more panicking on cwd-related errors
Display a custom message instead and exit cleanly.

Fixes https://github.com/alexpasmantier/television/issues/552
2025-06-28 16:56:09 +02:00
LM
58d90c6d03 refactor(ui): feature based UI (#562)
- Migrate to a feature based UI
- Introduces television/features.rs with a flags-based Features type
(PREVIEW_PANEL, HELP_PANEL, STATUS_BAR, REMOTE_CONTROL).
- Per-feature configuration sections: [ui.preview_panel],
[ui.status_bar], [ui.remote_control], [ui.help_panel]
- Rename Keybinding panel ➜ Help panel
- CLI & housekeeping
  - new CLI toggle --no-status-bar, updated docs and man page
  - import clean up
2025-06-28 16:56:09 +02:00
LM
ad4e254ae6 feat(ui): new keybindings panel and status bar (#559)
Add a new keybinding manager (à la which-key helix style)

it adapts to the current mode

channel mode

![image](https://github.com/user-attachments/assets/d1748d93-d62b-4377-a4cd-9825318300e0)

remote mode

![image](https://github.com/user-attachments/assets/fa6ab776-a9bd-421c-ae75-a0b6013401fa)

Add sorting for remote entries

---------

Co-authored-by: Alex Pasmantier <alex.pasmant@gmail.com>
2025-06-28 16:56:09 +02:00
Alex Pasmantier
a81a86f1fd fix(preview): don't panic when the previewer attempts to send to a closed channel 2025-06-28 16:56:09 +02:00
alexandre pasmantier
7067a2ba93 feat(remote): rework remote UI and add description and requirements panels 2025-06-28 16:56:09 +02:00
LM
a2ebbb3557 refactor(cli): add validation logic + docs
This PR contains the following changes
- Add validation logic and dependencies
- Remove deprecated frame rate
- Bump string_pipeline to 0.12.0 (solves debug syntax from templates)
- Document cli functionality (markdown and docstrings)

---------

Co-authored-by: alexandre pasmantier <alex.pasmant@gmail.com>
2025-06-28 16:56:09 +02:00
alexandre pasmantier
601580953a docs(tests): simple documentation for the PtyTester 2025-06-28 16:56:09 +02:00
alexandre pasmantier
a59aab67a9 test: add integration test for --watch 2025-06-28 16:56:09 +02:00