MojiSplit
lsix
Our great sponsors
MojiSplit | lsix | |
---|---|---|
2 | 5 | |
18 | 3,081 | |
- | - | |
0.0 | 4.3 | |
almost 3 years ago | 5 months ago | |
Shell | Shell | |
MIT License | GNU 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.
MojiSplit
-
I wrote a script to split an image consisting of several things on an even background into several individual images, ready-made to be used as emojis and/or emotes (details and GitHub link in comment)
I think adding links to the source code at least some cases might be a godo idea, though, so I added it as an issue to the GitHub repository, to make sure I don't forget to come back to it once I have the time and space to do so :D
-
I wrote a script with imagemagick to split an image consisting of several things on an even background into several individual images, ready-made to be used as emojis and/or emotes (details in comment)
This is the first "longer" (around 300LOC; I think) bash script I made, plus it makes heavy use of imagemagick, so I decided to share it here. I called it MojiSplit, and you can get its code in its repository. It also has a handful of options to customize the above behavior, so you can use it for Signal stickers, Discord emotes etc. too, not just for Mastodon emojis.
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
What are some alternatives?
v2ray - 最好用的 V2Ray 一键安装脚本 & 管理脚本
ranger - A VIM-inspired filemanager for the console
great-wall-run - A Cocos2d-x game made for my daughter.
sixel-tmux - sixel-tmux is a fork of tmux, with just one goal: having the most reliable support of graphics
awesomeshot - A command-line screenshot tool written in bash 5.1.16+
kitty - Cross-platform, fast, feature-rich, GPU based terminal
Weechat - The extensible chat client.
fzf - :cherry_blossom: A command-line fuzzy finder
glances - Glances an Eye on your system. A top/htop alternative for GNU/Linux, BSD, Mac OS and Windows operating systems.
Vim - The official Vim repository
exa - A modern replacement for ‘ls’.
chafa - 📺🗿 Terminal graphics for the 21st century.