99 Commits

Author SHA1 Message Date
alexpasmantier
961ebbba2b chore: bump to 0.10.10 2025-03-18 02:21:24 +01:00
Alexandre Pasmantier
0edf224502
docs(man): add man pages for tv (#397)
![image](https://github.com/user-attachments/assets/8e8fc26e-2a55-4a2e-8b55-fb92cace1a02)
2025-03-18 01:23:02 +01:00
alexpasmantier
f397dd5a70 chore: bump to 0.10.9 2025-03-17 01:59:00 +01:00
github-actions[bot]
d601eb2c02 chore(changelog): update changelog (auto) (#386)
This PR was created by a GitHub Action to update the changelog.

Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>

chore(changelog): update changelog (auto) (#387)

This PR was created by a GitHub Action to update the changelog.

Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>

chore: bump to 0.10.8
2025-03-16 17:21:12 +01:00
alexpasmantier
5a4c9d3296 chore: bump to 0.10.7 2025-03-06 13:55:19 +01:00
Emile Schupbach
3441587d57 feat(preview): add support for image previews (#363)
I initially didn't notice that an image previewer was already
implemented but commented out—still, I wanted to finish mine! :)

It works almost instantly on my side. I tested it in different terminals
and only noticed some slowness in the RustRover-integrated terminal.

So far, I’ve tested it with PNG, JPEG, ICO, GIF, and TIFF formats, and
it works well. In theory, it should support all formats that the image
crate can handle. I included them in the file list but commented out the
ones I haven’t tested yet.

To optimize memory usage, images are resized to a maximum of 128x128
before being cached. I’m not really sure what the best size is, since
the image gets resized again when rendered to fit the preview window.

Let me know if you have any feedback! 🚀

![ferris](https://github.com/user-attachments/assets/8683642d-8662-4baf-8157-8093a5fe0467)

![poke](https://github.com/user-attachments/assets/3b48c7e9-c86e-470e-97a8-992637765fa0)

![street](https://github.com/user-attachments/assets/95b94818-727f-499f-b4ed-19e39e6d0252)

---------

Co-authored-by: Alexandre Pasmantier <47638216+alexpasmantier@users.noreply.github.com>
Co-authored-by: alexpasmantier <alex.pasmant@gmail.com>
2025-03-05 18:02:14 +01:00
Alexandre Pasmantier
63cb976027
refactor(ui): communicate ui state to tv using channels (#369)
The state of the UI is now synchronized with the `Television` struct
using a dedicated channel and is available at `Television.ui_state`.
This removes quite a bit of complexity from the existing code and should
allow for nicer implementations of features that need the UI state to
compute things in the background (typically knowing the target size of
an image you wish to construct in the background, as in #363)

The `UiState` currently only holds the UI layout:
```rs
pub struct UiState {
    pub layout: Layout,
}
```
2025-03-05 01:11:24 +01:00
Alexandre Pasmantier
e2a0fb2047
fix(clipboard): fix issue where clipboard wouldn't work on X11-based environments (#364)
fixes #282 

tested with the following setup:
```
                   -`                    alex@alex-mbp
                  .o+`                   -------------
                 `ooo/                   OS: Arch Linux x86_64
                `+oooo:                  Host: MacBookPro10,2 1.0
               `+oooooo:                 Kernel: 6.13.3-arch1-1
               -+oooooo+:                Uptime: 1 hour, 8 mins
             `/:-:++oooo+:               Packages: 559 (pacman)
            `/++++/+++++++:              Shell: zsh 5.9
           `/++++++++++++++:             Resolution: 2048x1280
          `/+++ooooooooooooo/`           WM: awesome
         ./ooosssso++osssssso+`          Theme: Adwaita [GTK3]
        .oossssso-````/ossssss+`         Icons: Adwaita [GTK3]
       -osssssso.      :ssssssso.        Terminal: tmux
      :osssssss/        osssso+++.       CPU: Intel i5-3230M (4) @ 3.200GHz
     /ossssssss/        +ssssooo/-       GPU: Intel 3rd Gen Core processor Graphics Controller
   `/ossssso+/:-        -:/+osssso+-     Memory: 4180MiB / 7815MiB
  `+sso+:-`                 `.-/+oso:
 `++:.                           `-/+/
 .`                                 `/


```
2025-02-24 21:50:53 +01:00
Alexandre Pasmantier
28f62f138d chore: bump to 0.10.6 2025-02-08 15:34:10 +01:00
Alexandre Pasmantier
5d552d1655 chore: bump to 0.10.5 2025-02-07 20:17:50 +01:00
Alexandre Pasmantier
eaafe40cfb chore: bump to 0.10.4 2025-02-03 00:16:15 +01:00
Alexandre Pasmantier
a6a73c5bb3
refactor(shell): improve shell integration configuration syntax (#334)
Before:
```toml
[shell_integration.commands]
# Add your commands here. Each key is a command that will trigger tv with the
# corresponding channel as value.
# Example: say you want the following prompts to trigger the following channels
# when pressing <CTRL-T>:
#          `git checkout` should trigger the `git-branches` channel
#          `ls`           should trigger the `dirs` channel
#          `cat`          should trigger the `files` channel
#
# You would add the following to your configuration file:
# ```
# [shell_integration.commands]
# "git checkout" = "git-branch"
# "ls" = "dirs"
# "cat" = "files"
# ```

# environment variables
"export" = "env"
"unset" = "env"

# dirs channel
"cd" = "dirs"
"ls" = "dirs"
"rmdir" = "dirs"

# files channel
"cat" = "files"
"less" = "files"
"head" = "files"
"tail" = "files"
"vim" = "files"
"bat" = "files"

# git-diff channel
"git add" = "git-diff"

# git-branch channel
"git checkout" = "git-branch"
"git branch -d" = "git-branch"

# docker-images channel
"docker run" = "docker-images"

# gitrepos channel
"nvim" = "git-repos"

```

After

```toml
[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"]
# ```
"env" = ["export", "unset"]
"dirs" = ["cd", "ls", "rmdir"]
"files" = ["cat", "less", "head", "tail", "vim", "bat"]
"git-diff" = ["git add"]
"git-branch" = ["git checkout", "git branch -d"]
"docker-images" = ["docker run"]
"git-repos" = ["nvim"]
```
2025-02-03 00:03:09 +01:00
Alexandre Pasmantier
6955c5b313
chore: bump to 0.10.3 (#329) 2025-02-01 00:09:02 +01:00
Alexandre Pasmantier
5214dd17d0
refactor(app): buffering actions and events handling to improve overall UI responsiveness (#328) 2025-01-31 23:58:13 +01:00
Alexandre Pasmantier
a03da82c56 chore: bump to 0.10.2 2025-01-26 22:04:00 +01:00
Alex Pasmantier
82f471d0aa
fix(cli): re-enable clap help feature (#315)
Fixes #314
2025-01-26 09:49:53 +01:00
Alexandre Pasmantier
7a54e5a507 chore: bump to 0.10.0 2025-01-25 21:21:08 +01:00
Alex Pasmantier
172ba231ee
perf(async): make overall UI much smoother and snappier (#311) 2025-01-25 21:17:31 +01:00
Alex Pasmantier
51b1b42c74
chore(deps): remove color_eyre and other unneeded features (#309) 2025-01-25 14:29:02 +01:00
Alex Pasmantier
1e8c8dbc96
refactor: simplify configuration and build code + leaner crate (#308) 2025-01-25 13:26:07 +01:00
Alex Pasmantier
3970f65946
chore: flatten workspace into a single crate (#306) 2025-01-25 00:44:34 +01:00
Alex Pasmantier
40c97c9c4c
chore: bump workspace to 0.9.4 (#293) 2025-01-20 12:16:06 +01:00
Alex Pasmantier
8bbebf7e57
fix(syntect): switch back to oniguruma while investigating parsing issues (#292)
Temp fix for #289
2025-01-20 12:09:00 +01:00
Alex Pasmantier
a43ed22666
chore: bump workspace to 0.9.3 (#287) 2025-01-19 20:47:05 +01:00
Alex Pasmantier
a3dc8196aa
perf(preview): add partial preview rendering and buffer preview requests (#285) 2025-01-19 18:16:34 +01:00
Alexandre Pasmantier
1a4dae9bd8 chore: bump to 0.9.2 2025-01-09 23:25:59 +01:00
Alexandre Pasmantier
d00d8e4f84 chore: bump to 0.9.1 2025-01-09 14:28:06 +01:00
Alex Pasmantier
853da49425
chore: bump to 0.9.0 (#249) 2025-01-07 23:29:14 +01:00
Alex Pasmantier
1c00dece94
fix(ansi): catch implicit reset escape sequences (#245)
Fixes #232 

<img width="2549" alt="Screenshot 2025-01-07 at 16 04 15"
src="https://github.com/user-attachments/assets/18be9901-757e-47a4-aa70-89aa7fc75e84"
/>
2025-01-07 16:06:23 +01:00
Alex Pasmantier
0624002f35
perf: use FxHash instead of SipHash where it makes sense (#237) 2025-01-07 02:11:12 +01:00
Alex Pasmantier
263e88beb6
chore(deps): mutualize workspace dependencies (#236) 2025-01-07 01:09:14 +01:00
Alexandre Pasmantier
6536bbf323 chore: bump to 0.8.8 2025-01-06 13:46:41 +01:00
Alex Pasmantier
25adee34d8
chore: bump to 0.8.7 (#217) 2025-01-05 00:32:41 +01:00
Alexandre Pasmantier
df936dd4eb chore: bump to 0.8.6 2025-01-01 12:08:22 +01:00
Alexandre Pasmantier
8cae59256d chore: bump to 0.8.5 2024-12-31 18:54:48 +01:00
Alexandre Pasmantier
430e325567 chore: bump version to 0.8.4 2024-12-31 13:12:23 +01:00
github-actions[bot]
76da8b0a5b chore(changelog): update changelog (auto) (#193)
This PR was created by a GitHub Action to update the changelog.

Co-authored-by: alexpasmantier <47638216+alexpasmantier@users.noreply.github.com>
2024-12-31 00:54:16 +01:00
Alex Pasmantier
53afed28ee
chore: bump workspace to 0.0.16 (#189) 2024-12-30 22:55:22 +01:00
Rui Chen
26036dd0b9
fix: bump version to match with the release (#188)
👋 seeing some version mismatch with the release build. 

relates to https://github.com/Homebrew/homebrew-core/pull/202798

Signed-off-by: Rui Chen <rui@chenrui.dev>
2024-12-30 22:48:24 +01:00
Alex Pasmantier
7434f1476a
chore: bump to 0.8.1 (#176) 2024-12-30 00:57:54 +01:00
Alex Pasmantier
1bc6f12782
chore: bump to 0.8.0 (#165) 2024-12-29 02:07:50 +01:00
Alex Pasmantier
313f833b32
chore(deps): update devicons to 0.6.12 (#162) 2024-12-29 00:25:44 +01:00
Alex Pasmantier
b33c0b9bb5
chore(deps): bump to rustc 1.81 and update cargo deps (#158) 2024-12-28 20:22:28 +01:00
Alex Pasmantier
ee71e4788f
feat(cable): using builtin previewers inside cable channel prototypes (#156) 2024-12-28 19:35:21 +01:00
Alexandre Pasmantier
18c5213e83
feat(channels): new channel for directories and associated transitions (#130) 2024-12-15 18:04:26 +01:00
Alexandre Pasmantier
a8e3ea5f89
chore(version): bump workspace to 0.7.0 (#127) 2024-12-15 14:30:25 +01:00
Alexandre Pasmantier
ea752b13e6
fix(previewers): handle crlf sequences when parsing ansi into ratatui objects (#119) 2024-12-15 00:17:09 +01:00
Bertrand Chardon
c0db566a48
perf: add bench for build results list (#107)
This PR adds a benchmark for performance-critical function
`build_results_list` from `television_screen::results`

This should allows `television` to track performances improvements or
regressions across time for that function (and other in the future)

---------

Co-authored-by: alexpasmantier <alex.pasmant@gmail.com>
2024-12-08 18:43:38 +01:00
Alexandre Pasmantier
54399e3777
refactor(screen): extract UI related code to separate crate (#106)
Co-authored-by: Bertrand Chardon <bertrand.chardon@doctrine.fr>
2024-12-08 13:46:30 +01:00
Alexandre Pasmantier
ffc8dae494
chore: bump workspace to 0.6.2 (#104) 2024-12-06 10:46:53 +01:00