[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
24 bit colour support request.
From: |
Антон Кочков |
Subject: |
24 bit colour support request. |
Date: |
Thu, 11 Feb 2016 17:13:20 +0300 |
Good day!
All I wanted is to ask for 24bit (truecolor) color support. Here is
copy-paste from my gist, tracking the support among various console
programs (https://gist.github.com/XVilka/8346728)
As you can see, it is now pretty widely adopted, and screen is a one
of major players of console world, lacking truecolor support:
----------------------------------------------------------------------------------------------------------------------------
Truecolour escape codes doesnt uses a colour palete. It just specifies
the colour itself.
Here's a test case:
printf "\x1b[38;2;255;100;0mTRUECOLOR\x1b[0m\n"
or
https://raw.githubusercontent.com/JohnMorales/dotfiles/master/colors/24-bit-color.sh
or http://github.com/robertknight/konsole/tree/master/tests/color-spaces.pl
or https://git.gnome.org/browse/vte/tree/perf/img.sh?h=vte-0-36
or just run this:
awk 'BEGIN{
s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
for (colnum = 0; colnum<77; colnum++) {
r = 255-(colnum*255/76);
g = (colnum*510/76);
b = (colnum*255/76);
if (g>255) g = 510-g;
printf "\033[48;2;%d;%d;%dm", r,g,b;
printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
printf "%s\033[0m", substr(s,colnum+1,1);
}
printf "\n";
}'
Keep in mind that it is possible to use both ';' and ':' as parameters
delimiter.
According to Wikipedia[1], this is only supported by xterm and konsole.
[1] https://en.wikipedia.org/wiki/ANSI_color
Currently, there is no support for the 24-bit colour descriptions in
the terminfo/termcap database and utilites. See the discussion thread
here: https://lists.gnu.org/archive/html/bug-ncurses/2013-10/msg00007.html
Here are terminals discussions:
Now supporting truecolour
st (from suckless) [delimeter: semicolon] -
http://lists.suckless.org/dev/1307/16688.html
konsole [delimeter: colon, semicolon] -
https://bugs.kde.org/show_bug.cgi?id=107487
iterm2 [delimeter: colon, semicolon] - only in the nighties
https://code.google.com/p/iterm2/issues/detail?id=218
qterminal [delimeter: semicolon] -
https://github.com/qterminal/qterminal/issues/78
Tera Term [delimeter: colon, semicolon] - Windows platform
ConEmu [delimeter: semicolon] - Windows platform
FinalTerm [delimeter: semicolon] - abandoned, iTerm2 borrowing it's
ideas and features.
mintty [delimeter: semicolon] Cygwin and MSYS/MSYS2 since commit
https://github.com/mintty/mintty/commit/43f0ed8a46c6549cb9a3ea27abc057b5abe13bdb
(2.0.1 release) - Windows platform
all libvte based terminals (since 0.36 version) [delimeter: colon,
semilocon] - https://bugzilla.gnome.org/show_bug.cgi?id=704449
libvte-based Gnome Terminal
libvte-based sakura
libvte-based Terminator - use GTK+3 version.
libvte-based Lilyterm - since commit
https://github.com/Tetralet/LilyTerm/commit/72536e7ba448ad9ef1126ce45fbde3a3407a271b
libvte-based ROXTerm
libvte-based evilvte - no release yet, version from git
https://github.com/caleb-/evilvte
libvte-based Termit
libvte-based Termite
libvte-based Tilda
libvte-based tinyterm
libvte-based lxterminal - with --enable-gtk3 configure flag.
libvte-based mlterm - with --with-gtk=3.0 configure flag
But there are bunch of libvte-based terminals for GTK2 so they are
listed in the another section.
Parsing ANSI colour sequences, but approximating them to 256 palette
xterm (though doing it wrong: "it uses nearest colour in RGB colour
space, with a usualfalse assumption about orthogonal axes")
linux console (since v3.16):
https://github.com/torvalds/linux/commit/cec5b2a97a11ade56a701e83044d0a2a984c67b4
Note about colour differences: a) RGB axes are not orthogonal, so you
cannot use sqrt(R^2+G^2+B^2) formula, b) for colour differences there
is more correct (but much more complex) CIEDE2000 formula (which may
easily blow up performance if used blindly) [2].
[2] https://github.com/neovim/neovim/issues/793#issuecomment-48106948
NOT supporting truecolour
urxvt (patched version [3] available) -
http://lists.schmorp.de/pipermail/rxvt-unicode/2013q3/001826.html
Terminology (E17) - https://phab.enlightenment.org/T746
mrxvt (looks abandoned) - https://sourceforge.net/p/materm/feature-requests/41/
aterm (looks abandoned) - https://sourceforge.net/p/aterm/feature-requests/23/
fbcon (from linux kernel) - https://bugzilla.kernel.org/show_bug.cgi?id=79551
FreeBSD console - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191652
PuTTY (patched version [4] {xterm-like approximation to 256 colors}
and [5] {real true colors} available) - Windows platform
libvte and GTK2 - based:
libvte-based GTKTerm2
libvte-based stjerm (looks abandoned) -
https://github.com/stjerm/stjerm/issues/39
libvte-based xfce4-terminal - will be solved automatically since Xfce
slowly migrating to the GTK+3
[3] You can download patched version here
https://github.com/spudowiar/rxvt-unicode/tree/24bit
[4] You can download patched version here https://github.com/rdebath/PuTTY
[5] You can download patched version here https://github.com/halcy/PuTTY
Terminal multiplexers
tmux - has support since 427b820...
screen
dvtm - not yet supporting True Colour https://github.com/martanne/dvtm/issues/10
pymux - tmux clone in pure Python (to enable truecolour run pymux with
--truecolor option)
Here are another console programs discussions:
Supporting True Colour:
irssi - https://github.com/irssi/irssi/pull/48
neovim -
https://github.com/neovim/neovim/commit/8dd415e887923f99ab5daaeba9f0303e173dd1aa
elinks - http://repo.or.cz/w/elinks.git/blob/HEAD:/configure.in#l1410
(./configure --enable-true-color)
s-lang library -
http://lists.jedsoft.org/lists/slang-users/2015/0000020.html (since
pre2.3.1-35, for 64bit systems)
Not supporting True Colour:
mutt - http://dev.mutt.org/trac/ticket/3674
mc - http://www.midnight-commander.org/ticket/3145#comment:1 - demo
patches attached
ncurses library -
https://lists.gnu.org/archive/html/bug-ncurses/2013-10/msg00007.html
termbox library - https://github.com/nsf/termbox/issues/37
mcabber -
https://bitbucket.org/McKael/mcabber-crew/issue/126/support-for-true-color-16-millions-colors
emacs -
http://emacs.1067599.n5.nabble.com/RFC-Add-tty-True-Color-support-td299962.html
and
http://emacs.1067599.n5.nabble.com/bug-20243-True-color-terminal-support-tc354040.html
vim - https://bitbucket.org/ZyX_I/vim/commits/branch/24-bit-xterm
tig - https://github.com/jonas/tig/issues/227
Best regards,
Anton Kochkov.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- 24 bit colour support request.,
Антон Кочков <=