Jexer : About | Downloads | Screenshots | Sixel Tests | API Docs | Wiki | GitLab Project Page | SourceForge Project Page

Session captures of Jexer-style sixel output are collected here to aid terminal authors wishing to test their sixel implementation. Each capture includes the raw output and a screenshot of what the final result looks like under xterm for comparison.

The input files to Jexer used in this test are:

The test itself consists of:

  1. Running the Jexer test jar with via the do_test.sh script.
  2. Spawning a shell from the pull-down menu, and in that shell cat cjk.txt .
  3. Spawning a second shell from the pull-down menu, and in that shell cat lady-of-shalott.six .
  4. From the pull-down hamburger menu, selecting Open image... and opening lemmling_Ladybug.png.
  5. Selecting and dragging the windows around the screen.
  6. Exiting the program via Alt-X.
  7. do_test.sh removes the Jexer output escape sequences for:
    • Querying Device Attributes: CSI c
    • Requesting screen size in pixels: CSI 14 t
    • Requesting cell size in pixels: CSI 16 t
  8. The test is repeated at several different font sizes. The terminal size of most of these session is 80x24. The sixel palette size is 1024, and is shared across the images (private color registers is disabled: CSI ? 1 0 7 0 l).

A Note on Transparency

None of the images used in the test captures have transparent pixels.

Sixel supports "transparency" in the form of unspecified pixels, and this feature can be used for some really neat effects. Alas, neither img2sixel nor Imagemagick seem capable of generating transparent pixels (at least I could not figure it out). I created two sixel images with missing pixels manually, by adding the "0;1;0" options in the introducer and changing most of the black color characters to "?" within the file that can be used to test images overlapping text:

Jexer git head can also be used to create transparent sixel images, using the jexer.backend.HQSixelEncoder main() function. For example, to convert a PNG called "file.png" to a transparent sixel image called "file.six":

    java -cp jexer.jar jexer.backend.HQSixelEncoder file.png > file.six
  

Many more sixel inputs and outputs from a real hardware terminal have been made available by hackerb9 here, and include images with transparency. The sixel output of Chafa can also generate images with transparency.

If your terminal supports an image format with PNG file support, for example iTerm2 or Kitty, then true alpha-blending can also happen, with wonderful effect. See here for an example.

Font size: 7x15

On Windows under mintty, this font size corresponds to Consolas 10pt. On Linux under xterm, it was xterm -fa mono -fs 9

raw capture file
zip compressed capture file

Image under xterm:
Font size 7x15

Font size: 7x15 - No Overlap

On Windows under mintty, this font size corresponds to Consolas 10pt. On Linux under xterm, it was xterm -fa mono -fs 9

raw capture file
zip compressed capture file

Image under xterm:
Font size 7x15 (no overlap)

Font size: 7x15 - iTerm2 Images

This is a capture of iTerm2 output, generated using mintty with Consolas 10pt font.

raw capture file
zip compressed capture file

A screenshot of xterm is not available. Below is a screenshot using wezterm. The text cell aspect ratio is not correct, but this is the general idea:
Font size 7x15

Font size: 9x18

On Windows under mintty, this font size corresponds to Courier 12pt. On Linux under xterm, it was xterm -fa courier -fs 11

raw capture file
zip compressed capture file

Image under xterm:
Font size 9x18

Font size: 6x13

raw capture file
zip compressed capture file

Image under xterm:
Font size 6x13

Font size: 8x16

raw capture file
zip compressed capture file

Image under xterm:
Font size 8x16