{"id":785,"date":"2021-09-16T05:47:01","date_gmt":"2021-09-16T03:47:01","guid":{"rendered":"https:\/\/hpjansson.org\/blag\/?p=785"},"modified":"2026-01-14T21:31:02","modified_gmt":"2026-01-14T20:31:02","slug":"chafa-1-8-terminal-graphics-with-a-side-of-everything","status":"publish","type":"post","link":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/","title":{"rendered":"Chafa 1.8: Terminal graphics with a side of everything"},"content":{"rendered":"\n<p>The <a href=\"https:\/\/hpjansson.org\/chafa\/\">Chafa<\/a> changelog was growing long again, owing to about half a year's worth of slow accretion. Hence, <a href=\"https:\/\/github.com\/hpjansson\/chafa\/releases\/tag\/1.8.0\">a release<\/a>. Here's some stuff that happened.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">High-end protocols<\/h2>\n\n\n\n<p>With existing choices of the old text mode standby and its friend, the most unreasonably efficient sixel encoder known to man, I threw <a href=\"https:\/\/sw.kovidgoyal.net\/kitty\/graphics-protocol\/\">Kitty<\/a> and <a href=\"https:\/\/iterm2.com\/documentation-images.html\">iTerm2<\/a> on the pile, bringing our total number of output formats to four. I think that's all the terminal graphics anyone could want (unless you want <a href=\"https:\/\/en.wikipedia.org\/wiki\/ReGIS\">ReGIS<\/a>; in which case, tough tty).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Moar terminals<\/h2>\n\n\n\n<p>Modern terminal emulators are generally less fickle than their pre-y2k ancestors. However, sometimes it takes a little sleuthing to figure out which extended features might be hiding behind e.g. some mysterious <code>xterm-256color<\/code> fa\u00e7ade so we can do the right thing.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/chafa-1-8-term-samples.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1233\" height=\"1182\" src=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/chafa-1-8-term-samples.png\" alt=\"Comparison of Chafa graphics in various terminals\" class=\"wp-image-789\" srcset=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/chafa-1-8-term-samples.png 1233w, https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/chafa-1-8-term-samples-300x288.png 300w, https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/chafa-1-8-term-samples-768x736.png 768w\" sizes=\"auto, (max-width: 1233px) 100vw, 1233px\" \/><\/a><figcaption class=\"wp-element-caption\">Chafa, friend to all terminals (sample picture mine: Las Canicas, Santa Mar\u00eda del Tule)<\/figcaption><\/figure><\/div>\n\n\n<p>Luckily, Chafa has a steadily improving handle on terminals of the Unix\/GNU\/Linux world. A few examples:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/wiki.gnome.org\/Apps\/Terminal\/VTE\">VTE<\/a>-based terminals (there are many, including <a href=\"https:\/\/wiki.gnome.org\/Apps\/Terminal\">GNOME Terminal<\/a>).<\/li>\n\n\n\n<li>Sixel crew: <a href=\"https:\/\/codeberg.org\/dnkl\/foot\">foot<\/a>, <a href=\"http:\/\/mlterm.sourceforge.net\/\">mlterm<\/a>, <a href=\"https:\/\/wezfurlong.org\/wezterm\/\">WezTerm<\/a>, <a href=\"https:\/\/invisible-island.net\/xterm\/\">XTerm<\/a>.<\/li>\n\n\n\n<li>A category unto its own: <a href=\"https:\/\/sw.kovidgoyal.net\/kitty\/\">Kitty<\/a>, packing one of the most featureful terminal graphics protocols around.<\/li>\n\n\n\n<li>Another innovative beast of genetically engineered goodness: <a href=\"https:\/\/ctx.graphics\/terminal\/\">ctx<\/a>.<\/li>\n\n\n\n<li>Fullscreen consoles: <a href=\"https:\/\/github.com\/sfzhi\/fbterm\">fbterm<\/a> (<a href=\"https:\/\/manpages.debian.org\/jessie\/fbterm\/fbterm.1.en.html#256_COLOR_EXTENSION\">quirky!<\/a>), <a href=\"https:\/\/github.com\/uobikiemukot\/yaft\">yaft<\/a> (yet more sixels!) and the Linux console.<\/li>\n\n\n\n<li>Simple and sweet: <a href=\"https:\/\/st.suckless.org\/\">st<\/a>, <a href=\"http:\/\/software.schmorp.de\/pkg\/rxvt-unicode.html\">urxvt<\/a>.<\/li>\n\n\n\n<li>For the <a href=\"https:\/\/hpjansson.org\/blag\/macaddict-im_a_mac-precursor-1996\/\">Mac addicts<\/a>: Apple Terminal, <a href=\"https:\/\/iterm2.com\/\">iTerm2<\/a>.<\/li>\n\n\n\n<li>Sessions running in <a href=\"https:\/\/www.gnu.org\/software\/screen\/\">screen<\/a> and <a href=\"https:\/\/github.com\/tmux\/tmux\">tmux<\/a>.<\/li>\n<\/ul>\n\n\n\n<p>Of course, this is forever a work in progress and an area where I receive regular, highly appreciated contributions <em>*chef's kiss &#8211; somehow still not an actual emoji*<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Funky lo-fi features<\/h2>\n\n\n\n<p><a href=\"https:\/\/pippin.gimp.org\/\">\u00d8yvind Kol\u00e5s<\/a> (of <a href=\"https:\/\/www.gimp.org\/\">GIMP<\/a> and <a href=\"https:\/\/www.gegl.org\/\">GEGL<\/a> fame) swooped in with new builtins for the legacy computing block, meaning Chafa is now <a href=\"https:\/\/en.wikipedia.org\/wiki\/PETSCII\">PETSCII<\/a> Ready\u2122 &#8211; or as ready as you can be with Unicode 13.0: The standard has a few annoying issues, such as not declaring any code points for the four permutations of black triangle, relying instead on existing code points in the geometric shapes block (U+25E2..U+25E5) which are typically represented by fonts as sitting on the baseline surrounded by empty space and therefore useless next to the legacy computing and block elements blocks.<\/p>\n\n\n\n<p>Still, it's got a sweet 2&#215;3 dot matrix (<code>--symbols sextant<\/code>) and all those nifty wedge shapes (<code>--symbols wedge<\/code>).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Symbols_for_Legacy_Computing\"><img loading=\"lazy\" decoding=\"async\" width=\"1392\" height=\"752\" src=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/symbols_for_legacy_computing-1fb00-1fbff-crop.png\" alt=\"Symbols for Legacy Computing, excerpt\" class=\"wp-image-810\" srcset=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/symbols_for_legacy_computing-1fb00-1fbff-crop.png 1392w, https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/symbols_for_legacy_computing-1fb00-1fbff-crop-300x162.png 300w, https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/symbols_for_legacy_computing-1fb00-1fbff-crop-768x415.png 768w\" sizes=\"auto, (max-width: 1392px) 100vw, 1392px\" \/><\/a><figcaption class=\"wp-element-caption\">Can't not have these. Well, most of them, anyway<\/figcaption><\/figure><\/div>\n\n\n<p>\u00d8yvind also added an 8-color mode. Used together (<code>-c 8 --symbols legacy+space<\/code>), these features enable visual emulation of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Teletext\">Teletext<\/a> Level 1 and similar systems widely deployed in the late 1970s until roughly 1990 (technically <a href=\"https:\/\/sanslogic.co.uk\/hacktv\">into the present<\/a>, albeit perhaps not so widely anymore).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-legacy-samples-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1277\" height=\"575\" src=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-legacy-samples-1.png\" alt=\"PETSCII parrots rendered by Chafa\" class=\"wp-image-813\" srcset=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-legacy-samples-1.png 1277w, https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-legacy-samples-1-300x135.png 300w, https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-legacy-samples-1-768x346.png 768w\" sizes=\"auto, (max-width: 1277px) 100vw, 1277px\" \/><\/a><figcaption class=\"wp-element-caption\">PETSCII <a href=\"https:\/\/doi.org\/10.5962\/bhl.title.60677\">parrots<\/a>; left: full color, right: 8 colors<\/figcaption><\/figure><\/div>\n\n\n<p>Somewhere along the way I discovered that \u00d8yvind <a href=\"https:\/\/www.patreon.com\/pippin\">has a Patreon page<\/a> &#8211; and if you're a GIMP user and\/or care about the free software graphics ecosystem, you may want to read <a href=\"https:\/\/www.gimp.org\/news\/2021\/07\/27\/support-gimp-developers-sustainable-development\/\">this article<\/a> and consider its implications.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A bit of background austerity<\/h2>\n\n\n\n<p>I followed up in the retro vein with a foreground-only (<code>--fg-only<\/code>) modifier, which allows emulation of vintage systems that could only specify a single color per cell against a uniform background color. A popular example is the Commodore 64's <a href=\"https:\/\/www.c64-wiki.com\/wiki\/Standard_Character_Mode\">standard character mode<\/a>. It's also useful in terminals where block symbols don't render correctly (for example due to missing font support), since it prevents background color variation from drowning out details in low-coverage symbols used in their place. The Linux console <a href=\"https:\/\/wiki.archlinux.org\/title\/Linux_console#Fonts\">tends to be among these<\/a> due to hardware and font limitations that are somehow still in play today.<\/p>\n\n\n\n<p>This is also how many classic ASCII art packages did things; so I guess I am once again asking you to party like it's 1999 (&#8230;and stay up all night trying to make your Napster killer render with <a href=\"https:\/\/en.wikipedia.org\/wiki\/AAlib\">AAlib<\/a>).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-ascii-fg-only-samples-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1286\" height=\"601\" src=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-ascii-fg-only-samples-2.png\" alt=\"ASCII parrots rendered by Chafa\" class=\"wp-image-823\" srcset=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-ascii-fg-only-samples-2.png 1286w, https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-ascii-fg-only-samples-2-300x140.png 300w, https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-ascii-fg-only-samples-2-768x359.png 768w\" sizes=\"auto, (max-width: 1286px) 100vw, 1286px\" \/><\/a><figcaption class=\"wp-element-caption\">Left: 16-color ASCII on black, right: same, but on light gray using <code>--invert<\/code><\/figcaption><\/figure><\/div>\n\n\n<p>When used with <code>--fg-only<\/code>, the existing <code>--bg<\/code> option has a greater impact than usual; in addition to being the fade color for alpha blending, it determines the relationship between symbols and blank space, including symbols where the background color \"wins\" part of a cell. A dark image on a bright background will have more high-coverage symbols that cover up the background as much as possible.<\/p>\n\n\n\n<p>If your terminal has a bright background color, <code>--invert<\/code> is a shortcut to inverting the sense of <code>--fg<\/code> and <code>--bg<\/code>; the white-on-black default then becomes black-on-white.<\/p>\n\n\n\n<p>Since foreground-only mode leaves the background color alone, you can easily experiment with setting it yourself, e.g:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">echo -e '\\033[41m'; \\\nchafa -c 16 --symbols ascii --fg-only --bg darkred birbs.png<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Weird and wonderful forum art redux<\/h2>\n\n\n\n<p>If you read Steam reviews, you may be familiar with this guy:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"440\" height=\"362\" src=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/steam-shrek-braille-1.png\" alt=\"\" class=\"wp-image-864\" srcset=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/steam-shrek-braille-1.png 440w, https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/steam-shrek-braille-1-300x247.png 300w\" sizes=\"auto, (max-width: 440px) 100vw, 440px\" \/><figcaption class=\"wp-element-caption\">Oh, hello there to you too<\/figcaption><\/figure><\/div>\n\n\n<p>There are layers to this, but I'll keep it brief and simply observe that people seem to like braille. Braille is popular in this context for at least four reasons. It has:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A luxurious 2&#215;4 dot matrix at your fingertips.<\/li>\n\n\n\n<li>Widespread font support.<\/li>\n\n\n\n<li>Consistent glyph width even in variable-width fonts.<\/li>\n\n\n\n<li>A special blank symbol (U+2800 BRAILLE PATTERN BLANK) for consistent spacing.<\/li>\n<\/ul>\n\n\n\n<p>Chafa's supported this kind of output for a long time (<code>-c none --symbols braille<\/code>), but in some circumstances it could replace cells having identical foreground and background colors with a hardcoded U+0020 as an optimization. This could result in inconsistent spacing, making braille (and probably other symbol combinations) less useful. Fortunately the issue is now a thing of the past; the latest version will instead use a visually blank symbol from the user's symbol set, falling back to the lowest-coverage symbol it can find.<\/p>\n\n\n\n<p>The GPL doesn't regulate netiquette: Please use for good, or in extreme cases, awesome.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The ever elusive practical application in the wild<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/harfbuzz-hbview-chafa.png\"><img loading=\"lazy\" decoding=\"async\" width=\"954\" height=\"433\" src=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/harfbuzz-hbview-chafa.png\" alt=\"hb-view screenshot\" class=\"wp-image-844\" srcset=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/harfbuzz-hbview-chafa.png 954w, https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/harfbuzz-hbview-chafa-300x136.png 300w, https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/harfbuzz-hbview-chafa-768x349.png 768w\" sizes=\"auto, (max-width: 954px) 100vw, 954px\" \/><\/a><figcaption class=\"wp-element-caption\">\u062d\u0631\u0641\u200c\u0628\u0627\u0632<\/figcaption><\/figure><\/div>\n\n\n<p>It's good to be useful. <a href=\"https:\/\/github.com\/dylanaraps\/neofetch\">Neofetch<\/a> was the first project to avail itself of Chafa's incredible power, and the latest is <a href=\"https:\/\/en.wikipedia.org\/wiki\/HarfBuzz\">HarfBuzz<\/a>' <a href=\"https:\/\/harfbuzz.github.io\/utilities.html#utilities-command-line-hbview\">hb-view<\/a>. And &#8211; er &#8211; I think that's all of them. For now!<\/p>\n\n\n\n<p><strong>2026 update:<\/strong> As indicated by my limited analysis, if you've landed on this page you're most likely looking for Shrek braille art. As such, your reward for scrolling this far is a Shrek you can copy and paste effortlessly:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-c09c14e74739cdd714b86bc990e7bfd5\">\u2880\u2874\u2811\u2844\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u28c0\u28c0\u28e4\u28e4\u28e4\u28c0\u2840<br>\u2838\u2847\u2800\u283f\u2840\u2800\u2800\u2800\u28c0\u2874\u28bf\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28f7\u28e6\u2840<br>\u2800\u2800\u2800\u2800\u2811\u2884\u28e0\u283e\u2801\u28c0\u28c4\u2848\u2819\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28c6<br>\u2800\u2800\u2800\u2800\u2880\u2840\u2801\u2800\u2800\u2808\u2819\u281b\u2802\u2808\u28ff\u28ff\u28ff\u28ff\u28ff\u283f\u287f\u28bf\u28c6<br>\u2800\u2800\u2800\u2880\u287e\u28c1\u28c0\u2800\u2834\u2802\u2819\u28d7\u2840\u2800\u28bb\u28ff\u28ff\u282d\u28a4\u28f4\u28e6\u28e4\u28f9\u2800\u2800\u2800\u2880\u28b4\u28f6\u28c6<br>\u2800\u2800\u2880\u28fe\u28ff\u28ff\u28ff\u28f7\u28ee\u28fd\u28fe\u28ff\u28e5\u28f4\u28ff\u28ff\u287f\u2882\u2814\u289a\u287f\u28bf\u28ff\u28e6\u28f4\u28fe\u2801\u2838\u28fc\u287f<br>\u2800\u2880\u285e\u2801\u2819\u283b\u283f\u281f\u2809\u2800\u281b\u28b9\u28ff\u28ff\u28ff\u28ff\u28ff\u28cc\u28a4\u28fc\u28ff\u28fe\u28ff\u285f\u2809<br>\u2800\u28fe\u28f7\u28f6\u2807\u2800\u2800\u28e4\u28c4\u28c0\u2840\u2808\u283b\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u2847<br>\u2800\u2809\u2808\u2809\u2800\u2800\u28a6\u2848\u28bb\u28ff\u28ff\u28ff\u28f6\u28f6\u28f6\u28f6\u28e4\u28fd\u2879\u28ff\u28ff\u28ff\u28ff\u2847<br>\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2809\u2832\u28fd\u287b\u28bf\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28f7\u28dc\u28ff\u28ff\u28ff\u2847<br>\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u28b8\u28ff\u28ff\u28f7\u28f6\u28ee\u28ed\u28fd\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff<br>\u2800\u2800\u2800\u2800\u2800\u2800\u28c0\u28c0\u28c8\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u2807<br>\u2800\u2800\u2800\u2800\u2800\u2800\u28bf\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u2803<\/pre>\n\n\n\n<p>Go wild.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Chafa changelog was growing long again, owing to about half a year's worth of slow accretion. Hence, a release. Here's some stuff that happened.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,6],"tags":[20,33,19,17,32,22,21,39,34],"class_list":["post-785","post","type-post","status-publish","format-standard","hentry","category-computing","category-technical","tag-ansi-art","tag-ascii-art","tag-chafa","tag-graphics","tag-petscii","tag-release","tag-terminal-graphics","tag-textmode","tag-unicode"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Chafa 1.8: Terminal graphics with a side of everything - Et tu, Cthulhu<\/title>\n<meta name=\"description\" content=\"Improvements to the Chafa terminal graphics package: Kitty and iTerm2 protocols, newly supported terminals, new Unicode symbols, and more.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Chafa 1.8: Terminal graphics with a side of everything\" \/>\n<meta property=\"og:description\" content=\"Improvements to the Chafa terminal graphics package: Kitty and iTerm2 protocols, newly supported terminals, new Unicode symbols, and more.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/\" \/>\n<meta property=\"og:site_name\" content=\"Et tu, Cthulhu\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-16T03:47:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-14T20:31:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-legacy-samples-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1277\" \/>\n\t<meta property=\"og:image:height\" content=\"575\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Hans Petter Jansson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Chafa 1.8: Terminal graphics with a side of everything\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-legacy-samples-1.png\" \/>\n<meta name=\"twitter:creator\" content=\"@hpj\" \/>\n<meta name=\"twitter:site\" content=\"@hpj\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hans Petter Jansson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/\"},\"author\":{\"name\":\"Hans Petter Jansson\",\"@id\":\"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c\"},\"headline\":\"Chafa 1.8: Terminal graphics with a side of everything\",\"datePublished\":\"2021-09-16T03:47:01+00:00\",\"dateModified\":\"2026-01-14T20:31:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/\"},\"wordCount\":989,\"commentCount\":7,\"publisher\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c\"},\"image\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/chafa-1-8-term-samples.png\",\"keywords\":[\"ansi art\",\"ascii art\",\"chafa\",\"graphics\",\"petscii\",\"release\",\"terminal graphics\",\"textmode\",\"unicode\"],\"articleSection\":[\"Computing\",\"Technical\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/\",\"url\":\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/\",\"name\":\"Chafa 1.8: Terminal graphics with a side of everything - Et tu, Cthulhu\",\"isPartOf\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/chafa-1-8-term-samples.png\",\"datePublished\":\"2021-09-16T03:47:01+00:00\",\"dateModified\":\"2026-01-14T20:31:02+00:00\",\"description\":\"Improvements to the Chafa terminal graphics package: Kitty and iTerm2 protocols, newly supported terminals, new Unicode symbols, and more.\",\"breadcrumb\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#primaryimage\",\"url\":\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/chafa-1-8-term-samples.png\",\"contentUrl\":\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/chafa-1-8-term-samples.png\",\"width\":1233,\"height\":1182},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/hpjansson.org\/blag\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Chafa 1.8: Terminal graphics with a side of everything\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/hpjansson.org\/blag\/#website\",\"url\":\"https:\/\/hpjansson.org\/blag\/\",\"name\":\"Et tu, Cthulhu\",\"description\":\"Personal blag of Hans Petter Jansson: Fun with computers edition\",\"publisher\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/hpjansson.org\/blag\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c\",\"name\":\"Hans Petter Jansson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/33402e5005b34e5ee4ba4f9fd0c5d754f4505d5fb455736e5c585676cb7f2075?s=96&d=retro&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/33402e5005b34e5ee4ba4f9fd0c5d754f4505d5fb455736e5c585676cb7f2075?s=96&d=retro&r=g\",\"caption\":\"Hans Petter Jansson\"},\"logo\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/hpjansson.org\/\",\"https:\/\/x.com\/hpj\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Chafa 1.8: Terminal graphics with a side of everything - Et tu, Cthulhu","description":"Improvements to the Chafa terminal graphics package: Kitty and iTerm2 protocols, newly supported terminals, new Unicode symbols, and more.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/","og_locale":"en_US","og_type":"article","og_title":"Chafa 1.8: Terminal graphics with a side of everything","og_description":"Improvements to the Chafa terminal graphics package: Kitty and iTerm2 protocols, newly supported terminals, new Unicode symbols, and more.","og_url":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/","og_site_name":"Et tu, Cthulhu","article_published_time":"2021-09-16T03:47:01+00:00","article_modified_time":"2026-01-14T20:31:02+00:00","og_image":[{"width":1277,"height":575,"url":"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-legacy-samples-1.png","type":"image\/png"}],"author":"Hans Petter Jansson","twitter_card":"summary_large_image","twitter_title":"Chafa 1.8: Terminal graphics with a side of everything","twitter_image":"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/blue_headed_lory-legacy-samples-1.png","twitter_creator":"@hpj","twitter_site":"@hpj","twitter_misc":{"Written by":"Hans Petter Jansson","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#article","isPartOf":{"@id":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/"},"author":{"name":"Hans Petter Jansson","@id":"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c"},"headline":"Chafa 1.8: Terminal graphics with a side of everything","datePublished":"2021-09-16T03:47:01+00:00","dateModified":"2026-01-14T20:31:02+00:00","mainEntityOfPage":{"@id":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/"},"wordCount":989,"commentCount":7,"publisher":{"@id":"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c"},"image":{"@id":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#primaryimage"},"thumbnailUrl":"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/chafa-1-8-term-samples.png","keywords":["ansi art","ascii art","chafa","graphics","petscii","release","terminal graphics","textmode","unicode"],"articleSection":["Computing","Technical"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/","url":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/","name":"Chafa 1.8: Terminal graphics with a side of everything - Et tu, Cthulhu","isPartOf":{"@id":"https:\/\/hpjansson.org\/blag\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#primaryimage"},"image":{"@id":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#primaryimage"},"thumbnailUrl":"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/chafa-1-8-term-samples.png","datePublished":"2021-09-16T03:47:01+00:00","dateModified":"2026-01-14T20:31:02+00:00","description":"Improvements to the Chafa terminal graphics package: Kitty and iTerm2 protocols, newly supported terminals, new Unicode symbols, and more.","breadcrumb":{"@id":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#primaryimage","url":"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/chafa-1-8-term-samples.png","contentUrl":"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2021\/09\/chafa-1-8-term-samples.png","width":1233,"height":1182},{"@type":"BreadcrumbList","@id":"https:\/\/hpjansson.org\/blag\/2021\/09\/16\/chafa-1-8-terminal-graphics-with-a-side-of-everything\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hpjansson.org\/blag\/"},{"@type":"ListItem","position":2,"name":"Chafa 1.8: Terminal graphics with a side of everything"}]},{"@type":"WebSite","@id":"https:\/\/hpjansson.org\/blag\/#website","url":"https:\/\/hpjansson.org\/blag\/","name":"Et tu, Cthulhu","description":"Personal blag of Hans Petter Jansson: Fun with computers edition","publisher":{"@id":"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hpjansson.org\/blag\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c","name":"Hans Petter Jansson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/33402e5005b34e5ee4ba4f9fd0c5d754f4505d5fb455736e5c585676cb7f2075?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/33402e5005b34e5ee4ba4f9fd0c5d754f4505d5fb455736e5c585676cb7f2075?s=96&d=retro&r=g","caption":"Hans Petter Jansson"},"logo":{"@id":"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/hpjansson.org\/","https:\/\/x.com\/hpj"]}]}},"_links":{"self":[{"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/posts\/785","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/comments?post=785"}],"version-history":[{"count":72,"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/posts\/785\/revisions"}],"predecessor-version":[{"id":1394,"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/posts\/785\/revisions\/1394"}],"wp:attachment":[{"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/media?parent=785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/categories?post=785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/tags?post=785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}