Skip to content

Instantly share code, notes, and snippets.

@bdlabs
Forked from XVilka/TrueColour.md
Created February 7, 2022 14:04
Show Gist options
  • Save bdlabs/f8d4b6071b378bdfc7fbf700f2984afb to your computer and use it in GitHub Desktop.
Save bdlabs/f8d4b6071b378bdfc7fbf700f2984afb to your computer and use it in GitHub Desktop.

Revisions

  1. @XVilka XVilka revised this gist Sep 30, 2021. 1 changed file with 168 additions and 136 deletions.
    304 changes: 168 additions & 136 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -7,21 +7,21 @@ There exists common confusion about terminal colors. This is what we have right
    - Plain ASCII
    - ANSI escape codes: 16 color codes with bold/italic and background
    - 256 color palette: 216 colors + 16 ANSI + 24 gray (colors are 24-bit)
    - 24-bit true color: "888" colors (aka 16 milion)
    - 24-bit truecolor: "888" colors (aka 16 million)

    ```bash
    printf "\x1b[${bg};2;${red};${green};${blue}m\n"
    ```

    The 256-color palette is configured at start and is a 666-cube of colors,
    each of them defined as a 24-bit (888 rgb) color.
    each of them defined as a 24-bit (888 RGB) color.

    This means that current support can only display 256 different colors in the
    terminal while "true color" means that you can display 16 million different
    terminal while "truecolor" means that you can display 16 million different
    colors at the same time.

    Truecolor escape codes do not use a color palette. They just specify the
    color itself.
    color directly.

    This is a good test case:

    @@ -52,46 +52,80 @@ awk 'BEGIN{
    ```

    Keep in mind that it is possible to use both ';' and ':' as Control Sequence
    Introducer delimiters.
    delimiters.

    According to Wikipedia[1], this behavior is only supported by xterm and konsole.

    [1] https://en.wikipedia.org/wiki/ANSI_color

    Since
    [ncurses-6.0-20180121](http://lists.gnu.org/archive/html/bug-ncurses/2018-01/msg00045.html),
    terminfo began to support the 24-bit True Color capability under the name of
    "RGB". You need to use the "setaf" and "setab" commands to set the foreground
    and background respectively.
    # Truecolor Detection

    # True Color Detection
    ## Checking for COLORTERM

    There will be no reliable way to detect the "RGB" flag until the new release of
    terminfo/ncurses. S-Lang author added a check for $COLORTERM containing either
    "truecolor" or "24bit" (case sensitive). In addition,
    [VTE](https://bugzilla.gnome.org/show_bug.cgi?id=754521),
    [Konsole](https://bugs.kde.org/show_bug.cgi?id=371919) and
    [iTerm2](https://gitlab.com/gnachman/iterm2/issues/5294) set this variable to
    "truecolor". It has been in VTE for a while and but is relatively new, being
    still git-only in Konsole and iTerm2).

    This is obviously not a reliable method, and is not forwarded via sudo, SSH etc.
    However, whenever it errs, it errs on the safe side. It does not advertise
    support when it is actually supported. App developers can freely choose to
    check for this same variable, or introduce their own method (e.g. an option in
    their config file). They should use whichever method best matches the overall
    design of their app. Checking $COLORTERM is recommended though since it will
    lead to a more seamless desktop experience where only one variable needs to be
    set. This would be system-wide so that the user would not need to set it
    separately for each app.
    [iTerm2](https://gitlab.com/gnachman/iterm2/issues/5294) all advertise
    truecolor support by placing `COLORTERM=truecolor` in the environment of the
    shell user's shell. This has been in VTE for a while, but is relatively new in
    Konsole and iTerm2 and has to be enabled at compile time (most packages do not,
    so you have to compile them yourself from the git source repo).

    The S-Lang library has a check that `$COLORTERM` contains either "truecolor" or
    "24bit" (case sensitive).

    Terminfo has supported the 24-bit TrueColor capability since
    [ncurses-6.0-20180121](http://lists.gnu.org/archive/html/bug-ncurses/2018-01/msg00045.html),
    under the name "RGB".
    You need to use the "setaf" and "setab" commands to set the foreground and
    background respectively.

    Having an extra environment variable (separate from `TERM`) is not ideal: by
    default it is not forwarded via sudo, ssh, etc, and so it may still be
    unreliable even where support is available in programs. (It does however err on
    the side of safety: it does not advertise support when it is not actually
    supported, and the programs should fall back to using 8-bit color.)

    These issues can be amelorated by adding `COLORTERM` to:
    * the `SendEnv` list in `/etc/ssh/ssh_config` on ssh clients;
    * the `AcceptEnv` list in `/etc/ssh/sshd_config` on ssh servers; and
    * the `env_keep` list in `/etc/sudoers`.

    Despite these problems, it's currently the best option, so checking
    `$COLORTERM` is recommended since it will lead to a more seamless desktop
    experience where only one variable needs to be set.

    App developers can freely choose to check for this variable, or introduce their
    own method (e.g. an option in their config file). They should use whichever
    method best matches the overall design of their app.

    Ideally any terminal that really supports truecolor would set this variable;
    but as a work-around you might need to put a check in `/etc/profile` to set
    `COLORTERM=truecolor` when `$TERM` matches any terminal type known to have
    working truecolor.

    ```lang=sh
    case $TERM in
    iterm |\
    linux-truecolor |\
    screen-truecolor |\
    tmux-truecolor |\
    xterm-truecolor ) export COLORTERM=truecolor ;;
    vte*)
    esac
    ```

    ## Querying The Terminal

    A more reliable method in an interactive program which can read terminal
    responses, and one that is transparent to things like sudo, SSH, etc.. is to
    simply try setting a truecolor value and then query the terminal to ask what
    color it currently has. If the response replies the same color that was set
    then it indicates truecolor is supported.
    In an interactive program that can read terminal responses, a more reliable
    method is available, that is transparent to sudo & ssh.

    Simply try sending a truecolor value to the terminal, followed by a query to
    ask what color it currently has. If the response indicates the same color as
    was just set, then truecolor is supported.

    If the response indicates an 8-bit color, or does not indicate a color, or if
    no response is forthcoming within a few centiseconds, then assume that
    truecolor is not supported.

    ```bash
    $ (echo -e '\e[48:2:1:2:3m\eP$qm\e\\' ; xxd)
    @@ -100,7 +134,7 @@ $ (echo -e '\e[48:2:1:2:3m\eP$qm\e\\' ; xxd)
    00000000: 1b50 3124 7234 383a 323a 313a 323a 336d .P1$r48:2:1:2:3m
    ```
    Here we ask to set the background color to `RGB(1,2,3)` - an unlikely default
    Here we set the background color to `RGB(1,2,3)` - an unlikely default
    choice - and request the value that we just set. The response comes back that
    the request was understood (`1`), and that the color is indeed `48:2:1:2:3`.
    This tells us also that the terminal supports the colon delimiter. If instead,
    @@ -111,86 +145,84 @@ the terminal did not support truecolor we might see a response like
    00000000: 1b50 3124 7234 306d 1b5c 0a .P1$r40m.\.
    ```
    This terminal replied the color is `40` - it has not accepted our request to
    set `48:2:1:2:3`.
    This terminal replied that the color is `40` - it has not accepted our request
    to set `48:2:1:2:3`.
    ```
    ^[P0$r^[\
    00000000: 1b50 3024 721b 5c0a .P0$r.\.
    ```
    This terminal did not even understand the DECRQSS request - its response was
    `0$r`. We do not learn if it managed to set the color, but since it doesn't
    understand how to reply to our request it is unlikely to support truecolor
    either.
    This terminal did not even understand the `DECRQSS` request - its response was
    `CSI`+`0$r`. This does not indicate whether it set the color, but since it
    doesn't understand how to reply to our request it is unlikely to support
    truecolor either.
    # Truecolor Support in Output Devices
    # Terminals + True Color
    ## Fully Supporting
    ## Now **Supporting** True Color
    ### Terminal Emulators
    - [st](http://st.suckless.org/) (from suckless) [delimeter: semicolon] -
    - [st](http://st.suckless.org/) (from suckless) [delimiter: semicolon] -
    http://lists.suckless.org/dev/1307/16688.html
    - [xst](https://github.com/gnotclub/xst/) - fork of st
    - [konsole](http://kde.org/applications/system/konsole/) [delimeter: colon,
    - [konsole](http://kde.org/applications/system/konsole/) [delimiter: colon,
    semicolon] - https://bugs.kde.org/show_bug.cgi?id=107487
    - [iTerm2](http://www.iterm2.com/) [delimeter: colon, semicolon] - since v3
    - [iTerm2](http://www.iterm2.com/) [delimiter: colon, semicolon] - since v3
    version
    - [Therm](https://github.com/trufae/Therm) [delimeter: colon, semicolon] - fork
    - [Therm](https://github.com/trufae/Therm) [delimiter: colon, semicolon] - fork
    of iTerm2
    - [qterminal](https://github.com/lxqt/qterminal) [delimeter: semicolon] -
    https://github.com/qterminal/qterminal/issues/78
    - [alacritty](https://github.com/jwilm/alacritty) [delimeter: semicolon] -
    - [qterminal](https://github.com/lxqt/qterminal) [delimiter: semicolon] - after version 0.14.1 ([issue #78](https://github.com/qterminal/qterminal/issues/78))
    - [alacritty](https://github.com/jwilm/alacritty) [delimiter: semicolon] -
    written in Rust
    - [kitty](https://github.com/kovidgoyal/kitty) [delimeter: colon,semicolon] -
    - [kitty](https://github.com/kovidgoyal/kitty) [delimiter: colon,semicolon] -
    uses OpenGL
    - [cool-retro-term](https://github.com/Swordfish90/cool-retro-term) [delimeter:
    - [cool-retro-term](https://github.com/Swordfish90/cool-retro-term) [delimiter:
    semicolon]
    - [mosh](https://mosh.org/) (Mobile SHell) [delimeter: semicolon] - since commit
    https://github.com/mobile-shell/mosh/commit/6cfa4aef598146cfbde7f7a4a83438c3769a2835
    - [pangoterm](http://www.leonerd.org.uk/code/pangoterm/) [delimeter:
    - [mosh](https://mosh.org/) (Mobile SHell) [delimiter: semicolon] - since commit [6cfa4aef598146cfbde7f7a4a83438c3769a2835](https://github.com/mobile-shell/mosh/commit/6cfa4aef598146cfbde7f7a4a83438c3769a2835)
    - [pangoterm](http://www.leonerd.org.uk/code/pangoterm/) [delimiter:
    colon, semicolon]
    - [Termux](https://termux.com/) [delimeter: semicolon] - **Android platform**
    - [ConnectBot](https://connectbot.org/) - **Android platform** - since
    https://github.com/connectbot/connectbot/commit/3bcc75ccedaf2136b04c5932c81a5155f29dc3b5
    - [Black Screen](https://github.com/shockone/black-screen) [delimeter:
    semicolon] - crossplatform, HTML/CSS/JS-based
    - [Termux](https://termux.com/) [delimiter: semicolon] - **Android platform**
    - [ConnectBot](https://connectbot.org/) - **Android platform** - since [3bcc75ccedaf2136b04c5932c81a5155f29dc3b5](https://github.com/connectbot/connectbot/commit/3bcc75ccedaf2136b04c5932c81a5155f29dc3b5) commit.
    - [Black Screen](https://github.com/shockone/black-screen) [delimiter:
    semicolon] - cross-platform, HTML/CSS/JS-based
    - [hterm](https://chromium.googlesource.com/apps/libapps/+/master/hterm) -
    HTML/CSS/JS-based (ChromeOS)
    - [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/) -
    [landed](https://git.tartarus.org/?p=simon/putty.git;a=commit;h=a4cbd3dfdb71d258e83bbf5b03a874c06d0b3106)
    in git (patched version [3] {xterm-like approximation to 256 colors} and [4]
    {real true colors} available) - **Windows platform**
    - [Tera Term](http://en.sourceforge.jp/projects/ttssh2/) [delimeter: colon,
    {real truecolors} available) - **Windows platform**
    - [Tera Term](http://en.sourceforge.jp/projects/ttssh2/) [delimiter: colon,
    semicolon] - **Windows platform**
    - [ConEmu](https://github.com/Maximus5/ConEmu) [delimeter: semicolon] -
    - [ConEmu](https://github.com/Maximus5/ConEmu) [delimiter: semicolon] -
    **Windows platform**
    - [Windows
    Powershell](https://en.wikipedia.org/wiki/PowerShell#PowerShell_5.1)
    [delimeter: semicolon] - aka Powershell 5.x and below **Windows 10**
    - [Powershell Core](https://github.com/PowerShell/PowerShell) [delimeter:
    semicolon] aka Powershell 6+ **Windows 10**
    - [cmd.exe](https://en.wikipedia.org/wiki/Cmd.exe) [delimeter:
    semicolon] Builtin Windows shell that is mostly unchanged since DOS **Windows 10**
    - [FinalTerm](http://finalterm.org/) [delimeter: semicolon] -
    [delimiter: semicolon] - aka PowerShell 5.x and below **Windows 10**
    - [PowerShell Core](https://github.com/PowerShell/PowerShell) [delimiter:
    semicolon] aka PowerShell 6+ **Windows 10**
    - [cmd.exe](https://en.wikipedia.org/wiki/Cmd.exe) [delimiter:
    semicolon] Built-in Windows shell that is mostly unchanged since DOS **Windows 10**
    - [FinalTerm](http://finalterm.org/) [delimiter: semicolon] -
    **[abandoned](http://worldwidemann.com/finally-terminated/)**, iTerm2
    [borrowing it's ideas and features](http://iterm2.com/shell_integration.html).
    - [MacTerm](https://github.com/kmgrant/macterm) [delimeter: semicolon] - **Mac
    - [MacTerm](https://github.com/kmgrant/macterm) [delimiter: semicolon] - **Mac
    OS X platform**
    - [mintty](https://mintty.github.io/) [delimeter: semicolon] **Cygwin and
    MSYS/MSYS2** since commit
    https://github.com/mintty/mintty/commit/43f0ed8a46c6549cb9a3ea27abc057b5abe13bdb
    - [mintty](https://mintty.github.io/) [delimiter: semicolon] **Cygwin and
    MSYS/MSYS2** since commit [43f0ed8a46c6549cb9a3ea27abc057b5abe13bdb](https://github.com/mintty/mintty/commit/43f0ed8a46c6549cb9a3ea27abc057b5abe13bdb)
    (2.0.1 release) - **Windows platform**
    - [MobaXterm](http://mobaxterm.mobatek.net/) **Windows platform** - closed
    source (run `lscolors` to see a truecolor test)
    - [ZOC](https://www.emtec.com/zoc/index.html) **Windows/OS X platform** - closed
    source since
    [7.19.0 version](http://www.emtec.com/downloads/zoc/zoc_changes.txt)
    - [upterm](https://github.com/railsware/upterm) *Windows/Macos/Linux Electron* -
    - [upterm](https://github.com/railsware/upterm) *Windows/MacOS/Linux Electron* -
    A terminal emulator for the 21st century.
    - Windows 10 bash console, since
    [Windows Insiders build 14931](https://blogs.msdn.microsoft.com/commandline/2016/09/22/24-bit-color-in-the-windows-console/)
    - all [libvte](http://ftp.gnome.org/pub/GNOME/sources/vte/) based terminals
    (since 0.36 version) [delimeter: colon, semicolon] -
    - All [libvte](http://ftp.gnome.org/pub/GNOME/sources/vte/) based terminals
    (since 0.36 version) [delimiter: colon, semicolon] -
    https://bugzilla.gnome.org/show_bug.cgi?id=704449
    - **libvte**-based
    [Gnome Terminal](https://help.gnome.org/users/gnome-terminal/stable/)
    @@ -204,94 +236,95 @@ either.
    since [1.90](https://launchpad.net/terminator/+announcement/14358) release
    - **libvte**-based [Tilix](https://github.com/gnunn1/tilix) - written in D.
    Similar user interface as for Terminator.
    - **libvte**-based [Lilyterm](http://lilyterm.luna.com.tw/) - since commit
    https://github.com/Tetralet/LilyTerm/commit/72536e7ba448ad9ef1126ce45fbde3a3407a271b
    - **libvte**-based [Lilyterm](http://lilyterm.luna.com.tw/) - since commit [72536e7ba448ad9ef1126ce45fbde3a3407a271b](https://github.com/Tetralet/LilyTerm/commit/72536e7ba448ad9ef1126ce45fbde3a3407a271b)
    - **libvte**-based [ROXTerm](http://roxterm.sourceforge.net/)
    - **libvte**-based [evilvte](http://www.calno.com/evilvte/) - no release yet,
    version from git https://github.com/caleb-/evilvte
    - **libvte**-based [Termit](https://github.com/nonstop/termit)
    - **libvte**-based [Termite](https://github.com/thestinger/termite)
    - **libvte**-based [Termite](https://github.com/thestinger/termite) ([NOT MAINTAINED](https://github.com/thestinger/termite/issues/760))
    - **libvte**-based [Tilda](https://github.com/lanoxx/tilda)
    - **libvte**-based [tinyterm](https://code.google.com/p/tinyterm)
    - **libvte**-based
    [Pantheon Terminal](https://launchpad.net/pantheon-terminal)
    - **libvte**-based [lxterminal](http://sourceforge.net/projects/lxde) - with
    **--enable-gtk3** configure flag.
    - **libvte**-based [guake](http://guake-project.org/) - A top-down terminal for GNOME
    - All [xterm.js](https://github.com/xtermjs/xterm.js) based terminals (since [v3.13](https://github.com/xtermjs/xterm.js/issues/484), [v4.3 for webgl](https://github.com/xtermjs/xterm.js/pull/2552)) [delimiter: semicolon]
    - [VS Code](https://code.visualstudio.com/)'s integrated terminal
    - [Tabby](https://github.com/Eugeny/tabby): highly configurable terminal emulator for Windows, macOS and Linux
    - [Hyper.app](https://hyper.is/): crossplatform, HTML/CSS/JS-based (Electron)
    There are a bunch of libvte-based terminals for GTK2, so they are listed in the
    another section.
    Also, while this one is not a terminal, but a terminal replayer, it is
    still worth mentioning:
    ### Multiplexers
    - [tmux](http://tmux.github.io/) - starting from version 2.2 (support since
    [427b820...](https://github.com/tmux/tmux/commit/427b8204268af5548d09b830e101c59daa095df9))
    - [screen](http://git.savannah.gnu.org/cgit/screen.git/) - has support in
    'master' branch, need to be enabled (see 'truecolor' option)
    - [pymux](https://github.com/jonathanslenders/pymux) - tmux clone in pure Python
    (to enable truecolor run pymux with `--truecolor` option)
    - [dvtm](https://github.com/martanne/dvtm) - not yet supporting truecolor
    https://github.com/martanne/dvtm/issues/10
    ### Re-players
    - [asciinema](http://asciinema.org) player:
    https://github.com/asciinema/asciinema-player
    ## Improper Support for True Color
    ## Partial Support
    These terminal emulators parse ANSI color sequences, but approximate the true
    color using a palette. A 256-color (8-bit) palette is used unless specified.
    - [mlterm](http://mlterm.sourceforge.net) - built with **--with-gtk=3.0**
    configure flag. Approximates colors to 512 embedded palette
    configure flag. Approximates colors using a 512-color embedded palette
    (https://sourceforge.net/p/mlterm/bugs/74/)
    ## Terminals that parse ANSI color sequences, but approximate them to 256 palette
    - xterm (but doing it wrong: "it uses nearest color in RGB color space,
    with a usual false assumption about orthogonal axes")
    - [urxvt aka rxvt-unicode](http://software.schmorp.de/pkg/rxvt-unicode.html) -
    since
    [Revision 1.570](http://cvs.schmorp.de/rxvt-unicode/src/command.C?revision=1.570&view=markup&sortby=log&sortdir=down)
    [revision 1.570](http://cvs.schmorp.de/rxvt-unicode/src/command.C?revision=1.570&view=markup&sortby=log&sortdir=down)
    http://lists.schmorp.de/pipermail/rxvt-unicode/2016q2/002261.html (Note there
    is a restriction of colors count still)
    - linux console (since v3.16):
    https://github.com/torvalds/linux/commit/cec5b2a97a11ade56a701e83044d0a2a984c67b4
    - Linux console ([fbcon](https://www.kernel.org/doc/Documentation/fb/fbcon.txt)), [since v3.16](https://github.com/torvalds/linux/commit/cec5b2a97a11ade56a701e83044d0a2a984c67b4) - https://bugzilla.kernel.org/show_bug.cgi?id=79551 (downgraded to 16 foregrounds and 8 backgrounds)
    Note about color differences:
    a) RGB axes are not orthogonal, so you cannot use
    sqrt(R^2+G^2+B^2) formula
    b) for color differences there is more correct (but
    much more complex)
    [CIEDE2000](http://en.wikipedia.org/wiki/Color_difference#CIEDE2000) formula
    (which may easily blow up performance if used blindly) [2].
    #### Note about color differences
    [2] https://github.com/neovim/neovim/issues/793#issuecomment-48106948
    Human eyes are sensitive to the primary colors in such a way that the simple
    Gaussian distance √(R²+G²+B²) gives poor results when trying to find the
    "nearest" available color as perceived by most humans.
    ## Terminal multiplexers
    The [CIEDE2000](http://en.wikipedia.org/wiki/Color_difference#CIEDE2000)
    formula provides much better perceptual matching, but it is considerably more
    complex and may perform very slowly if used blindly [2].
    - [tmux](http://tmux.github.io/) - starting from version 2.2 (support since
    [427b820...](https://github.com/tmux/tmux/commit/427b8204268af5548d09b830e101c59daa095df9))
    - [screen](http://git.savannah.gnu.org/cgit/screen.git/) - has support in
    'master' branch, need to be enabled (see 'truecolor' option)
    - [pymux](https://github.com/jonathanslenders/pymux) - tmux clone in pure Python
    (to enable truecolor run pymux with `--truecolor` option)
    - [dvtm](https://github.com/martanne/dvtm) - not yet supporting True Color
    https://github.com/martanne/dvtm/issues/10
    [2] https://github.com/neovim/neovim/issues/793#issuecomment-48106948
    ## **NOT Supporting** True Color
    ## Not Supporting Truecolor
    - [Terminal.app](https://en.wikipedia.org/wiki/Terminal_(macOS)): Macos Terminal builtin
    - [Terminal.app](https://en.wikipedia.org/wiki/Terminal_(macOS)): MacOS Terminal built-in
    - [Terminology](https://www.enlightenment.org/about-terminology)
    (Enlightenment) - https://phab.enlightenment.org/T746
    - [Hyper.app](https://hyper.is/) [delimeter: semicolon] - crossplatform,
    - [Hyper.app](https://hyper.is/) [delimiter: semicolon] - cross-platform,
    HTML/CSS/JS-based (Electron) https://github.com/zeit/hyper/issues/2294
    - [Cmder](https://cmder.net/): Portable console emulator for Windows,
    based on ConEmu.
    - [Terminus](https://github.com/Eugeny/terminus):
    highly configurable terminal emulator for Windows, macOS and Linux
    highly configurable terminal emulator for Windows, MacOS and Linux
    - [mrxvt](https://sourceforge.net/projects/materm) (looks abandoned) -
    https://sourceforge.net/p/materm/feature-requests/41/
    - [aterm](http://www.afterstep.org/aterm.php) (looks abandoned) -
    https://sourceforge.net/p/aterm/feature-requests/23/
    - [fbcon](https://www.kernel.org/doc/Documentation/fb/fbcon.txt) (from linux
    kernel) - https://bugzilla.kernel.org/show_bug.cgi?id=79551
    - [fbcon](https://www.kernel.org/doc/Documentation/fb/fbcon.txt) (prior to
    Linux 3.16) - https://bugzilla.kernel.org/show_bug.cgi?id=79551
    - FreeBSD console - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191652
    - [yaft](https://github.com/uobikiemukot/yaft) framebuffer terminal -
    https://github.com/uobikiemukot/yaft/issues/12
    - [yaft](https://github.com/uobikiemukot/yaft) framebuffer terminal - [issue #12](https://github.com/uobikiemukot/yaft/issues/12)
    - [KiTTY](http://www.9bis.net/kitty/) - **Windows platform**
    - [MTPuTTY](ttyplus.com) - **Windows platform**
    - [mRemoteNG](https://mremoteng.org/) - **Windows platform** -
    https://github.com/mRemoteNG/mRemoteNG/issues/717
    - [JuiceSSH](https://juicessh.com/) - **Adroid platform**, closed source
    - [mRemoteNG](https://mremoteng.org/) - **Windows platform** - [issue #717](https://github.com/mRemoteNG/mRemoteNG/issues/717)
    - [JuiceSSH](https://juicessh.com/) - **Android platform**, closed source
    - [Termius](https://www.termius.com/) - **Linux, Windows, OS X platforms**,
    closed source
    - [SmarTTY](http://smartty.sysprogs.com/) - **Windows platform** - closed source
    @@ -300,12 +333,11 @@ much more complex)
    closed source (sent them an email)
    - libvte and GTK2 - based:
    - **libvte**-based [GTKTerm2](http://gtkterm.feige.net/)
    - **libvte**-based [stjerm](https://github.com/stjerm/stjerm) (looks
    abandoned) - https://github.com/stjerm/stjerm/issues/39
    - **libvte**-based [stjerm](https://github.com/stjerm/stjerm) (looks abandoned) - [issue #39](https://github.com/stjerm/stjerm/issues/39)
    # Console Programs + True Color
    # Console Programs + Truecolor
    ## Console Programs Supporting True Color
    ## Console Programs Supporting Truecolor
    - [s-lang](http://lists.jedsoft.org/lists/slang-users/2015/0000020.html)
    library - (since pre2.3.1-35, for 64bit systems)
    @@ -316,16 +348,17 @@ much more complex)
    [682a5...](http://www.midnight-commander.org/changeset/682a5116edd20b8ba81743a1f7495c883b0ce644).
    See also [ticket #3724](http://www.midnight-commander.org/ticket/3724) for
    truecolor themes.
    - [vifm](https://github.com/vifm/vifm) file manager - since 0.12 version
    - [irssi](https://github.com/irssi/irssi) - since
    [PR #48](https://github.com/irssi/irssi/pull/48)
    - [neovim](https://github.com/neovim/neovim) - since commit
    [8dd415e887923f99ab5daaeba9f0303e173dd1aa](https://github.com/neovim/neovim/commit/8dd415e887923f99ab5daaeba9f0303e173dd1aa);
    need to set
    [termguicolors](https://neovim.io/doc/user/options.html#%27termguicolors) to
    enable true color.
    enable truecolor.
    - [vim](https://github.com/vim/vim) - (from 7.4.1770); need to set
    [termguicolors](https://github.com/vim/vim/blob/master/runtime/doc/version8.txt#L202)
    to enable true color.
    to enable truecolor.
    - [joe](https://sf.net/p/joe-editor) - (from
    [4.5](https://sourceforge.net/p/joe-editor/news/2017/09/joe-45-released/)
    version)
    @@ -346,19 +379,18 @@ much more complex)
    `ls` program that supports icons
    - [mpv](https://github.com/mpv-player/mpv) - video player with support of
    console-only output (since 0.22 version)
    - [radare2](https://github.com/radare/radare2) - reverse engineering franework;
    - [radare2](https://github.com/radareorg/radare2) - reverse engineering framework;
    since 0.9.6 version.
    ## Console Programs Not Supporting True Color
    - mutt (email client) - http://dev.mutt.org/trac/ticket/3674
    - neomutt (email client) - https://github.com/neomutt/neomutt/issues/85
    - termbox library - https://github.com/nsf/termbox/issues/37
    - mcabber (jabber client) -
    https://bitbucket.org/McKael/mcabber-crew/issue/126/support-for-true-color-16-millions-colors
    - tig (git TUI) - https://github.com/jonas/tig/issues/227
    - cmus (music player) - https://github.com/cmus/cmus/issues/799
    - weechat (chat client) - https://github.com/weechat/weechat/issues/1364
    - scim (spreadsheet program) - https://github.com/andmarti1424/sc-im/issues/306
    - [gui.cs](https://github.com/migueldeicaza/gui.cs) Terminal UI toolkit for .NET
    (curses-like) - https://github.com/migueldeicaza/gui.cs/issues/48
    - [rizin](https://github.com/rizinorg/rizin) - reverse engineering framework; since the inception (a fork of radare2).
    ## Console Programs Not Supporting Truecolor
    - [mutt](http://mutt.org) (email client) - http://dev.mutt.org/trac/ticket/3674
    - [neomutt](https://github.com/neomutt/neomutt) (email client) - [issue #58](https://github.com/neomutt/neomutt/issues/85)
    - [termbox](https://github.com/nsf/termbox) library - [issue #37](https://github.com/nsf/termbox/issues/37) (there is a fork [termbox_next](https://github.com/cylgom/termbox_next) with the support
    - [https://bitbucket.org/McKael/mcabber-crew](mcabber) (jabber client) - [issue #126](https://bitbucket.org/McKael/mcabber-crew/issue/126/support-for-true-color-16-millions-colors)
    - [tig](https://github.com/jonas/tig/) (git TUI) - [issue #227](https://github.com/jonas/tig/issues/227)
    - [cmus](https://github.com/cmus/cmus) (music player) - [issue #799](https://github.com/cmus/cmus/issues/799)
    - [weechat](https://github.com/weechat/weechat) (chat client) - [issue #1364](https://github.com/weechat/weechat/issues/1364)
    - [scim](https://github.com/andmarti1424/sc-im) (spreadsheet program) - [issue #306](https://github.com/andmarti1424/sc-im/issues/306)
    - [gui.cs](https://github.com/migueldeicaza/gui.cs) Terminal UI toolkit for .NET (curses-like) - [issue #48](https://github.com/migueldeicaza/gui.cs/issues/48)
  2. @XVilka XVilka revised this gist Jul 30, 2021. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,5 @@
    **Most updated version is always available at [`termstandard/colors`](https://github.com/termstandard/colors) repository.**

    # Terminal Colors

    There exists common confusion about terminal colors. This is what we have right now:
  3. @XVilka XVilka revised this gist Oct 14, 2019. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -356,6 +356,7 @@ much more complex)
    https://bitbucket.org/McKael/mcabber-crew/issue/126/support-for-true-color-16-millions-colors
    - tig (git TUI) - https://github.com/jonas/tig/issues/227
    - cmus (music player) - https://github.com/cmus/cmus/issues/799
    - weechat (chat client) - https://github.com/weechat/weechat/issues/1364
    - scim (spreadsheet program) - https://github.com/andmarti1424/sc-im/issues/306
    - [gui.cs](https://github.com/migueldeicaza/gui.cs) Terminal UI toolkit for .NET
    (curses-like) - https://github.com/migueldeicaza/gui.cs/issues/48
  4. @XVilka XVilka revised this gist Jul 30, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -92,7 +92,7 @@ color it currently has. If the response replies the same color that was set
    then it indicates truecolor is supported.

    ```bash
    $ (echo -e '\e[48:2:1:2:3m\eP$qm\e\\' | xxd)
    $ (echo -e '\e[48:2:1:2:3m\eP$qm\e\\' ; xxd)

    ^[P1$r48:2:1:2:3m^[\
    00000000: 1b50 3124 7234 383a 323a 313a 323a 336d .P1$r48:2:1:2:3m
  5. @XVilka XVilka revised this gist Jul 25, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -92,7 +92,7 @@ color it currently has. If the response replies the same color that was set
    then it indicates truecolor is supported.

    ```bash
    $ (echo -e '\e[48:2:1:2:3m\eP$qm\e\\'; xxd)
    $ (echo -e '\e[48:2:1:2:3m\eP$qm\e\\' | xxd)

    ^[P1$r48:2:1:2:3m^[\
    00000000: 1b50 3124 7234 383a 323a 313a 323a 336d .P1$r48:2:1:2:3m
  6. @XVilka XVilka revised this gist Jul 3, 2019. 1 changed file with 48 additions and 2 deletions.
    50 changes: 48 additions & 2 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -83,6 +83,45 @@ lead to a more seamless desktop experience where only one variable needs to be
    set. This would be system-wide so that the user would not need to set it
    separately for each app.

    ## Querying The Terminal

    A more reliable method in an interactive program which can read terminal
    responses, and one that is transparent to things like sudo, SSH, etc.. is to
    simply try setting a truecolor value and then query the terminal to ask what
    color it currently has. If the response replies the same color that was set
    then it indicates truecolor is supported.

    ```bash
    $ (echo -e '\e[48:2:1:2:3m\eP$qm\e\\'; xxd)

    ^[P1$r48:2:1:2:3m^[\
    00000000: 1b50 3124 7234 383a 323a 313a 323a 336d .P1$r48:2:1:2:3m
    ```
    Here we ask to set the background color to `RGB(1,2,3)` - an unlikely default
    choice - and request the value that we just set. The response comes back that
    the request was understood (`1`), and that the color is indeed `48:2:1:2:3`.
    This tells us also that the terminal supports the colon delimiter. If instead,
    the terminal did not support truecolor we might see a response like
    ```
    ^[P1$r40m^[\
    00000000: 1b50 3124 7234 306d 1b5c 0a .P1$r40m.\.
    ```
    This terminal replied the color is `40` - it has not accepted our request to
    set `48:2:1:2:3`.
    ```
    ^[P0$r^[\
    00000000: 1b50 3024 721b 5c0a .P0$r.\.
    ```
    This terminal did not even understand the DECRQSS request - its response was
    `0$r`. We do not learn if it managed to set the color, but since it doesn't
    understand how to reply to our request it is unlikely to support truecolor
    either.
    # Terminals + True Color
    ## Now **Supporting** True Color
    @@ -107,7 +146,7 @@ separately for each app.
    - [mosh](https://mosh.org/) (Mobile SHell) [delimeter: semicolon] - since commit
    https://github.com/mobile-shell/mosh/commit/6cfa4aef598146cfbde7f7a4a83438c3769a2835
    - [pangoterm](http://www.leonerd.org.uk/code/pangoterm/) [delimeter:
    semicolon] - **abandoned**
    colon, semicolon]
    - [Termux](https://termux.com/) [delimeter: semicolon] - **Android platform**
    - [ConnectBot](https://connectbot.org/) - **Android platform** - since
    https://github.com/connectbot/connectbot/commit/3bcc75ccedaf2136b04c5932c81a5155f29dc3b5
    @@ -123,6 +162,13 @@ separately for each app.
    semicolon] - **Windows platform**
    - [ConEmu](https://github.com/Maximus5/ConEmu) [delimeter: semicolon] -
    **Windows platform**
    - [Windows
    Powershell](https://en.wikipedia.org/wiki/PowerShell#PowerShell_5.1)
    [delimeter: semicolon] - aka Powershell 5.x and below **Windows 10**
    - [Powershell Core](https://github.com/PowerShell/PowerShell) [delimeter:
    semicolon] aka Powershell 6+ **Windows 10**
    - [cmd.exe](https://en.wikipedia.org/wiki/Cmd.exe) [delimeter:
    semicolon] Builtin Windows shell that is mostly unchanged since DOS **Windows 10**
    - [FinalTerm](http://finalterm.org/) [delimeter: semicolon] -
    **[abandoned](http://worldwidemann.com/finally-terminated/)**, iTerm2
    [borrowing it's ideas and features](http://iterm2.com/shell_integration.html).
    @@ -142,7 +188,7 @@ separately for each app.
    - Windows 10 bash console, since
    [Windows Insiders build 14931](https://blogs.msdn.microsoft.com/commandline/2016/09/22/24-bit-color-in-the-windows-console/)
    - all [libvte](http://ftp.gnome.org/pub/GNOME/sources/vte/) based terminals
    (since 0.36 version) [delimeter: colon, semilocon] -
    (since 0.36 version) [delimeter: colon, semicolon] -
    https://bugzilla.gnome.org/show_bug.cgi?id=704449
    - **libvte**-based
    [Gnome Terminal](https://help.gnome.org/users/gnome-terminal/stable/)
  7. @XVilka XVilka revised this gist Apr 3, 2019. 1 changed file with 283 additions and 163 deletions.
    446 changes: 283 additions & 163 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -1,33 +1,38 @@
    Colours in terminal
    ==================
    It's a common confusion about terminal colours... Actually we have this:
    * plain ascii
    * ansi escape codes (16 colour codes with bold/italic and background)
    * 256 colour palette (216 colours + 16 ansi + 24 gray) (colors are 24bit)
    * 24bit true colour ("888" colours (aka 16 milion))
    # Terminal Colors

    ```
    There exists common confusion about terminal colors. This is what we have right now:

    - Plain ASCII
    - ANSI escape codes: 16 color codes with bold/italic and background
    - 256 color palette: 216 colors + 16 ANSI + 24 gray (colors are 24-bit)
    - 24-bit true color: "888" colors (aka 16 milion)

    ```bash
    printf "\x1b[${bg};2;${red};${green};${blue}m\n"
    ```

    The 256 colour palete is configured at start, and it's a 666 cube of
    colours, each of them defined as a 24bit (888 rgb) colour.
    The 256-color palette is configured at start and is a 666-cube of colors,
    each of them defined as a 24-bit (888 rgb) color.

    This means that current support can only display 256 different colours
    in the terminal, while truecolour means that you can display 16 milion
    different colours at the same time.
    This means that current support can only display 256 different colors in the
    terminal while "true color" means that you can display 16 million different
    colors at the same time.

    Truecolour escape codes doesn't use a colour palette. They just specify the
    colour itself.
    Truecolor escape codes do not use a color palette. They just specify the
    color itself.

    Here's a test case:
    ```
    This is a good test case:

    ```bash
    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
    * or just run this:

    - 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
    - or just run this:

    ```sh
    awk 'BEGIN{
    s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
    @@ -44,152 +49,267 @@ awk 'BEGIN{
    }'
    ```

    Keep in mind that it is possible to use both ';' and ':' as parameters delimiter.
    Keep in mind that it is possible to use both ';' and ':' as Control Sequence
    Introducer delimiters.

    According to Wikipedia[1], this is only supported by xterm and konsole.
    According to Wikipedia[1], this behavior is only supported by xterm and konsole.

    [1] https://en.wikipedia.org/wiki/ANSI_color

    Since [ncurses-6.0-20180121](http://lists.gnu.org/archive/html/bug-ncurses/2018-01/msg00045.html) terminfo started to support 24-bit truecolor capability under the name of "RGB" - you need to use the "setaf" and "setab" commands to set foreground and background correspondingly.

    Detection
    =========

    There's no reliable way until the new release of terminfo/ncurses. After that the "RGB" flag should be available for detection. S-Lang author added a check for $COLORTERM containing either "truecolor" or "24bit" (case sensitive). In turn, [VTE](https://bugzilla.gnome.org/show_bug.cgi?id=754521), [Konsole](https://bugs.kde.org/show_bug.cgi?id=371919) and [iTerm2](https://gitlab.com/gnachman/iterm2/issues/5294) set this variable to "truecolor" (it's been there in VTE for a while, it's relatively new and maybe still git-only in Konsole and iTerm2).

    This is obviously not a reliable method, and is not forwarded via sudo, ssh etc. However, whenever it errs, it errs on the safe side: does not advertise support whereas it's actually supported. App developers can freely choose to check for this same variable, or introduce their own method (e.g. an option in their config file), whichever matches better the overall design of the given app. Checking $COLORTERM is recommended though, since that would lead to a more unique desktop experience where the user has to set one variable only and it takes effect across all the apps, rather than something separately for each app.

    Here are terminals discussions:
    ==============================

    Now **supporting** truecolour
    ----------------------------

    * [st](http://st.suckless.org/) (from suckless) [delimeter: semicolon] - http://lists.suckless.org/dev/1307/16688.html
    * [xst](https://github.com/gnotclub/xst/) - fork of st
    * [konsole](http://kde.org/applications/system/konsole/) [delimeter: colon, semicolon] - https://bugs.kde.org/show_bug.cgi?id=107487
    * [iTerm2](http://www.iterm2.com/) [delimeter: colon, semicolon] - since v3 version
    * [Therm](https://github.com/trufae/Therm) [delimeter: colon, semicolon] - fork of iTerm2
    * [qterminal](https://github.com/lxqt/qterminal) [delimeter: semicolon] - https://github.com/qterminal/qterminal/issues/78
    * [alacritty](https://github.com/jwilm/alacritty) [delimeter: semicolon] - written in Rust
    * [kitty](https://github.com/kovidgoyal/kitty) [delimeter: colon,semicolon] - uses OpenGL
    * [cool-retro-term](https://github.com/Swordfish90/cool-retro-term) [delimeter: semicolon]
    * [mosh](https://mosh.org/) (Mobile SHell) [delimeter: semicolon] - since commit https://github.com/mobile-shell/mosh/commit/6cfa4aef598146cfbde7f7a4a83438c3769a2835
    * [pangoterm](http://www.leonerd.org.uk/code/pangoterm/) [delimeter: semicolon] - **abandoned**
    * [Termux](https://termux.com/) [delimeter: semicolon] - **Android platform**
    * [ConnectBot](https://connectbot.org/) - **Android platform** - since https://github.com/connectbot/connectbot/commit/3bcc75ccedaf2136b04c5932c81a5155f29dc3b5
    * [Black Screen](https://github.com/shockone/black-screen) [delimeter: semicolon] - crossplatform, HTML/CSS/JS-based
    * [hterm](https://chromium.googlesource.com/apps/libapps/+/master/hterm) - HTML/CSS/JS-based (ChromeOS)
    * [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/) - [landed](https://git.tartarus.org/?p=simon/putty.git;a=commit;h=a4cbd3dfdb71d258e83bbf5b03a874c06d0b3106) in git (patched version [3] {xterm-like approximation to 256 colors} and [4] {real true colors} available) - **Windows platform**
    * [Tera Term](http://en.sourceforge.jp/projects/ttssh2/) [delimeter: colon, semicolon] - **Windows platform**
    * [ConEmu](https://github.com/Maximus5/ConEmu) [delimeter: semicolon] - **Windows platform**
    * [FinalTerm](http://finalterm.org/) [delimeter: semicolon] - **[abandoned](http://worldwidemann.com/finally-terminated/)**, iTerm2 [borrowing it's ideas and features](http://iterm2.com/shell_integration.html).
    * [MacTerm](https://github.com/kmgrant/macterm) [delimeter: semicolon] - **Mac OS X platform**
    * [mintty](https://mintty.github.io/) [delimeter: semicolon] **Cygwin and MSYS/MSYS2** since commit https://github.com/mintty/mintty/commit/43f0ed8a46c6549cb9a3ea27abc057b5abe13bdb (2.0.1 release) - **Windows platform**
    * [MobaXterm](http://mobaxterm.mobatek.net/) **Windows platform** - closed source (run `lscolors` to see a truecolor test)
    * [ZOC](https://www.emtec.com/zoc/index.html) **Windows/OS X platform** - closed source since [7.19.0 version](http://www.emtec.com/downloads/zoc/zoc_changes.txt)
    * Windows 10 bash console, since [Windows Insiders build 14931](https://blogs.msdn.microsoft.com/commandline/2016/09/22/24-bit-color-in-the-windows-console/)
    * all [libvte](http://ftp.gnome.org/pub/GNOME/sources/vte/) based terminals (since 0.36 version) [delimeter: colon, semilocon] - https://bugzilla.gnome.org/show_bug.cgi?id=704449
    * **libvte**-based [Gnome Terminal](https://help.gnome.org/users/gnome-terminal/stable/)
    * **libvte**-based [sakura](http://www.pleyades.net/david/projects/sakura)
    * **libvte**-based [xfce4-terminal](http://docs.xfce.org/apps/terminal/start) - since [0.6.90](https://github.com/xfce-mirror/xfce4-terminal/releases/tag/xfce4-terminal-0.6.90) release, if compiled with GTK+3
    * **libvte**-based [Terminator](http://gnometerminator.blogspot.com/p/introduction.html) - since [1.90](https://launchpad.net/terminator/+announcement/14358) release
    * **libvte**-based [Tilix](https://github.com/gnunn1/tilix) - written in D. Similar user interface as for Terminator.
    * **libvte**-based [Lilyterm](http://lilyterm.luna.com.tw/) - since commit https://github.com/Tetralet/LilyTerm/commit/72536e7ba448ad9ef1126ce45fbde3a3407a271b
    * **libvte**-based [ROXTerm](http://roxterm.sourceforge.net/)
    * **libvte**-based [evilvte](http://www.calno.com/evilvte/) - no release yet, version from git https://github.com/caleb-/evilvte
    * **libvte**-based [Termit](https://github.com/nonstop/termit)
    * **libvte**-based [Termite](https://github.com/thestinger/termite)
    * **libvte**-based [Tilda](https://github.com/lanoxx/tilda)
    * **libvte**-based [tinyterm](https://code.google.com/p/tinyterm)
    * **libvte**-based [Pantheon Terminal](https://launchpad.net/pantheon-terminal)
    * **libvte**-based [lxterminal](http://sourceforge.net/projects/lxde) - with **--enable-gtk3** configure flag.

    But there are bunch of libvte-based terminals for GTK2 so they are listed in the another section.

    Also, while this one is not exactly a terminal, but a terminal replayer, it still worth mentioning:

    * [asciinema](http://asciinema.org) player: https://github.com/asciinema/asciinema-player

    Improper support for true colors
    --------------------------------

    * [mlterm](http://mlterm.sourceforge.net) - build with **--with-gtk=3.0** configure flag - approximates colors to 512 embedded palette https://sourceforge.net/p/mlterm/bugs/74/

    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")
    * [urxvt aka rxvt-unicode](http://software.schmorp.de/pkg/rxvt-unicode.html) - since [Revision 1.570](http://cvs.schmorp.de/rxvt-unicode/src/command.C?revision=1.570&view=markup&sortby=log&sortdir=down) http://lists.schmorp.de/pipermail/rxvt-unicode/2016q2/002261.html (Note there is a restriction of colors count at once still)
    * 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](http://en.wikipedia.org/wiki/Color_difference#CIEDE2000) formula (which may easily blow up performance if used blindly) [2].
    Since
    [ncurses-6.0-20180121](http://lists.gnu.org/archive/html/bug-ncurses/2018-01/msg00045.html),
    terminfo began to support the 24-bit True Color capability under the name of
    "RGB". You need to use the "setaf" and "setab" commands to set the foreground
    and background respectively.

    # True Color Detection

    There will be no reliable way to detect the "RGB" flag until the new release of
    terminfo/ncurses. S-Lang author added a check for $COLORTERM containing either
    "truecolor" or "24bit" (case sensitive). In addition,
    [VTE](https://bugzilla.gnome.org/show_bug.cgi?id=754521),
    [Konsole](https://bugs.kde.org/show_bug.cgi?id=371919) and
    [iTerm2](https://gitlab.com/gnachman/iterm2/issues/5294) set this variable to
    "truecolor". It has been in VTE for a while and but is relatively new, being
    still git-only in Konsole and iTerm2).

    This is obviously not a reliable method, and is not forwarded via sudo, SSH etc.
    However, whenever it errs, it errs on the safe side. It does not advertise
    support when it is actually supported. App developers can freely choose to
    check for this same variable, or introduce their own method (e.g. an option in
    their config file). They should use whichever method best matches the overall
    design of their app. Checking $COLORTERM is recommended though since it will
    lead to a more seamless desktop experience where only one variable needs to be
    set. This would be system-wide so that the user would not need to set it
    separately for each app.

    # Terminals + True Color

    ## Now **Supporting** True Color

    - [st](http://st.suckless.org/) (from suckless) [delimeter: semicolon] -
    http://lists.suckless.org/dev/1307/16688.html
    - [xst](https://github.com/gnotclub/xst/) - fork of st
    - [konsole](http://kde.org/applications/system/konsole/) [delimeter: colon,
    semicolon] - https://bugs.kde.org/show_bug.cgi?id=107487
    - [iTerm2](http://www.iterm2.com/) [delimeter: colon, semicolon] - since v3
    version
    - [Therm](https://github.com/trufae/Therm) [delimeter: colon, semicolon] - fork
    of iTerm2
    - [qterminal](https://github.com/lxqt/qterminal) [delimeter: semicolon] -
    https://github.com/qterminal/qterminal/issues/78
    - [alacritty](https://github.com/jwilm/alacritty) [delimeter: semicolon] -
    written in Rust
    - [kitty](https://github.com/kovidgoyal/kitty) [delimeter: colon,semicolon] -
    uses OpenGL
    - [cool-retro-term](https://github.com/Swordfish90/cool-retro-term) [delimeter:
    semicolon]
    - [mosh](https://mosh.org/) (Mobile SHell) [delimeter: semicolon] - since commit
    https://github.com/mobile-shell/mosh/commit/6cfa4aef598146cfbde7f7a4a83438c3769a2835
    - [pangoterm](http://www.leonerd.org.uk/code/pangoterm/) [delimeter:
    semicolon] - **abandoned**
    - [Termux](https://termux.com/) [delimeter: semicolon] - **Android platform**
    - [ConnectBot](https://connectbot.org/) - **Android platform** - since
    https://github.com/connectbot/connectbot/commit/3bcc75ccedaf2136b04c5932c81a5155f29dc3b5
    - [Black Screen](https://github.com/shockone/black-screen) [delimeter:
    semicolon] - crossplatform, HTML/CSS/JS-based
    - [hterm](https://chromium.googlesource.com/apps/libapps/+/master/hterm) -
    HTML/CSS/JS-based (ChromeOS)
    - [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/) -
    [landed](https://git.tartarus.org/?p=simon/putty.git;a=commit;h=a4cbd3dfdb71d258e83bbf5b03a874c06d0b3106)
    in git (patched version [3] {xterm-like approximation to 256 colors} and [4]
    {real true colors} available) - **Windows platform**
    - [Tera Term](http://en.sourceforge.jp/projects/ttssh2/) [delimeter: colon,
    semicolon] - **Windows platform**
    - [ConEmu](https://github.com/Maximus5/ConEmu) [delimeter: semicolon] -
    **Windows platform**
    - [FinalTerm](http://finalterm.org/) [delimeter: semicolon] -
    **[abandoned](http://worldwidemann.com/finally-terminated/)**, iTerm2
    [borrowing it's ideas and features](http://iterm2.com/shell_integration.html).
    - [MacTerm](https://github.com/kmgrant/macterm) [delimeter: semicolon] - **Mac
    OS X platform**
    - [mintty](https://mintty.github.io/) [delimeter: semicolon] **Cygwin and
    MSYS/MSYS2** since commit
    https://github.com/mintty/mintty/commit/43f0ed8a46c6549cb9a3ea27abc057b5abe13bdb
    (2.0.1 release) - **Windows platform**
    - [MobaXterm](http://mobaxterm.mobatek.net/) **Windows platform** - closed
    source (run `lscolors` to see a truecolor test)
    - [ZOC](https://www.emtec.com/zoc/index.html) **Windows/OS X platform** - closed
    source since
    [7.19.0 version](http://www.emtec.com/downloads/zoc/zoc_changes.txt)
    - [upterm](https://github.com/railsware/upterm) *Windows/Macos/Linux Electron* -
    A terminal emulator for the 21st century.
    - Windows 10 bash console, since
    [Windows Insiders build 14931](https://blogs.msdn.microsoft.com/commandline/2016/09/22/24-bit-color-in-the-windows-console/)
    - all [libvte](http://ftp.gnome.org/pub/GNOME/sources/vte/) based terminals
    (since 0.36 version) [delimeter: colon, semilocon] -
    https://bugzilla.gnome.org/show_bug.cgi?id=704449
    - **libvte**-based
    [Gnome Terminal](https://help.gnome.org/users/gnome-terminal/stable/)
    - **libvte**-based [sakura](http://www.pleyades.net/david/projects/sakura)
    - **libvte**-based
    [xfce4-terminal](http://docs.xfce.org/apps/terminal/start) - since
    [0.6.90](https://github.com/xfce-mirror/xfce4-terminal/releases/tag/xfce4-terminal-0.6.90)
    release, if compiled with GTK+3
    - **libvte**-based
    [Terminator](http://gnometerminator.blogspot.com/p/introduction.html) -
    since [1.90](https://launchpad.net/terminator/+announcement/14358) release
    - **libvte**-based [Tilix](https://github.com/gnunn1/tilix) - written in D.
    Similar user interface as for Terminator.
    - **libvte**-based [Lilyterm](http://lilyterm.luna.com.tw/) - since commit
    https://github.com/Tetralet/LilyTerm/commit/72536e7ba448ad9ef1126ce45fbde3a3407a271b
    - **libvte**-based [ROXTerm](http://roxterm.sourceforge.net/)
    - **libvte**-based [evilvte](http://www.calno.com/evilvte/) - no release yet,
    version from git https://github.com/caleb-/evilvte
    - **libvte**-based [Termit](https://github.com/nonstop/termit)
    - **libvte**-based [Termite](https://github.com/thestinger/termite)
    - **libvte**-based [Tilda](https://github.com/lanoxx/tilda)
    - **libvte**-based [tinyterm](https://code.google.com/p/tinyterm)
    - **libvte**-based
    [Pantheon Terminal](https://launchpad.net/pantheon-terminal)
    - **libvte**-based [lxterminal](http://sourceforge.net/projects/lxde) - with
    **--enable-gtk3** configure flag.
    - **libvte**-based [guake](http://guake-project.org/) - A top-down terminal for GNOME

    There are a bunch of libvte-based terminals for GTK2, so they are listed in the
    another section.

    Also, while this one is not a terminal, but a terminal replayer, it is
    still worth mentioning:

    - [asciinema](http://asciinema.org) player:
    https://github.com/asciinema/asciinema-player

    ## Improper Support for True Color

    - [mlterm](http://mlterm.sourceforge.net) - built with **--with-gtk=3.0**
    configure flag. Approximates colors to 512 embedded palette
    (https://sourceforge.net/p/mlterm/bugs/74/)

    ## Terminals that parse ANSI color sequences, but approximate them to 256 palette

    - xterm (but doing it wrong: "it uses nearest color in RGB color space,
    with a usual false assumption about orthogonal axes")
    - [urxvt aka rxvt-unicode](http://software.schmorp.de/pkg/rxvt-unicode.html) -
    since
    [Revision 1.570](http://cvs.schmorp.de/rxvt-unicode/src/command.C?revision=1.570&view=markup&sortby=log&sortdir=down)
    http://lists.schmorp.de/pipermail/rxvt-unicode/2016q2/002261.html (Note there
    is a restriction of colors count still)
    - linux console (since v3.16):
    https://github.com/torvalds/linux/commit/cec5b2a97a11ade56a701e83044d0a2a984c67b4

    Note about color differences:
    a) RGB axes are not orthogonal, so you cannot use
    sqrt(R^2+G^2+B^2) formula
    b) for color differences there is more correct (but
    much more complex)
    [CIEDE2000](http://en.wikipedia.org/wiki/Color_difference#CIEDE2000) formula
    (which may easily blow up performance if used blindly) [2].

    [2] https://github.com/neovim/neovim/issues/793#issuecomment-48106948

    Terminal multiplexers
    ---------------------

    * [tmux](http://tmux.github.io/) - starting from version 2.2 (support since [427b820...](https://github.com/tmux/tmux/commit/427b8204268af5548d09b830e101c59daa095df9))
    * [screen](http://git.savannah.gnu.org/cgit/screen.git/) - has support in 'master' branch, need to be enabled (see 'truecolor' option)
    * [pymux](https://github.com/jonathanslenders/pymux) - tmux clone in pure Python (to enable truecolour run pymux with `--truecolor` option)
    * [dvtm](https://github.com/martanne/dvtm) - not yet supporting True Colour https://github.com/martanne/dvtm/issues/10

    **NOT supporting** truecolour
    ----------------------------

    * [Terminology](https://www.enlightenment.org/about-terminology) (Enlightenment) - https://phab.enlightenment.org/T746
    * [Hyper.app](https://hyper.is/) [delimeter: semicolon] - crossplatform, HTML/CSS/JS-based (Electron) https://github.com/zeit/hyper/issues/2294
    * [mrxvt](https://sourceforge.net/projects/materm) (looks abandoned) - https://sourceforge.net/p/materm/feature-requests/41/
    * [aterm](http://www.afterstep.org/aterm.php) (looks abandoned) - https://sourceforge.net/p/aterm/feature-requests/23/
    * [fbcon](https://www.kernel.org/doc/Documentation/fb/fbcon.txt) (from linux kernel) - https://bugzilla.kernel.org/show_bug.cgi?id=79551
    * FreeBSD console - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191652
    * [yaft](https://github.com/uobikiemukot/yaft) framebuffer terminal - https://github.com/uobikiemukot/yaft/issues/12
    * [KiTTY](http://www.9bis.net/kitty/) - **Windows platform**
    * [MTPuTTY](ttyplus.com) - **Windows platform**
    * [mRemoteNG](https://mremoteng.org/) - **Windows platform** - https://github.com/mRemoteNG/mRemoteNG/issues/717
    * [JuiceSSH](https://juicessh.com/) - **Adroid platform**, closed source
    * [Termius](https://www.termius.com/) - **Linux, Windows, OS X platforms**, closed source
    * [SmarTTY](http://smartty.sysprogs.com/) - **Windows platform** - closed source (sent them a request)
    * [Netsarang XShell](https://www.netsarang.com/products/xsh_overview.html) - closed source (sent them an email)
    * libvte and GTK2 - based:
    * **libvte**-based [GTKTerm2](http://gtkterm.feige.net/)
    * **libvte**-based [stjerm](https://github.com/stjerm/stjerm) (looks abandoned) - https://github.com/stjerm/stjerm/issues/39

    Here are another console programs:
    ==================================

    Supporting True Colour:

    * [s-lang](http://lists.jedsoft.org/lists/slang-users/2015/0000020.html) library - (since pre2.3.1-35, for 64bit systems)
    * [ncurses](https://www.gnu.org/software/ncurses/) library - since 6.1 version
    * [Eternal Terminal](https://mistertea.github.io/EternalTCP/) - automatically reconnecting shell
    * [mc](http://www.midnight-commander.org) - since [682a5...](http://www.midnight-commander.org/changeset/682a5116edd20b8ba81743a1f7495c883b0ce644). See also [ticket #3724](http://www.midnight-commander.org/ticket/3724) for truecolor themes.
    * [irssi](https://github.com/irssi/irssi) - since [PR #48](https://github.com/irssi/irssi/pull/48)
    * [neovim](https://github.com/neovim/neovim) - since commit [8dd415e887923f99ab5daaeba9f0303e173dd1aa](https://github.com/neovim/neovim/commit/8dd415e887923f99ab5daaeba9f0303e173dd1aa); need to set [termguicolors](https://neovim.io/doc/user/options.html#%27termguicolors) to enable true color.
    * [vim](https://github.com/vim/vim) - (from 7.4.1770); need to set [termguicolors](https://github.com/vim/vim/blob/master/runtime/doc/version8.txt#L202) to enable true color.
    * [joe](https://sf.net/p/joe-editor) - (from [4.5](https://sourceforge.net/p/joe-editor/news/2017/09/joe-45-released/) version)
    * [emacs](https://www.gnu.org/software/emacs/) - since [26.1 release](https://lists.gnu.org/archive/html/emacs-devel/2018-05/msg00765.html)
    * [micro editor](https://micro-editor.github.io/)
    * [elinks](http://repo.or.cz/w/elinks.git) - [configure.in:1410](http://repo.or.cz/w/elinks.git/blob/HEAD:/configure.in#l1410) (./configure --enable-true-color)
    * [tcell](https://github.com/gdamore/tcell) library for Go language
    * [timg](https://github.com/hzeller/timg) - Terminal Image Viewer
    * [tv](https://github.com/daleroberts/tv) - tool to quickly view high-resolution multi-band imagery directly in terminal
    * [termimage](https://github.com/nabijaczleweli/termimage) - terminal image viewer
    * [explosion](https://github.com/Tenzer/explosion) - terminal image viewer
    * [ls-icons](https://github.com/sebastiencs/ls-icons) - fork of coreutils with `ls` program that supports icons
    * [mpv](https://github.com/mpv-player/mpv) - video player with support of console-only output (since 0.22 version)
    * [radare2](https://github.com/radare/radare2) - reverse engineering franework; since 0.9.6 version.

    Not supporting True Colour:

    * mutt (email client) - http://dev.mutt.org/trac/ticket/3674
    * neomutt (email client) - https://github.com/neomutt/neomutt/issues/85
    * termbox library - https://github.com/nsf/termbox/issues/37
    * mcabber (jabber client) - https://bitbucket.org/McKael/mcabber-crew/issue/126/support-for-true-color-16-millions-colors
    * tig (git TUI) - https://github.com/jonas/tig/issues/227
    * cmus (music player) - https://github.com/cmus/cmus/issues/799
    * scim (spreadsheet program) - https://github.com/andmarti1424/sc-im/issues/306
    * [gui.cs](https://github.com/migueldeicaza/gui.cs) Terminal UI toolkit for .NET (curses-like) - https://github.com/migueldeicaza/gui.cs/issues/48

    ## Terminal multiplexers

    - [tmux](http://tmux.github.io/) - starting from version 2.2 (support since
    [427b820...](https://github.com/tmux/tmux/commit/427b8204268af5548d09b830e101c59daa095df9))
    - [screen](http://git.savannah.gnu.org/cgit/screen.git/) - has support in
    'master' branch, need to be enabled (see 'truecolor' option)
    - [pymux](https://github.com/jonathanslenders/pymux) - tmux clone in pure Python
    (to enable truecolor run pymux with `--truecolor` option)
    - [dvtm](https://github.com/martanne/dvtm) - not yet supporting True Color
    https://github.com/martanne/dvtm/issues/10

    ## **NOT Supporting** True Color

    - [Terminal.app](https://en.wikipedia.org/wiki/Terminal_(macOS)): Macos Terminal builtin
    - [Terminology](https://www.enlightenment.org/about-terminology)
    (Enlightenment) - https://phab.enlightenment.org/T746
    - [Hyper.app](https://hyper.is/) [delimeter: semicolon] - crossplatform,
    HTML/CSS/JS-based (Electron) https://github.com/zeit/hyper/issues/2294
    - [Cmder](https://cmder.net/): Portable console emulator for Windows,
    based on ConEmu.
    - [Terminus](https://github.com/Eugeny/terminus):
    highly configurable terminal emulator for Windows, macOS and Linux
    - [mrxvt](https://sourceforge.net/projects/materm) (looks abandoned) -
    https://sourceforge.net/p/materm/feature-requests/41/
    - [aterm](http://www.afterstep.org/aterm.php) (looks abandoned) -
    https://sourceforge.net/p/aterm/feature-requests/23/
    - [fbcon](https://www.kernel.org/doc/Documentation/fb/fbcon.txt) (from linux
    kernel) - https://bugzilla.kernel.org/show_bug.cgi?id=79551
    - FreeBSD console - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191652
    - [yaft](https://github.com/uobikiemukot/yaft) framebuffer terminal -
    https://github.com/uobikiemukot/yaft/issues/12
    - [KiTTY](http://www.9bis.net/kitty/) - **Windows platform**
    - [MTPuTTY](ttyplus.com) - **Windows platform**
    - [mRemoteNG](https://mremoteng.org/) - **Windows platform** -
    https://github.com/mRemoteNG/mRemoteNG/issues/717
    - [JuiceSSH](https://juicessh.com/) - **Adroid platform**, closed source
    - [Termius](https://www.termius.com/) - **Linux, Windows, OS X platforms**,
    closed source
    - [SmarTTY](http://smartty.sysprogs.com/) - **Windows platform** - closed source
    (sent them a request)
    - [Netsarang XShell](https://www.netsarang.com/products/xsh_overview.html) -
    closed source (sent them an email)
    - libvte and GTK2 - based:
    - **libvte**-based [GTKTerm2](http://gtkterm.feige.net/)
    - **libvte**-based [stjerm](https://github.com/stjerm/stjerm) (looks
    abandoned) - https://github.com/stjerm/stjerm/issues/39

    # Console Programs + True Color

    ## Console Programs Supporting True Color

    - [s-lang](http://lists.jedsoft.org/lists/slang-users/2015/0000020.html)
    library - (since pre2.3.1-35, for 64bit systems)
    - [ncurses](https://www.gnu.org/software/ncurses/) library - since 6.1 version
    - [Eternal Terminal](https://mistertea.github.io/EternalTCP/) - automatically
    reconnecting shell
    - [mc](http://www.midnight-commander.org) - since
    [682a5...](http://www.midnight-commander.org/changeset/682a5116edd20b8ba81743a1f7495c883b0ce644).
    See also [ticket #3724](http://www.midnight-commander.org/ticket/3724) for
    truecolor themes.
    - [irssi](https://github.com/irssi/irssi) - since
    [PR #48](https://github.com/irssi/irssi/pull/48)
    - [neovim](https://github.com/neovim/neovim) - since commit
    [8dd415e887923f99ab5daaeba9f0303e173dd1aa](https://github.com/neovim/neovim/commit/8dd415e887923f99ab5daaeba9f0303e173dd1aa);
    need to set
    [termguicolors](https://neovim.io/doc/user/options.html#%27termguicolors) to
    enable true color.
    - [vim](https://github.com/vim/vim) - (from 7.4.1770); need to set
    [termguicolors](https://github.com/vim/vim/blob/master/runtime/doc/version8.txt#L202)
    to enable true color.
    - [joe](https://sf.net/p/joe-editor) - (from
    [4.5](https://sourceforge.net/p/joe-editor/news/2017/09/joe-45-released/)
    version)
    - [emacs](https://www.gnu.org/software/emacs/) - since
    [26.1 release](https://lists.gnu.org/archive/html/emacs-devel/2018-05/msg00765.html)
    - [micro editor](https://micro-editor.github.io/)
    - [elinks](http://repo.or.cz/w/elinks.git) -
    [configure.in:1410](http://repo.or.cz/w/elinks.git/blob/HEAD:/configure.in#l1410)
    (./configure --enable-true-color)
    - [tcell](https://github.com/gdamore/tcell) library for Go language
    - [timg](https://github.com/hzeller/timg) - Terminal Image Viewer
    - [tv](https://github.com/daleroberts/tv) - tool to quickly view high-resolution
    multi-band imagery directly in terminal
    - [termimage](https://github.com/nabijaczleweli/termimage) - terminal image
    viewer
    - [explosion](https://github.com/Tenzer/explosion) - terminal image viewer
    - [ls-icons](https://github.com/sebastiencs/ls-icons) - fork of coreutils with
    `ls` program that supports icons
    - [mpv](https://github.com/mpv-player/mpv) - video player with support of
    console-only output (since 0.22 version)
    - [radare2](https://github.com/radare/radare2) - reverse engineering franework;
    since 0.9.6 version.

    ## Console Programs Not Supporting True Color

    - mutt (email client) - http://dev.mutt.org/trac/ticket/3674
    - neomutt (email client) - https://github.com/neomutt/neomutt/issues/85
    - termbox library - https://github.com/nsf/termbox/issues/37
    - mcabber (jabber client) -
    https://bitbucket.org/McKael/mcabber-crew/issue/126/support-for-true-color-16-millions-colors
    - tig (git TUI) - https://github.com/jonas/tig/issues/227
    - cmus (music player) - https://github.com/cmus/cmus/issues/799
    - scim (spreadsheet program) - https://github.com/andmarti1424/sc-im/issues/306
    - [gui.cs](https://github.com/migueldeicaza/gui.cs) Terminal UI toolkit for .NET
    (curses-like) - https://github.com/migueldeicaza/gui.cs/issues/48
  8. @XVilka XVilka revised this gist Mar 8, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -173,7 +173,7 @@ Supporting True Colour:
    * [emacs](https://www.gnu.org/software/emacs/) - since [26.1 release](https://lists.gnu.org/archive/html/emacs-devel/2018-05/msg00765.html)
    * [micro editor](https://micro-editor.github.io/)
    * [elinks](http://repo.or.cz/w/elinks.git) - [configure.in:1410](http://repo.or.cz/w/elinks.git/blob/HEAD:/configure.in#l1410) (./configure --enable-true-color)
    * [tcell](github.com/gdamore/tcell) library for Go language
    * [tcell](https://github.com/gdamore/tcell) library for Go language
    * [timg](https://github.com/hzeller/timg) - Terminal Image Viewer
    * [tv](https://github.com/daleroberts/tv) - tool to quickly view high-resolution multi-band imagery directly in terminal
    * [termimage](https://github.com/nabijaczleweli/termimage) - terminal image viewer
  9. @XVilka XVilka revised this gist Feb 4, 2019. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -157,8 +157,8 @@ Terminal multiplexers
    * **libvte**-based [GTKTerm2](http://gtkterm.feige.net/)
    * **libvte**-based [stjerm](https://github.com/stjerm/stjerm) (looks abandoned) - https://github.com/stjerm/stjerm/issues/39

    Here are another console programs discussions:
    ============================================
    Here are another console programs:
    ==================================

    Supporting True Colour:

  10. @XVilka XVilka revised this gist Dec 13, 2018. 1 changed file with 6 additions and 5 deletions.
    11 changes: 6 additions & 5 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -184,11 +184,12 @@ Supporting True Colour:

    Not supporting True Colour:

    * mutt - http://dev.mutt.org/trac/ticket/3674
    * neomutt - https://github.com/neomutt/neomutt/issues/85
    * mutt (email client) - http://dev.mutt.org/trac/ticket/3674
    * neomutt (email client) - https://github.com/neomutt/neomutt/issues/85
    * 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
    * tig - https://github.com/jonas/tig/issues/227
    * cmus - https://github.com/cmus/cmus/issues/799
    * mcabber (jabber client) - https://bitbucket.org/McKael/mcabber-crew/issue/126/support-for-true-color-16-millions-colors
    * tig (git TUI) - https://github.com/jonas/tig/issues/227
    * cmus (music player) - https://github.com/cmus/cmus/issues/799
    * scim (spreadsheet program) - https://github.com/andmarti1424/sc-im/issues/306
    * [gui.cs](https://github.com/migueldeicaza/gui.cs) Terminal UI toolkit for .NET (curses-like) - https://github.com/migueldeicaza/gui.cs/issues/48

  11. @XVilka XVilka revised this gist Oct 26, 2018. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -66,10 +66,11 @@ Now **supporting** truecolour
    ----------------------------

    * [st](http://st.suckless.org/) (from suckless) [delimeter: semicolon] - http://lists.suckless.org/dev/1307/16688.html
    * [xst](https://github.com/gnotclub/xst/) - fork of st
    * [konsole](http://kde.org/applications/system/konsole/) [delimeter: colon, semicolon] - https://bugs.kde.org/show_bug.cgi?id=107487
    * [iTerm2](http://www.iterm2.com/) [delimeter: colon, semicolon] - since v3 version
    * [Therm](https://github.com/trufae/Therm) [delimeter: colon, semicolon] - fork of iTerm2
    * [qterminal](https://github.com/qterminal/qterminal) [delimeter: semicolon] - https://github.com/qterminal/qterminal/issues/78
    * [qterminal](https://github.com/lxqt/qterminal) [delimeter: semicolon] - https://github.com/qterminal/qterminal/issues/78
    * [alacritty](https://github.com/jwilm/alacritty) [delimeter: semicolon] - written in Rust
    * [kitty](https://github.com/kovidgoyal/kitty) [delimeter: colon,semicolon] - uses OpenGL
    * [cool-retro-term](https://github.com/Swordfish90/cool-retro-term) [delimeter: semicolon]
  12. @XVilka XVilka revised this gist Aug 23, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -78,7 +78,6 @@ Now **supporting** truecolour
    * [Termux](https://termux.com/) [delimeter: semicolon] - **Android platform**
    * [ConnectBot](https://connectbot.org/) - **Android platform** - since https://github.com/connectbot/connectbot/commit/3bcc75ccedaf2136b04c5932c81a5155f29dc3b5
    * [Black Screen](https://github.com/shockone/black-screen) [delimeter: semicolon] - crossplatform, HTML/CSS/JS-based
    * [Hyper.app](https://hyper.is/) [delimeter: semicolon] - crossplatform, HTML/CSS/JS-based (Electron)
    * [hterm](https://chromium.googlesource.com/apps/libapps/+/master/hterm) - HTML/CSS/JS-based (ChromeOS)
    * [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/) - [landed](https://git.tartarus.org/?p=simon/putty.git;a=commit;h=a4cbd3dfdb71d258e83bbf5b03a874c06d0b3106) in git (patched version [3] {xterm-like approximation to 256 colors} and [4] {real true colors} available) - **Windows platform**
    * [Tera Term](http://en.sourceforge.jp/projects/ttssh2/) [delimeter: colon, semicolon] - **Windows platform**
    @@ -140,6 +139,7 @@ Terminal multiplexers
    ----------------------------

    * [Terminology](https://www.enlightenment.org/about-terminology) (Enlightenment) - https://phab.enlightenment.org/T746
    * [Hyper.app](https://hyper.is/) [delimeter: semicolon] - crossplatform, HTML/CSS/JS-based (Electron) https://github.com/zeit/hyper/issues/2294
    * [mrxvt](https://sourceforge.net/projects/materm) (looks abandoned) - https://sourceforge.net/p/materm/feature-requests/41/
    * [aterm](http://www.afterstep.org/aterm.php) (looks abandoned) - https://sourceforge.net/p/aterm/feature-requests/23/
    * [fbcon](https://www.kernel.org/doc/Documentation/fb/fbcon.txt) (from linux kernel) - https://bugzilla.kernel.org/show_bug.cgi?id=79551
  13. @XVilka XVilka revised this gist Aug 3, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -189,4 +189,5 @@ Not supporting True Colour:
    * mcabber - https://bitbucket.org/McKael/mcabber-crew/issue/126/support-for-true-color-16-millions-colors
    * tig - https://github.com/jonas/tig/issues/227
    * cmus - https://github.com/cmus/cmus/issues/799
    * [gui.cs](https://github.com/migueldeicaza/gui.cs) Terminal UI toolkit for .NET (curses-like) - https://github.com/migueldeicaza/gui.cs/issues/48

  14. @XVilka XVilka revised this gist Jun 11, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -87,6 +87,7 @@ Now **supporting** truecolour
    * [MacTerm](https://github.com/kmgrant/macterm) [delimeter: semicolon] - **Mac OS X platform**
    * [mintty](https://mintty.github.io/) [delimeter: semicolon] **Cygwin and MSYS/MSYS2** since commit https://github.com/mintty/mintty/commit/43f0ed8a46c6549cb9a3ea27abc057b5abe13bdb (2.0.1 release) - **Windows platform**
    * [MobaXterm](http://mobaxterm.mobatek.net/) **Windows platform** - closed source (run `lscolors` to see a truecolor test)
    * [ZOC](https://www.emtec.com/zoc/index.html) **Windows/OS X platform** - closed source since [7.19.0 version](http://www.emtec.com/downloads/zoc/zoc_changes.txt)
    * Windows 10 bash console, since [Windows Insiders build 14931](https://blogs.msdn.microsoft.com/commandline/2016/09/22/24-bit-color-in-the-windows-console/)
    * all [libvte](http://ftp.gnome.org/pub/GNOME/sources/vte/) based terminals (since 0.36 version) [delimeter: colon, semilocon] - https://bugzilla.gnome.org/show_bug.cgi?id=704449
    * **libvte**-based [Gnome Terminal](https://help.gnome.org/users/gnome-terminal/stable/)
  15. @XVilka XVilka revised this gist May 29, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -168,7 +168,7 @@ Supporting True Colour:
    * [neovim](https://github.com/neovim/neovim) - since commit [8dd415e887923f99ab5daaeba9f0303e173dd1aa](https://github.com/neovim/neovim/commit/8dd415e887923f99ab5daaeba9f0303e173dd1aa); need to set [termguicolors](https://neovim.io/doc/user/options.html#%27termguicolors) to enable true color.
    * [vim](https://github.com/vim/vim) - (from 7.4.1770); need to set [termguicolors](https://github.com/vim/vim/blob/master/runtime/doc/version8.txt#L202) to enable true color.
    * [joe](https://sf.net/p/joe-editor) - (from [4.5](https://sourceforge.net/p/joe-editor/news/2017/09/joe-45-released/) version)
    * [emacs](https://www.gnu.org/software/emacs/) - since commit [e463e57...](http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=e463e57), require custom terminfo
    * [emacs](https://www.gnu.org/software/emacs/) - since [26.1 release](https://lists.gnu.org/archive/html/emacs-devel/2018-05/msg00765.html)
    * [micro editor](https://micro-editor.github.io/)
    * [elinks](http://repo.or.cz/w/elinks.git) - [configure.in:1410](http://repo.or.cz/w/elinks.git/blob/HEAD:/configure.in#l1410) (./configure --enable-true-color)
    * [tcell](github.com/gdamore/tcell) library for Go language
  16. @XVilka XVilka revised this gist May 11, 2018. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -187,4 +187,5 @@ Not supporting True Colour:
    * 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
    * tig - https://github.com/jonas/tig/issues/227
    * cmus - https://github.com/cmus/cmus/issues/799

  17. @XVilka XVilka revised this gist Feb 22, 2018. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -67,7 +67,8 @@ Now **supporting** truecolour

    * [st](http://st.suckless.org/) (from suckless) [delimeter: semicolon] - http://lists.suckless.org/dev/1307/16688.html
    * [konsole](http://kde.org/applications/system/konsole/) [delimeter: colon, semicolon] - https://bugs.kde.org/show_bug.cgi?id=107487
    * [iterm2](http://www.iterm2.com/) [delimeter: colon, semicolon] - since v3 version
    * [iTerm2](http://www.iterm2.com/) [delimeter: colon, semicolon] - since v3 version
    * [Therm](https://github.com/trufae/Therm) [delimeter: colon, semicolon] - fork of iTerm2
    * [qterminal](https://github.com/qterminal/qterminal) [delimeter: semicolon] - https://github.com/qterminal/qterminal/issues/78
    * [alacritty](https://github.com/jwilm/alacritty) [delimeter: semicolon] - written in Rust
    * [kitty](https://github.com/kovidgoyal/kitty) [delimeter: colon,semicolon] - uses OpenGL
  18. @XVilka XVilka revised this gist Feb 8, 2018. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -73,6 +73,7 @@ Now **supporting** truecolour
    * [kitty](https://github.com/kovidgoyal/kitty) [delimeter: colon,semicolon] - uses OpenGL
    * [cool-retro-term](https://github.com/Swordfish90/cool-retro-term) [delimeter: semicolon]
    * [mosh](https://mosh.org/) (Mobile SHell) [delimeter: semicolon] - since commit https://github.com/mobile-shell/mosh/commit/6cfa4aef598146cfbde7f7a4a83438c3769a2835
    * [pangoterm](http://www.leonerd.org.uk/code/pangoterm/) [delimeter: semicolon] - **abandoned**
    * [Termux](https://termux.com/) [delimeter: semicolon] - **Android platform**
    * [ConnectBot](https://connectbot.org/) - **Android platform** - since https://github.com/connectbot/connectbot/commit/3bcc75ccedaf2136b04c5932c81a5155f29dc3b5
    * [Black Screen](https://github.com/shockone/black-screen) [delimeter: semicolon] - crossplatform, HTML/CSS/JS-based
    @@ -81,7 +82,7 @@ Now **supporting** truecolour
    * [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/) - [landed](https://git.tartarus.org/?p=simon/putty.git;a=commit;h=a4cbd3dfdb71d258e83bbf5b03a874c06d0b3106) in git (patched version [3] {xterm-like approximation to 256 colors} and [4] {real true colors} available) - **Windows platform**
    * [Tera Term](http://en.sourceforge.jp/projects/ttssh2/) [delimeter: colon, semicolon] - **Windows platform**
    * [ConEmu](https://github.com/Maximus5/ConEmu) [delimeter: semicolon] - **Windows platform**
    * [FinalTerm](http://finalterm.org/) [delimeter: semicolon] - [abandoned](http://worldwidemann.com/finally-terminated/), iTerm2 [borrowing it's ideas and features](http://iterm2.com/shell_integration.html).
    * [FinalTerm](http://finalterm.org/) [delimeter: semicolon] - **[abandoned](http://worldwidemann.com/finally-terminated/)**, iTerm2 [borrowing it's ideas and features](http://iterm2.com/shell_integration.html).
    * [MacTerm](https://github.com/kmgrant/macterm) [delimeter: semicolon] - **Mac OS X platform**
    * [mintty](https://mintty.github.io/) [delimeter: semicolon] **Cygwin and MSYS/MSYS2** since commit https://github.com/mintty/mintty/commit/43f0ed8a46c6549cb9a3ea27abc057b5abe13bdb (2.0.1 release) - **Windows platform**
    * [MobaXterm](http://mobaxterm.mobatek.net/) **Windows platform** - closed source (run `lscolors` to see a truecolor test)
  19. @XVilka XVilka revised this gist Feb 7, 2018. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -158,6 +158,8 @@ Here are another console programs discussions:

    Supporting True Colour:

    * [s-lang](http://lists.jedsoft.org/lists/slang-users/2015/0000020.html) library - (since pre2.3.1-35, for 64bit systems)
    * [ncurses](https://www.gnu.org/software/ncurses/) library - since 6.1 version
    * [Eternal Terminal](https://mistertea.github.io/EternalTCP/) - automatically reconnecting shell
    * [mc](http://www.midnight-commander.org) - since [682a5...](http://www.midnight-commander.org/changeset/682a5116edd20b8ba81743a1f7495c883b0ce644). See also [ticket #3724](http://www.midnight-commander.org/ticket/3724) for truecolor themes.
    * [irssi](https://github.com/irssi/irssi) - since [PR #48](https://github.com/irssi/irssi/pull/48)
    @@ -167,7 +169,6 @@ Supporting True Colour:
    * [emacs](https://www.gnu.org/software/emacs/) - since commit [e463e57...](http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=e463e57), require custom terminfo
    * [micro editor](https://micro-editor.github.io/)
    * [elinks](http://repo.or.cz/w/elinks.git) - [configure.in:1410](http://repo.or.cz/w/elinks.git/blob/HEAD:/configure.in#l1410) (./configure --enable-true-color)
    * [s-lang](http://lists.jedsoft.org/lists/slang-users/2015/0000020.html) library - (since pre2.3.1-35, for 64bit systems)
    * [tcell](github.com/gdamore/tcell) library for Go language
    * [timg](https://github.com/hzeller/timg) - Terminal Image Viewer
    * [tv](https://github.com/daleroberts/tv) - tool to quickly view high-resolution multi-band imagery directly in terminal
    @@ -181,7 +182,6 @@ Not supporting True Colour:

    * mutt - http://dev.mutt.org/trac/ticket/3674
    * neomutt - https://github.com/neomutt/neomutt/issues/85
    * 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
    * tig - https://github.com/jonas/tig/issues/227
  20. @XVilka XVilka revised this gist Jan 29, 2018. 1 changed file with 2 additions and 3 deletions.
    5 changes: 2 additions & 3 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -50,13 +50,12 @@ 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
    Since [ncurses-6.0-20180121](http://lists.gnu.org/archive/html/bug-ncurses/2018-01/msg00045.html) terminfo started to support 24-bit truecolor capability under the name of "RGB" - you need to use the "setaf" and "setab" commands to set foreground and background correspondingly.

    Detection
    =========

    There's no reliable way, and ncurses/terminfo's maintainer expressed he has no intent on introducing support. S-Lang author added a check for $COLORTERM containing either "truecolor" or "24bit" (case sensitive). In turn, [VTE](https://bugzilla.gnome.org/show_bug.cgi?id=754521), [Konsole](https://bugs.kde.org/show_bug.cgi?id=371919) and [iTerm2](https://gitlab.com/gnachman/iterm2/issues/5294) set this variable to "truecolor" (it's been there in VTE for a while, it's relatively new and maybe still git-only in Konsole and iTerm2).
    There's no reliable way until the new release of terminfo/ncurses. After that the "RGB" flag should be available for detection. S-Lang author added a check for $COLORTERM containing either "truecolor" or "24bit" (case sensitive). In turn, [VTE](https://bugzilla.gnome.org/show_bug.cgi?id=754521), [Konsole](https://bugs.kde.org/show_bug.cgi?id=371919) and [iTerm2](https://gitlab.com/gnachman/iterm2/issues/5294) set this variable to "truecolor" (it's been there in VTE for a while, it's relatively new and maybe still git-only in Konsole and iTerm2).

    This is obviously not a reliable method, and is not forwarded via sudo, ssh etc. However, whenever it errs, it errs on the safe side: does not advertise support whereas it's actually supported. App developers can freely choose to check for this same variable, or introduce their own method (e.g. an option in their config file), whichever matches better the overall design of the given app. Checking $COLORTERM is recommended though, since that would lead to a more unique desktop experience where the user has to set one variable only and it takes effect across all the apps, rather than something separately for each app.

  21. @XVilka XVilka revised this gist Nov 27, 2017. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -169,6 +169,7 @@ Supporting True Colour:
    * [micro editor](https://micro-editor.github.io/)
    * [elinks](http://repo.or.cz/w/elinks.git) - [configure.in:1410](http://repo.or.cz/w/elinks.git/blob/HEAD:/configure.in#l1410) (./configure --enable-true-color)
    * [s-lang](http://lists.jedsoft.org/lists/slang-users/2015/0000020.html) library - (since pre2.3.1-35, for 64bit systems)
    * [tcell](github.com/gdamore/tcell) library for Go language
    * [timg](https://github.com/hzeller/timg) - Terminal Image Viewer
    * [tv](https://github.com/daleroberts/tv) - tool to quickly view high-resolution multi-band imagery directly in terminal
    * [termimage](https://github.com/nabijaczleweli/termimage) - terminal image viewer
  22. @XVilka XVilka revised this gist Nov 16, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -75,6 +75,7 @@ Now **supporting** truecolour
    * [cool-retro-term](https://github.com/Swordfish90/cool-retro-term) [delimeter: semicolon]
    * [mosh](https://mosh.org/) (Mobile SHell) [delimeter: semicolon] - since commit https://github.com/mobile-shell/mosh/commit/6cfa4aef598146cfbde7f7a4a83438c3769a2835
    * [Termux](https://termux.com/) [delimeter: semicolon] - **Android platform**
    * [ConnectBot](https://connectbot.org/) - **Android platform** - since https://github.com/connectbot/connectbot/commit/3bcc75ccedaf2136b04c5932c81a5155f29dc3b5
    * [Black Screen](https://github.com/shockone/black-screen) [delimeter: semicolon] - crossplatform, HTML/CSS/JS-based
    * [Hyper.app](https://hyper.is/) [delimeter: semicolon] - crossplatform, HTML/CSS/JS-based (Electron)
    * [hterm](https://chromium.googlesource.com/apps/libapps/+/master/hterm) - HTML/CSS/JS-based (ChromeOS)
    @@ -145,7 +146,6 @@ Terminal multiplexers
    * [KiTTY](http://www.9bis.net/kitty/) - **Windows platform**
    * [MTPuTTY](ttyplus.com) - **Windows platform**
    * [mRemoteNG](https://mremoteng.org/) - **Windows platform** - https://github.com/mRemoteNG/mRemoteNG/issues/717
    * [ConnectBot](https://connectbot.org/) - https://github.com/connectbot/connectbot/pull/531 - **Android platform**
    * [JuiceSSH](https://juicessh.com/) - **Adroid platform**, closed source
    * [Termius](https://www.termius.com/) - **Linux, Windows, OS X platforms**, closed source
    * [SmarTTY](http://smartty.sysprogs.com/) - **Windows platform** - closed source (sent them a request)
  23. @XVilka XVilka revised this gist Nov 10, 2017. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -163,7 +163,7 @@ Supporting True Colour:
    * [mc](http://www.midnight-commander.org) - since [682a5...](http://www.midnight-commander.org/changeset/682a5116edd20b8ba81743a1f7495c883b0ce644). See also [ticket #3724](http://www.midnight-commander.org/ticket/3724) for truecolor themes.
    * [irssi](https://github.com/irssi/irssi) - since [PR #48](https://github.com/irssi/irssi/pull/48)
    * [neovim](https://github.com/neovim/neovim) - since commit [8dd415e887923f99ab5daaeba9f0303e173dd1aa](https://github.com/neovim/neovim/commit/8dd415e887923f99ab5daaeba9f0303e173dd1aa); need to set [termguicolors](https://neovim.io/doc/user/options.html#%27termguicolors) to enable true color.
    * [vim](https://github.com/vim/vim) - (from 7.4.1770) since commit [8a633e3427b47286869aa4b96f2bfc1fe65b25cd](https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd); need to set [termguicolors](https://github.com/vim/vim/blob/master/runtime/doc/version8.txt#L202) to enable true color.
    * [vim](https://github.com/vim/vim) - (from 7.4.1770); need to set [termguicolors](https://github.com/vim/vim/blob/master/runtime/doc/version8.txt#L202) to enable true color.
    * [joe](https://sf.net/p/joe-editor) - (from [4.5](https://sourceforge.net/p/joe-editor/news/2017/09/joe-45-released/) version)
    * [emacs](https://www.gnu.org/software/emacs/) - since commit [e463e57...](http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=e463e57), require custom terminfo
    * [micro editor](https://micro-editor.github.io/)
    @@ -174,8 +174,8 @@ Supporting True Colour:
    * [termimage](https://github.com/nabijaczleweli/termimage) - terminal image viewer
    * [explosion](https://github.com/Tenzer/explosion) - terminal image viewer
    * [ls-icons](https://github.com/sebastiencs/ls-icons) - fork of coreutils with `ls` program that supports icons
    * [mpv](https://github.com/mpv-player/mpv) - video player with support of console-only output (since https://github.com/mpv-player/mpv/commit/dd02369c3223fda5bcb2658b15404d43232bb38f)
    * [radare2](https://github.com/radare/radare2) - reverse engineering franework; since [be46b9...](https://github.com/radare/radare2/commit/be46b9da31c7d2b6ac30ea3c62a32016f9482177) commit.
    * [mpv](https://github.com/mpv-player/mpv) - video player with support of console-only output (since 0.22 version)
    * [radare2](https://github.com/radare/radare2) - reverse engineering franework; since 0.9.6 version.

    Not supporting True Colour:

  24. @XVilka XVilka revised this gist Nov 6, 2017. 1 changed file with 0 additions and 4 deletions.
    4 changes: 0 additions & 4 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -154,10 +154,6 @@ Terminal multiplexers
    * **libvte**-based [GTKTerm2](http://gtkterm.feige.net/)
    * **libvte**-based [stjerm](https://github.com/stjerm/stjerm) (looks abandoned) - https://github.com/stjerm/stjerm/issues/39

    [3] You can download patched version here https://github.com/rdebath/PuTTY

    [4] You can download patched version here https://github.com/chrisbra/putty/commits/truecolor (based on the patches from https://github.com/halcy/PuTTY )

    Here are another console programs discussions:
    ============================================

  25. @XVilka XVilka revised this gist Nov 6, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -73,6 +73,7 @@ Now **supporting** truecolour
    * [alacritty](https://github.com/jwilm/alacritty) [delimeter: semicolon] - written in Rust
    * [kitty](https://github.com/kovidgoyal/kitty) [delimeter: colon,semicolon] - uses OpenGL
    * [cool-retro-term](https://github.com/Swordfish90/cool-retro-term) [delimeter: semicolon]
    * [mosh](https://mosh.org/) (Mobile SHell) [delimeter: semicolon] - since commit https://github.com/mobile-shell/mosh/commit/6cfa4aef598146cfbde7f7a4a83438c3769a2835
    * [Termux](https://termux.com/) [delimeter: semicolon] - **Android platform**
    * [Black Screen](https://github.com/shockone/black-screen) [delimeter: semicolon] - crossplatform, HTML/CSS/JS-based
    * [Hyper.app](https://hyper.is/) [delimeter: semicolon] - crossplatform, HTML/CSS/JS-based (Electron)
    @@ -136,7 +137,6 @@ Terminal multiplexers
    ----------------------------

    * [Terminology](https://www.enlightenment.org/about-terminology) (Enlightenment) - https://phab.enlightenment.org/T746
    * [mosh](https://mosh.org/) (Mobile SHell) - https://github.com/mobile-shell/mosh/issues/649
    * [mrxvt](https://sourceforge.net/projects/materm) (looks abandoned) - https://sourceforge.net/p/materm/feature-requests/41/
    * [aterm](http://www.afterstep.org/aterm.php) (looks abandoned) - https://sourceforge.net/p/aterm/feature-requests/23/
    * [fbcon](https://www.kernel.org/doc/Documentation/fb/fbcon.txt) (from linux kernel) - https://bugzilla.kernel.org/show_bug.cgi?id=79551
  26. @XVilka XVilka revised this gist Nov 6, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -71,7 +71,7 @@ Now **supporting** truecolour
    * [iterm2](http://www.iterm2.com/) [delimeter: colon, semicolon] - since v3 version
    * [qterminal](https://github.com/qterminal/qterminal) [delimeter: semicolon] - https://github.com/qterminal/qterminal/issues/78
    * [alacritty](https://github.com/jwilm/alacritty) [delimeter: semicolon] - written in Rust
    * [kitty](https://github.com/kovidgoyal/kitty) [delimeter: semicolon] - uses OpenGL
    * [kitty](https://github.com/kovidgoyal/kitty) [delimeter: colon,semicolon] - uses OpenGL
    * [cool-retro-term](https://github.com/Swordfish90/cool-retro-term) [delimeter: semicolon]
    * [Termux](https://termux.com/) [delimeter: semicolon] - **Android platform**
    * [Black Screen](https://github.com/shockone/black-screen) [delimeter: semicolon] - crossplatform, HTML/CSS/JS-based
  27. @XVilka XVilka revised this gist Oct 1, 2017. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -170,6 +170,7 @@ Supporting True Colour:
    * [vim](https://github.com/vim/vim) - (from 7.4.1770) since commit [8a633e3427b47286869aa4b96f2bfc1fe65b25cd](https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd); need to set [termguicolors](https://github.com/vim/vim/blob/master/runtime/doc/version8.txt#L202) to enable true color.
    * [joe](https://sf.net/p/joe-editor) - (from [4.5](https://sourceforge.net/p/joe-editor/news/2017/09/joe-45-released/) version)
    * [emacs](https://www.gnu.org/software/emacs/) - since commit [e463e57...](http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=e463e57), require custom terminfo
    * [micro editor](https://micro-editor.github.io/)
    * [elinks](http://repo.or.cz/w/elinks.git) - [configure.in:1410](http://repo.or.cz/w/elinks.git/blob/HEAD:/configure.in#l1410) (./configure --enable-true-color)
    * [s-lang](http://lists.jedsoft.org/lists/slang-users/2015/0000020.html) library - (since pre2.3.1-35, for 64bit systems)
    * [timg](https://github.com/hzeller/timg) - Terminal Image Viewer
  28. @XVilka XVilka revised this gist Oct 1, 2017. 1 changed file with 4 additions and 3 deletions.
    7 changes: 4 additions & 3 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -77,11 +77,13 @@ Now **supporting** truecolour
    * [Black Screen](https://github.com/shockone/black-screen) [delimeter: semicolon] - crossplatform, HTML/CSS/JS-based
    * [Hyper.app](https://hyper.is/) [delimeter: semicolon] - crossplatform, HTML/CSS/JS-based (Electron)
    * [hterm](https://chromium.googlesource.com/apps/libapps/+/master/hterm) - HTML/CSS/JS-based (ChromeOS)
    * [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/) - [landed](https://git.tartarus.org/?p=simon/putty.git;a=commit;h=a4cbd3dfdb71d258e83bbf5b03a874c06d0b3106) in git (patched version [3] {xterm-like approximation to 256 colors} and [4] {real true colors} available) - **Windows platform**
    * [Tera Term](http://en.sourceforge.jp/projects/ttssh2/) [delimeter: colon, semicolon] - **Windows platform**
    * [ConEmu](https://github.com/Maximus5/ConEmu) [delimeter: semicolon] - **Windows platform**
    * [FinalTerm](http://finalterm.org/) [delimeter: semicolon] - [abandoned](http://worldwidemann.com/finally-terminated/), iTerm2 [borrowing it's ideas and features](http://iterm2.com/shell_integration.html).
    * [MacTerm](https://github.com/kmgrant/macterm) [delimeter: semicolon] - **Mac OS X platform**
    * [mintty](https://mintty.github.io/) [delimeter: semicolon] **Cygwin and MSYS/MSYS2** since commit https://github.com/mintty/mintty/commit/43f0ed8a46c6549cb9a3ea27abc057b5abe13bdb (2.0.1 release) - **Windows platform**
    * [MobaXterm](http://mobaxterm.mobatek.net/) **Windows platform** - closed source (run `lscolors` to see a truecolor test)
    * Windows 10 bash console, since [Windows Insiders build 14931](https://blogs.msdn.microsoft.com/commandline/2016/09/22/24-bit-color-in-the-windows-console/)
    * all [libvte](http://ftp.gnome.org/pub/GNOME/sources/vte/) based terminals (since 0.36 version) [delimeter: colon, semilocon] - https://bugzilla.gnome.org/show_bug.cgi?id=704449
    * **libvte**-based [Gnome Terminal](https://help.gnome.org/users/gnome-terminal/stable/)
    @@ -140,7 +142,6 @@ Terminal multiplexers
    * [fbcon](https://www.kernel.org/doc/Documentation/fb/fbcon.txt) (from linux kernel) - https://bugzilla.kernel.org/show_bug.cgi?id=79551
    * FreeBSD console - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191652
    * [yaft](https://github.com/uobikiemukot/yaft) framebuffer terminal - https://github.com/uobikiemukot/yaft/issues/12
    * [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/) (patched version [3] {xterm-like approximation to 256 colors} and [4] {real true colors} available) - **Windows platform**
    * [KiTTY](http://www.9bis.net/kitty/) - **Windows platform**
    * [MTPuTTY](ttyplus.com) - **Windows platform**
    * [mRemoteNG](https://mremoteng.org/) - **Windows platform** - https://github.com/mRemoteNG/mRemoteNG/issues/717
    @@ -149,7 +150,6 @@ Terminal multiplexers
    * [Termius](https://www.termius.com/) - **Linux, Windows, OS X platforms**, closed source
    * [SmarTTY](http://smartty.sysprogs.com/) - **Windows platform** - closed source (sent them a request)
    * [Netsarang XShell](https://www.netsarang.com/products/xsh_overview.html) - closed source (sent them an email)
    * [MobaXterm](http://mobaxterm.mobatek.net/) **Windows platform** - closed source (sent them an email)
    * libvte and GTK2 - based:
    * **libvte**-based [GTKTerm2](http://gtkterm.feige.net/)
    * **libvte**-based [stjerm](https://github.com/stjerm/stjerm) (looks abandoned) - https://github.com/stjerm/stjerm/issues/39
    @@ -168,6 +168,7 @@ Supporting True Colour:
    * [irssi](https://github.com/irssi/irssi) - since [PR #48](https://github.com/irssi/irssi/pull/48)
    * [neovim](https://github.com/neovim/neovim) - since commit [8dd415e887923f99ab5daaeba9f0303e173dd1aa](https://github.com/neovim/neovim/commit/8dd415e887923f99ab5daaeba9f0303e173dd1aa); need to set [termguicolors](https://neovim.io/doc/user/options.html#%27termguicolors) to enable true color.
    * [vim](https://github.com/vim/vim) - (from 7.4.1770) since commit [8a633e3427b47286869aa4b96f2bfc1fe65b25cd](https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd); need to set [termguicolors](https://github.com/vim/vim/blob/master/runtime/doc/version8.txt#L202) to enable true color.
    * [joe](https://sf.net/p/joe-editor) - (from [4.5](https://sourceforge.net/p/joe-editor/news/2017/09/joe-45-released/) version)
    * [emacs](https://www.gnu.org/software/emacs/) - since commit [e463e57...](http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=e463e57), require custom terminfo
    * [elinks](http://repo.or.cz/w/elinks.git) - [configure.in:1410](http://repo.or.cz/w/elinks.git/blob/HEAD:/configure.in#l1410) (./configure --enable-true-color)
    * [s-lang](http://lists.jedsoft.org/lists/slang-users/2015/0000020.html) library - (since pre2.3.1-35, for 64bit systems)
    @@ -187,4 +188,4 @@ Not supporting True Colour:
    * 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
    * tig - https://github.com/jonas/tig/issues/227
    * joe - https://sourceforge.net/p/joe-editor/patches/116/

  29. @XVilka XVilka revised this gist Sep 15, 2017. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -147,6 +147,7 @@ Terminal multiplexers
    * [ConnectBot](https://connectbot.org/) - https://github.com/connectbot/connectbot/pull/531 - **Android platform**
    * [JuiceSSH](https://juicessh.com/) - **Adroid platform**, closed source
    * [Termius](https://www.termius.com/) - **Linux, Windows, OS X platforms**, closed source
    * [SmarTTY](http://smartty.sysprogs.com/) - **Windows platform** - closed source (sent them a request)
    * [Netsarang XShell](https://www.netsarang.com/products/xsh_overview.html) - closed source (sent them an email)
    * [MobaXterm](http://mobaxterm.mobatek.net/) **Windows platform** - closed source (sent them an email)
    * libvte and GTK2 - based:
  30. @XVilka XVilka revised this gist Sep 15, 2017. 1 changed file with 5 additions and 0 deletions.
    5 changes: 5 additions & 0 deletions TrueColour.md
    Original file line number Diff line number Diff line change
    @@ -141,9 +141,14 @@ Terminal multiplexers
    * FreeBSD console - https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=191652
    * [yaft](https://github.com/uobikiemukot/yaft) framebuffer terminal - https://github.com/uobikiemukot/yaft/issues/12
    * [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/) (patched version [3] {xterm-like approximation to 256 colors} and [4] {real true colors} available) - **Windows platform**
    * [KiTTY](http://www.9bis.net/kitty/) - **Windows platform**
    * [MTPuTTY](ttyplus.com) - **Windows platform**
    * [mRemoteNG](https://mremoteng.org/) - **Windows platform** - https://github.com/mRemoteNG/mRemoteNG/issues/717
    * [ConnectBot](https://connectbot.org/) - https://github.com/connectbot/connectbot/pull/531 - **Android platform**
    * [JuiceSSH](https://juicessh.com/) - **Adroid platform**, closed source
    * [Termius](https://www.termius.com/) - **Linux, Windows, OS X platforms**, closed source
    * [Netsarang XShell](https://www.netsarang.com/products/xsh_overview.html) - closed source (sent them an email)
    * [MobaXterm](http://mobaxterm.mobatek.net/) **Windows platform** - closed source (sent them an email)
    * libvte and GTK2 - based:
    * **libvte**-based [GTKTerm2](http://gtkterm.feige.net/)
    * **libvte**-based [stjerm](https://github.com/stjerm/stjerm) (looks abandoned) - https://github.com/stjerm/stjerm/issues/39