Terminal previewer
ctpv is a previewer utility for terminals.
It supports previews for source code, archives, PDF files, images and videos (see Previews).
Image previews are powered by one of these:
- Überzug (X11 only)
- Kitty terminal
- Chafa
ctpv is a remake of an awesome program named stpv written in C. stpv worked perfectly for me, except it was kinda sluggish because it was written in POSIX shell. ctpv is an attempt to make a faster version of stpv and add some new features.
Originally it was made for lf file manager but I believe that it can be easily integrated into other programs as well (either via configuration file like in lf or a simple wrapper script).
libcrypto
libmagic
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.
File types | Programs |
---|---|
any | exiftool cat |
archive | atool |
diff | colordiff delta diff-so-fancy |
directory | ls |
font | fontimage |
gpg-encrypted | gpg |
html | elinks lynx w3m |
image | ueberzug chafa |
json | jq |
markdown | mdcat |
office | libreoffice |
pdftoppm |
|
text | bat cat highlight source-highlight |
torrent | transmission-show |
video | ffmpegthumbnailer |
git clone https://github.com/NikitaIvanovV/ctpv
cd ctpv
sudo make install
Uninstall with sudo make uninstall
If you are an Arch Linux user, you can install
ctpv-git
AUR package.
yay -S ctpv-git
Add these lines to your lf config
(usually located at ~/.config/lf/lfrc
).
set previewer ctpv
set cleaner ctpvclear
&ctpv -s $id
&ctpvquit $id
Full documentation on command line options, configuration and how to define custom previews can be found here: https://nikitaivanovv.github.io/ctpv/