This repository contains the fonts I created for the FIGlet utility. While most FIGfonts are ASCII-art, I decided to experiment with ANSI/VT coloring and extended Unicode characters as sub-characters.
This is my main ANSI/VT-based font, containing over 500 characters. This font uses extended ASCII characters from the US (437) codepage, and requires an ANSI/VT terminal that supports the underline escape sequence.
It works in FIGlet 2.2.5, but the width computation gets confused, so it requires -w 9999
to avoid misplaced line breaks.
It does not work at all in TOIlet 0.3, as escape sequences get removed.
Remember to use figlet -f phm-smallvt -C utf8 -w 9999
to access Unicode characters and to avoid misplaced line breaks and broken VT control sequences due to bad width computation.
This is a FIGlet version of the example Large Type Pieces (Unicode 16.0) ASCII font provided by Hewlett-Packard in their HP 2641A/2645A/2645S Display Station Reference Manual, Table B-16. It is a reference font for large type pieces introduced in Unicode 16.0 but only contains the 96 base ASCII characters. It is mostly intended as a historical reference for my own Large Type font below.
It uses Unicode 16 Large Type Pieces (U+1CE1A
to U+1CE50
) and Quadrants to build a smooth set of characters using three rows. Its look depends on the font design, as large type pieces can be different in different fonts.
If you want to learn more about Large Type Pieces, try curl https://raw.githubusercontent.com/PhMajerus/Documents/main/HowTos/HowTo%20Large%20Type%20Pieces.txt
.
This FIGfont requires the terminal to support Large Type Pieces characters to display properly, a font such as Cascadia ≥2404.23 or Iosevka ≥29.0.0 is recommended.
This is my main Large Type Pieces (Unicode 16.0) font, containing 1679 characters covering ASCII, Latin-1, Latin Extended-A, Latin Extended-B, Latin Extended Additional, superscripts, subscripts, small capitals, number forms, Greek, Cyrillic, Japanese half-width Katakana, Braille, some mathematical operators and symbols, and more.
It uses Unicode 16 Large Type Pieces (U+1CE1A
to U+1CE50
) and Quadrants (including the centered variants) to build a smooth set of characters using three rows.
It also uses Sextants and Octants for some non-alphabetical characters such as outlined letters and 7-segment digits.
Note that because of the limited size, capital letters (uppercase) do not have accents, and small letter (lowercase) are missing some accents, such as marks appearing below characters.
If you want to learn more about Large Type Pieces, try curl https://raw.githubusercontent.com/PhMajerus/Documents/main/HowTos/HowTo%20Large%20Type%20Pieces.txt
.
This FIGfont requires the terminal to support Large Type Pieces characters to display properly, a font such as Cascadia ≥2404.23 or Iosevka ≥29.0.0 is recommended.
Remember to use figlet -f phm-largetype -C utf8
to access Unicode characters.
This is a subset of my Large Type Pieces font, but instead of using Unicode 16.0 characters, it uses the legacy alternate character set found on HP 2640 Series terminals and compatibles. This is used to create large type text on terminals that support an alternate character set for its ASCII characters.
SoftFonts (Soft Character Sets / DRCS) providing the Larget Type Pieces to DEC VT220, VT320, and VT420 terminals can be found in my SoftFonts collections.
Note the character set must be selected and then restored when using this FIGfont, for example:
echo -ne "\e( L"; figlet -f phm-largetype-ASCII -C utf8 "Hello, world!"; echo -ne "\e(B"
This font uses Unicode 16.0 octants characters to create a monospaced retro low-rez font like on LCD and LED signboards, and 8-bit computers. The characters are 6×8 pseudo-pixels, inspired by the Motorola MC6847 character generator, Tatung Einstein TC-01, TRS-80, and other computers of the 1980's.
It does not require an ANSI/VT terminal (does not use escape sequences) and works fine with FIGlet, but the terminal must support the octants characters.
This font uses extended ASCII characters from the US (437) codepage and ANSI/VT escape sequences for inverted (negative) characters. It uses just two rows and supports the base ASCII characters set.
It works in FIGlet 2.2.5, but the width computation gets confused, so it can only be used for single lines. It requires -w 9999
to avoid misplaced line breaks.
It does not work at all in TOIlet 0.3, as escape sequences get removed.
Remember to use figlet -f phm-blocky -w 9999
to avoid misplaced line breaks and broken VT control sequences due to bad width computation.
This font uses extended ASCII characters from the US (437) codepage. It uses four rows and supports the base ASCII characters set.
Unlike phm-blocky, this reverse version does not require an ANSI/VT terminal (does not use escape sequences) and works fine with FIGlet, but the terminal must support the block elements found in codepage 473. The equivalent font in non-reverse is not possible without help from ANSI/VT to invert (negative) some characters.
This font uses Unicode characters (Box Drawings lines, half lines, diagonals and arcs). It uses four rows and supports the base ASCII characters set.
This font uses Unicode 13.0 smooth mosaic and sextant characters. It uses six rows and supports the ASCII, ISO 8859-1 and Windows 1252 Latin-1 characters sets.
Remember to use figlet -f phm-slanted -C utf8
to access Unicode characters.
This font uses Unicode 13.0 smooth mosaic and sextant characters, as well as some quadrants, and requires 16 colors ANSI/VT escape sequences support, and uses six rows. It contains 629 characters, and supports the ASCII, ISO 8859-1 and Windows 1252 Latin-1 characters sets, and Japanese Katakana (and Hiragana as Katakana).
It works in FIGlet 2.2.5, but the width computation gets confused, so it can only be used for single lines. It requires -w 9999
to avoid misplaced line breaks.
It does not work at all in TOIlet 0.3, as escape sequences get removed.
Note you can use the sed
(stream editor) utility to replace colors.
The font uses colors 97
and 107
for highlight, 37
and 47
for light, and 90
and 100
for shadow. Always set both foreground and background colors of the same brightness to the same color.
The following set of replacements will change the 3 original grays to red (31
and 41
), green (32
and 42
), and yellow/brown (33
and 43
):
hostname | figlet -f phm-chisel -C utf8 -w 9999 -n | sed -e 's/97/31/g;s/107/41/g;s/37/32/g;s/47/42/g;s/90/33/g;s/100/43/g'
It is also possible to use 256-colors or 24-bit colors for finer control.
Here are replacements commands for common colors gradients using the 256-colors palette:
(Expand for commands to use for red, green, blue, yellow, purple, cyan, orange, pink, and silver color schemes.)
Color | Command |
---|---|
Red | sed -e 's/97/38;5;210/g;s/107/48;5;210/g;s/37/38;5;167/g;s/47/48;5;167/g;s/90/38;5;124/g;s/100/48;5;124/g' |
Green | sed -e 's/97/38;5;120/g;s/107/48;5;120/g;s/37/38;5;77/g;s/47/48;5;77/g;s/90/38;5;34/g;s/100/48;5;34/g' |
Blue | sed -e 's/97/38;5;103/g;s/107/48;5;103/g;s/37/38;5;61/g;s/47/48;5;61/g;s/90/38;5;19/g;s/100/48;5;19/g' |
Yellow | sed -e 's/97/38;5;228/g;s/107/48;5;228/g;s/37/38;5;185/g;s/47/48;5;185/g;s/90/38;5;142/g;s/100/48;5;142/g' |
Purple | sed -e 's/97/38;5;212/g;s/107/48;5;212/g;s/37/38;5;170/g;s/47/48;5;170/g;s/90/38;5;127/g;s/100/48;5;127/g' |
Cyan | sed -e 's/97/38;5;123/g;s/107/48;5;123/g;s/37/38;5;80/g;s/47/48;5;80/g;s/90/38;5;37/g;s/100/48;5;37/g' |
Orange | sed -e 's/97/38;5;215/g;s/107/48;5;215/g;s/37/38;5;208/g;s/47/48;5;208/g;s/90/38;5;130/g;s/100/48;5;130/g' |
Pink | sed -e 's/97/38;5;218/g;s/107/48;5;218/g;s/37/38;5;211/g;s/47/48;5;211/g;s/90/38;5;168/g;s/100/48;5;168/g' |
Silver | sed -e 's/97/38;5;231/g;s/107/48;5;231/g;s/37/38;5;188/g;s/47/48;5;188/g;s/90/38;5;145/g;s/100/48;5;145/g' |
Remember to use figlet -f phm-chisel -C utf8 -w 9999
to access Unicode characters and to avoid misplaced line breaks and broken VT control sequences due to bad width computation.
This font was designed by Strahd(ST) & Roy/SAC as BEYONDX.TDF
for TheDRAW, an MS-DOS ANSI-art drawing application.
I converted it to a FIGlet font from the original file.
It uses characters from the US (437) codepage and ANSI/VT escape sequences for colors to create large colorful 9-rows characters.
The original TDF file contained several color schemes, but I only converted the blue one for now, as it is mostly intended as a historical reference for my own Beyond Neo font below.
It works in FIGlet 2.2.5, but the width computation gets confused, so it can only be used for single lines. It requires -w 9999
to avoid misplaced line breaks.
It does not work at all in TOIlet 0.3, as escape sequences get removed.
Remember to use figlet -f beyond-blue -w 9999
to avoid misplaced line breaks and broken VT control sequences due to bad width computation.
This font family is inspired by the look of ST+Roy/SAC Beyond, but using just 5 rows by taking advantage of Unicode 16.0 Symbols for Legacy Computing. It contains 1592 characters, and supports the ASCII, ISO 8859-1 and Windows 1252 Latin-1 characters sets, Greek, Cyrillic, Japanese Katakana (and Hiragana as Katakana), 72 ideographs (mostly for dates, times, and numbers in Chinese numerals), and more. Several versions are available with different color schemes or compatible with plain-text.
These are the red, green, blue, yellow, purple, cyan, orange, pink, silver, and gold color schemes of Beyond Neo. They require 256 colors ANSI/VT escape sequences support.
They work in FIGlet 2.2.5, but the width computation gets confused, so they can only be used for single lines.
They require -w 9999
to avoid misplaced line breaks.
They do not work at all in TOIlet 0.3, as escape sequences get removed.
If the background color is close to white, the grays can be shifted to go from light gray to black instead of white to dark gray using the sed
(stream editor) utility.
figlet -f phm-beyondneo-gold -C utf8 -w 9999 "Test" | sed -e 's/38;5;59/38;5;16/g;s/48;5;59/48;5;16/g;s/38;5;102/38;5;59/g;s/48;5;102/48;5;59/g;s/38;5;145/38;5;102/g;s/48;5;145/48;5;102/g;s/38;5;188/38;5;145/g;s/48;5;188/48;5;145/g;s/38;5;231/38;5;188/g;s/48;5;231/48;5;188/g'
Remember to use figlet -f phm-beyondneo-red -C utf8 -w 9999
to access Unicode characters (including ISO 8859-1) and to avoid misplaced line breaks and broken VT control sequences due to bad width computation.
This is the monochrome version of Beyond Neo. it is designed without any ANSI/VT escape sequence, making it compatible with plain-text and VT-unaware utilities.
Remember to use figlet -f phm-beyondneo-mono -C utf8
to access Unicode characters (including ISO 8859-1).
You'll need the FIGlet utility, so start with sudo apt install figlet
or equivalent for your distro.
FIGfonts can be used as it by specifying their paths:
echo 'Hello, world!' | figlet -f /some_path/phm-largetype.flf -C utf8
The -C utf8
option makes it support Unicode characters, handling the input as UTF-8.
But to make it cleaner and easier to use regularly, the font files can be copied to the FIGfont folder:
# Find out which directory contains figfonts
figlet -I2
# Copy font file(s) to that directory
sudo cp phm-largetype.flf /usr/share/figlet/phm-largetype.flf
# Use the FIGfont without having to specify the path or extension
echo 'Hello, world!' | figlet -f phm-largetype -C utf8
Note many of my fonts use ANSI/VT control sequences, which FIGlet does not support, making it miscalculate the width of characters. The workaround is to use the -w 9999
argument to prevent it from wrapping text.
To create text that spans several lines, the fold
utility can be used to prepare the text in advance.
For example:
uname -a | fold -sw 20 | figlet -f phm-beyondneo-red -w 9999 -C utf8
This takes the output of uname
, formats it for lines of 20 characters max, breaking it at spaces instead of in words, then uses figlet
to convert that to large colorful characters.
If you want to use only uppercase or lowercase letters from a font that supports both, convert the text in advance. For example:
date | tr [:lower:] [:upper:] | figlet -f phm-slanted -w 130 -C utf8
date | tr [:upper:] [:lower:] | figlet -f phm-slanted -w 130 -C utf8
-- Philippe Majerus, October 2024
If you enjoy ANSI-art and Unicode semigraphics, also check out my cowsay files collection.