102 Commits

Author SHA1 Message Date
Alexandre Pasmantier
b48127bbba chore: bump to 0.11.1 2025-03-20 20:44:33 +01:00
Alexandre Pasmantier
4e900d92c3
fix(ci): use fancy-regex when compiling on arm64 instead of oniguruma (#422) 2025-03-20 19:54:17 +01:00
Alexandre Pasmantier
409d951d3c chore: bump to 0.11.0 2025-03-20 15:39:07 +01:00
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
Alexandre Pasmantier
4f35cc6dbd
docs(cli): improve cli documentation (#395) 2025-03-17 22:39:19 +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
a03da82c56 chore: bump to 0.10.2 2025-01-26 22:04:00 +01:00
Alex Pasmantier
4b632f81f8
docs(changelog): update changelog template (#317) 2025-01-26 10:57:54 +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
263e88beb6
chore(deps): mutualize workspace dependencies (#236) 2025-01-07 01:09:14 +01:00
Osma S. Rautila
da2396e19a
chore(linting): add workspace lints (#228)
Hey, nice work. There's a lot of potential, and the idea of custom
channels with custom run commands is very appealing.

I was looking at the source, but clippy pedantic lints threw a lot of
warnings and I noticed the project did not have a linting profile. I
threw together a profile here, but it does leave a fair amount of
warnings in. Maybe some variation of this, or another linting profile
could be considered to guide future contributors on style decisions.
Cheers

---------

Co-authored-by: Alexandre Pasmantier <alex.pasmant@gmail.com>
2025-01-06 18:24:56 +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
Alex Pasmantier
0c5da2a0c3
chore: bump to 0.8.3 (#192) 2024-12-31 00:48:37 +01:00
Alex Pasmantier
b552657926
perf(bin): compile binary as a single code unit and use fat LTO (#191)
Fixes #185 

> Release + codegen-units = 1: 11 Mib
Release + Thin LTO (current default): 14 Mib
Release + Fat LTO: 11 Mib
Release + codegen-units = 1 + Fat LTO: 9.7 Mib
Release + codegen-units = 1 + Thin LTO: 11 Mib
2024-12-31 00:46:13 +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
f707190439
chore: include cable channels (#166) 2024-12-29 02:14:20 +01:00
Alex Pasmantier
1bc6f12782
chore: bump to 0.8.0 (#165) 2024-12-29 02:07:50 +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
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