libsixel
sixel-tmux
libsixel | sixel-tmux | |
---|---|---|
23 | 34 | |
2,391 | 455 | |
- | - | |
0.0 | 0.0 | |
9 months ago | 7 days ago | |
C | C | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
libsixel
- GNU/Hurd strikes back: How to use the legendary OS in a (somewhat) practical way
-
VT330/VT340 Sixel Graphics
Library you can use to generate these images:
https://github.com/saitoha/libsixel
Plenty of links to other projects.
- UnicodePlots
-
Forking Chrome to Render in a Terminal
Sixels are pixels and enjoy a wide support due to how old it is.
Kitty protocol is PNG or primitives - which BTW would make it great for a GUI library.
Different tools for different needs, but if you are going for a wide support you want something simple that doesn't have 5 different types you have to separately implement and test:
> d: Direct (the data is transmitted within the escape code itself)
> f: A simple file (regular files only, not named pipes or similar)
> t: A temporary file, the terminal emulator will delete the file after reading the pixel data. For security reasons the terminal emulator should only delete the file if it is in a known temporary directory, such as /tmp, /dev/shm, TMPDIR env var if present and any platform specific temporary directories and the file has the string tty-graphics-protocol in its full file path.
> s: A shared memory object, which on POSIX systems is a POSIX shared memory object and on Windows is a Named shared memory object. The terminal emulator must read the data from the memory object and then unlink and close it on POSIX and just close it on Windows.
> What nonsense, it takes literally 15 lines of code without using anything beyond the standard library to write a client
Conveniently taking a preencoded PNG and assuming away the necessary queries of supported protocol:
> Since a client has no a-priori knowledge of whether it shares a filesystem/shared memory with the terminal emulator, it can send an id with the control data, using the i key (which can be an arbitrary positive integer up to 4294967295, it must not be zero).
> for the kitty graphics protocol. I challenge you to match that for sixel
https://github.com/saitoha/libsixel/tree/master/perl
use Image::LibSIXEL;
-
A command line tool that draw plots on the terminal
Also:
https://github.com/saitoha/libsixel
contains img2sixel, which lets you dump images to the terminal. It can also do animated GIFs.
Video:
https://github.com/saitoha/FFmpeg-SIXEL
GUI apps:
https://github.com/saitoha/SDL1.2-SIXEL
and more, linked from the libsixel repository.
-
Emacs on an iPad
Not sure of Terminal emulator capabilities on Apple devices, but thanks to https://github.com/saitoha/libsixel , several applications, including emacs very much support image output in terminals.
- Libsixel
-
What color do you use for your terminal?
You don't have multi-colored terminal output? Even legacy systems have long had Sixel support.
-
Are We Sixel Yet?
> SIXEL is one of image formats for printer and terminal imaging introduced by Digital Equipment Corp. (DEC). Its data scheme is represented as a terminal-friendly escape sequence. So if you want to view a SIXEL image file, all you have to do is "cat" it to your terminal
https://github.com/saitoha/libsixel
- Saw a few console apps and thought I might pitch in/show my own graphics library for the C# Console: The BasicRender Suite
sixel-tmux
-
Show HN: a Rust Based CLI tool 'imgcatr' for displaying images
It's not really that strange that tmux doesn't support sixels. It's quite a bit more complicated and resource-intensive than ANSI Escape Codes or ncurses.
It might be fine for local[1] multiplexing but over the network it is not as fast as even something like VNC or RDP.
[1] https://github.com/csdvrx/sixel-tmux/
-
Zellij β A terminal workspace with batteries included (tmux alternative)
After having spent too much time trying to get the simple https://github.com/csdvrx/sixel-tmux/ features into mainline tmux (last November https://github.com/tmux/tmux/issues/3753), maybe it'd be easier to jump ship as use zellij?
Could anyone offer recommendations on "riced" zellij configuations, or just a demo where it shows doing with (say charts of disk usage per folder), watching a movie with mpv + keeping a vim to type on?
-
I Just Wanted Emacs to Look Nice β Using 24-Bit Color in Terminals
Your approach looks very sound!
A fork of terminfo may be needed if the description of modern terminal capabilities can't be added -- or if old and deprecated attributes repurposed for that job (like in your padding example): if you're automating the correction/creation of terminfos in ~/, IMHO, it may be better to piggyback on tic as much as possible.
Anyway, to backport modern terminal descriptions to legacy programs, creating correct binary terminfos in ~/.terminfo seems the best practice. You can also invent new TERM. When I wanted to have italics etc about everywhere, personally that's just what I did for sixel-tmux: https://github.com/csdvrx/sixel-tmux/?tab=readme-ov-file#ste... : just declare a new $TERM you know to be right, and use that in the apps that let you use a little logic in their configuration file
I do that in my .vimrc:
" If Vim doesn't know the escape codes to switch to italic
-
Terminal Graphics Protocol
You can have that functionality integrated within tmux with https://github.com/csdvrx/sixel-tmux/ : if you terminal doesn't support sixels, you'll at least see something close to the picture they represent.
Then of course it's not pixel-perfect unless you make your terminal very large (like 800x240 instead of 80x24) but something being better than nothing, I'd argue it's for the better if all you can do is 80x24 with no pictures otherwise.
-
How would you work effectively with an extremely slow 56Kbps connection?
sixel-tmux can help you have both: https://github.com/csdvrx/sixel-tmux/
-
Are We Sixel Yet
See also rant[1] of sixel-tmux author.
> It's 2021, and we should be able to do litterate programming in the console, with full graphical support.
Yeah. We are stuck cosplaying computers from the sixties.
What's even funnier, even if you find a modern terminal emulator that supports features like ligatures, graphics, emoji etc. you still will be blocked by tmux. Sure - not everyone needs tmux. If you never work on remote machines, you can live without it.
But I work on remote machines all the time. I also use Kakoune text editor that defers window management to external tools (WM or tmux, but to be honest, tmux is much better). Zellij is more of r/unixporn bait than usable tool for now. So I'm stuck with text only interface.
[1]: https://github.com/csdvrx/sixel-tmux/blob/main/RANTS.md
-
UnicodePlots
> Some terminal emulators have support for images, which fit most of the use cases here but not the one I described.
That what sixel-tmux is for, when you're in a hurry and needs images with your current terminal emulator: https://github.com/csdvrx/sixel-tmux
- Some maintainers are holding users hostage to favor their preferred formats
-
Anyone know a Prefixed based terminal emulator that supports Image Preview of some sort? Tmux style keybindings, for splits, tabs, and sessions
Maybe tmux-sixel does that tmux sixel
-
Switched Back to Windows After a Year and a Half of Linux
If you want some crazy shit like sixels or italics and ligatures, try msys2 that's what I've used for the screenshot. The only thing comparable on Linux in term of features is xterm and, that's another story.
What are some alternatives?
sixvid - Simple script for animated GIF viewing using sixels
mpv - π₯ Command line video player
viu - Terminal image viewer with native support for iTerm and Kitty
chafa - πΊπΏ Terminal graphics for the 21st century.
Windows Terminal - The new Windows Terminal and the original Windows console host, all in the same place!
xterm-addon-image - Image addon for xterm.js
iterm2
urxvt-perls - Perl extensions for the rxvt-unicode terminal emulator
urxvt-perls - Perl extensions for the rxvt-unicode terminal emulator
FFmpeg-SIXEL - Experimental fork git://source.ffmpeg.org/ffmpeg.git