ctpv/README.md

117 lines
2.7 KiB
Markdown
Raw Normal View History

2022-06-14 13:00:53 +02:00
# ctpv
Terminal previewer
![showcase](doc/showcase.gif)
----
2022-07-11 15:40:12 +02:00
ctpv is a previewer utility for terminals.
2022-06-20 22:25:31 +02:00
2022-07-11 15:40:12 +02:00
It supports previews for source code, archives, PDF files, images
and videos (see [Previews](#previews)).
Image previews are powered by one of these:
2022-06-20 22:25:31 +02:00
2022-06-26 14:27:17 +02:00
* [Überzug](https://github.com/seebye/ueberzug)
* [Kitty terminal](https://github.com/kovidgoyal/kitty)
* [Chafa](https://github.com/hpjansson/chafa)
2022-06-14 13:00:53 +02:00
2022-06-16 07:00:57 +02:00
ctpv is a remake of an awesome program named
[stpv](https://github.com/Naheel-Azawy/stpv) written in C.
2022-06-14 13:00:53 +02:00
stpv worked perfectly for me, except it was kinda sluggish because
it was written in POSIX shell.
2022-06-16 07:00:57 +02:00
ctpv is an attempt to make a faster version of stpv and add some
new features.
2022-06-14 13:00:53 +02:00
Originally it was made for [lf][lf]
2022-06-16 07:00:57 +02:00
file manager but I believe that it can be easily integrated into
2022-07-11 15:40:12 +02:00
other programs as well
(either via configuration file like in lf or a simple wrapper
script).
2022-06-14 13:00:53 +02:00
2022-06-17 10:41:43 +02:00
## Dependencies
2022-06-21 17:09:07 +02:00
### Libraries
* `libcrypto`
* `libmagic`
### Previews
2022-06-19 17:21:52 +02:00
Previewing each file type requires specific programs.
If a program is not found on the system, ctpv
will try to use another one.
Only one program is required for each file type.
For example, you only need either `elinks`, `lynx` or
`w3m` installed on your system to view HTML files.
2022-06-17 10:41:43 +02:00
2022-06-18 17:50:57 +02:00
<!-- This table is auto generated! -->
<!--TABLESTART-->
| File types | Programs |
2022-06-17 10:53:10 +02:00
| ---- | ---- |
2022-06-18 17:50:57 +02:00
| any | `exiftool` `cat` |
| archive | `atool` |
| diff | `colordiff` `delta` `diff-so-fancy` |
| directory | `ls` |
2022-07-13 11:59:22 +02:00
| gpg-encrypted | `gpg` |
2022-06-18 17:50:57 +02:00
| html | `elinks` `lynx` `w3m` |
2022-06-23 13:54:23 +02:00
| image | `ueberzug` `chafa` |
2022-06-18 17:50:57 +02:00
| json | `jq` |
| markdown | `mdcat` |
2022-06-18 18:29:15 +02:00
| odt | `libreoffice` |
2022-06-18 17:50:57 +02:00
| pdf | `pdftoppm` |
| text | `bat` `cat` `highlight` `source-highlight` |
| torrent | `transmission-show` |
| video | `ffmpegthumbnailer` |
<!--TABLEEND-->
2022-06-17 10:41:43 +02:00
2022-06-14 13:00:53 +02:00
## Installation
### Manual
```sh
git clone https://github.com/NikitaIvanovV/ctpv
cd ctpv
sudo make install
```
Uninstall with `sudo make uninstall`
2022-06-21 17:07:01 +02:00
### AUR
If you are an Arch Linux user, you can install
[`ctpv-git`](https://aur.archlinux.org/packages/ctpv-git) AUR package.
```sh
yay -S ctpv-git
```
2022-06-14 13:00:53 +02:00
## Integration
### lf file manager
Add these lines to your lf config
(usually located at `~/.config/lf/lfrc`).
Note: `on-quit` command is not a part of
[lf r27 release](https://github.com/gokcehan/lf/releases/tag/r27)
yet, so I strongly suggest you to install the latest version [from the GitHub page][lf]
(or [`lf-git`](https://aur.archlinux.org/packages/lf-git) AUR package if you use Arch Linux).
2022-06-14 13:00:53 +02:00
```
set previewer ctpv
set cleaner ctpvclear
&ctpv -s $id
cmd on-quit $ctpv -e $id
```
## Documentation
2022-06-20 22:25:31 +02:00
Full documentation on command line options,
configuration and how to define custom previews
can be found here: https://nikitaivanovv.github.io/ctpv/
[lf]: https://github.com/gokcehan/lf