lsix
chafa
lsix | chafa | |
---|---|---|
5 | 31 | |
3,082 | 2,612 | |
- | - | |
4.3 | 9.0 | |
6 months ago | 10 days ago | |
Shell | C | |
GNU General Public License v3.0 only | GNU Lesser General Public License v3.0 only |
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.
lsix
-
Are We Sixel Yet
In XTerm, this (rightly) makes no difference. In Foot and Contour however, you still end up a line resp. a screen below where you started, if now with the correct horizontal position.
So it seems to me like what you want should work by default, except it doesn’t.
It should be possible to instead just treat the whole thing as a graphical overlay (by computing or directly asking for the character cell size, as Kirill Panov rightly admonishes me is possible with XTWINOPS) without touching the cursor; that’s what the “sixel scrolling” setting (DECSDM) is supposed to do. Then you can just manually move the cursor forward however many positions after you’re done drawing.
Except apparently the DEC manual (the VT330/340 one above) and DEC hardware contradict each other as to which setting of DECSDM (set or reset) corresponds to which scrolling state (enabled or disabled), and XTerm has implemented it according to the manual not the VT3xx[1,2,3]—then most other emulators followed suit[4]—then XTerm switched to following the hardware[5,6] (unless you and that’s what I’m seeing on my machine right now. So now you need to check if you’re on XTerm ≥ 369 or not[7]. If I’m reading the Notcurses code right, other terminals have followed suit[8].
Again, ouch.
P.S. It seems DEC had an internal doc for how their terminals should operate (DEC STD 070) [9]. It does not document DECSDM at all.
[1] https://github.com/wez/wezterm/issues/217#issuecomment-86449...
[2] https://github.com/hackerb9/lsix/issues/41
[3] https://github.com/dankamongmen/notcurses/issues/1782
[4] https://github.com/arakiken/mlterm/pull/23
[5] https://invisible-island.net/xterm/xterm.log.html#xterm_369
[6] https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-T...
[7] https://github.com/dankamongmen/notcurses/commit/0918fa251e2... (the correct version cutoff is 369 not 359, the patch contains a now-fixed bug)
[8] https://github.com/dankamongmen/notcurses/blob/master/src/li... (look for mentions of invertsixel)
[9] http://www.bitsavers.org/pdf/dec/standards/EL-SM070-00_DEC_S...
-
Quick roundup of bitmap graphics availability in free/open-source terminal emulators
Sixel - Sixel is a standard from the 1970's/1980's DEC VT series. It has enjoyed a tremendous resurgence in popularity thanks largely to saitoha's libsixel project. Many projects are now using sixel; a few you may have heard of include lsix, chafa, and notcurses.
-
Using ASCII waveforms to test real-time audio code
I would point out that sixels[0] exist. There is a nice library, libsixel[1] for working with it, which includes bindings into many languages. If the author of sixel-tmux[2][3] is to be believed[4], the relative lack of adoption is a result of unwillingness on the part of maintainers of some popular open source terminal libraries to implement sixel support.
I can't comment on that directly, but I will say, it's pretty damn cool to see GnuPlot generating output right into one's terminal. lsix[5] is also pretty handy as well.
But yeah, I agree, I'm not a fan of all the work that has gone into "terminal graphics" that are based on unicode. It's a dead-end, as was clear to DEC even back in '87 (and that's setting aside that the VT220[6] had it's own drawing capabilities, though they were more limited). Maybe sixel isn't the best possible way of handling this, but it does have the benefit of 34 years of backwards-compatibility, and with the right software, you can already use it _now_.
0 - https://en.wikipedia.org/wiki/Sixel
1 - https://saitoha.github.io/libsixel/
2 - https://github.com/csdvrx/sixel-tmux
3 - https://news.ycombinator.com/item?id=28756701
4 - https://github.com/csdvrx/sixel-tmux/blob/main/RANTS.md
5 - https://github.com/hackerb9/lsix
6 - https://en.wikipedia.org/wiki/VT220
- My favorite cli/tui programs:
-
The year of the GNU/Linux gaming rig is nigh!
no, I found it and it's called lsix
chafa
-
what terminal emulator would you recommend?
Like some people here and under this post said, I like Kitty and would recommend it to anyone who uses/used Alacritty, as they are very similar in surface. I actually switch between Alacritty and Kitty pretty often, depending on my "mood". I recently went back to Kitty for image support (through chafa though, for better compatibility across terminal emulators). However, Wayland support is poor and I have some issues with fonts being too bold, although it could just be my config...
-
ASCII-Gen, a Rust CLI tool that converts images to ASCII art
If you use a more modern terminal you can also use stuff like:
https://hpjansson.org/chafa/
-
UPDATE: image.nvim - Color Support
There's also https://github.com/princejoogie/chafa.nvim, which wraps https://github.com/hpjansson/chafa Did you know about that? I wonder what the differences between your plugin and that one are?
-
chafa.py - Terminal graphics with Python
Hello r/Python! I'm here to introduce you to a project I've been working on called chafa.py source. These are Python bindings for the amazing terminal image visualizer Chafa.
-
preview images directly in neovim
this is a plugin that wraps the functionality of chafa into neovim. chafa is a way to display images in the terminal by converting it into ANSI escape sequences.
-
Terminal Image and PDF Not Rendered Right/Blocky
I guess it is using https://github.com/hpjansson/chafa for that, and it needs to be using https://github.com/seebye/ueberzug/tree/2c55173878906c3b221cdef16cf083f0c412bb58
- Does someone have an idea how one could create such an effect?
-
Hacker News top posts: Sep 13, 2022
Chafa: Terminal Graphics for the 21st Century\ (13 comments)
- Terminal Graphics for the 21st Century
-
ANSIArt
See also https://github.com/hpjansson/chafa which is an image -> ANSI art library written in C. I built it into my BBS so users can embed images in their posts. Some turn out better than others but it gives the board a unique feel at least.
What are some alternatives?
ranger - A VIM-inspired filemanager for the console
imgcat - It's like cat, but for images.
sixel-tmux - sixel-tmux is a fork of tmux, with just one goal: having the most reliable support of graphics
mpv-image-viewer - Configuration, scripts and tips for using mpv as an image viewer
kitty - Cross-platform, fast, feature-rich, GPU based terminal
vifm - Vifm is a file manager with curses interface, which provides Vim-like environment for managing objects within file systems, extended with some useful ideas from mutt.
Weechat - The extensible chat client.
fzf - :cherry_blossom: A command-line fuzzy finder
libsixel - A SIXEL encoder/decoder implementation derived from kmiya's sixel (https://github.com/saitoha/sixel).
glances - Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.
zellij - A terminal workspace with batteries included