FIGLET(6)

πŸ“¦ version 2.2.5, in ubuntu resolute, ubuntu stonking

FIGLET πŸ’– (the Games Manual one, bestie β€” section 6, we're in the fun zone)

✨ NAME ✨

FIGlet β€” it displays big ol' large characters that are literally made up of ordinary screen characters 🫢


🌸 SYNOPSIS 🌸

figlet [ -cklnoprstvxDELNRSWX ] [ -d fontdirectory ]
       [ -f fontfile ] [ -m layoutmode ]
       [ -w outputwidth ] [ -C controlfile ]
       [ -I infocode ] [ message ]

yes queen, that is a LOT of little letters and they all mean something, we'll get to them i promise πŸ’…


πŸ’œ DESCRIPTION πŸ’œ

okay so. FIGlet prints whatever you feed it using large characters β€” and those big characters are called FIGcharacters''</hotpink> β€” which are themselves built out of regular tiny screen characters called <hotpink>sub-characters''. it's giving matryoshka dolls but make it ASCII πŸŽ€

ngl the output is generally reminiscent of the kind of ``signatures'' people love slapping at the end of e-mail and UseNet messages. it's also reminiscent of what those banner programs spit out, EXCEPT β€” and this is the icon behaviour β€” FIGlet is oriented normally, not sideways. main character energy, upright, periodt. πŸ‘‘

FIGlet can print in a whole variety of fonts, both left-to-right and right-to-left, with adjacent FIGcharacters kerned and smushed''</lavender> together in various ways. yes smushed is the technical term, i don't make the rules. FIGlet fonts live in separate files and you can spot them by the suffix <hotpink>.flf''. on systems with UTF-8 support, FIGlet may also support TOIlet ``.tlf'' fonts πŸ”₯ most FIGlet font files are stored in FIGlet's default font directory.

FIGlet can also use control files''</cyan>, which tell it to map certain input characters to certain other characters β€” basically the Unix `tr` command but for our purposes here. control files are identifiable by the suffix <hotpink>.flc''. most FIGlet control files are also stored in FIGlet's default font directory.

and the best part?? you can store FIGlet fonts AND control files in compressed form 😌 go look at COMPRESSED FONTS for that tea.


πŸ¦‹ USAGE πŸ¦‹

just start up FIGlet β€” literally type ``figlet'' β€” and then type whatever you want. that's it, that's the whole vibe.

OR, if you're feeling fancy:

  • pipe a file through FIGlet
  • pipe the output of another command through FIGlet
  • put your input on the command line, after the options

and if you want even more things to do with your life, go peek at EXAMPLES ✨


✨ OPTIONS ✨

Okay bestie, so FIGlet reads your command-line options from left to right, and if you give it the same parameter twice, only the last one that touches that parameter actually matters. Almost every option has an inverse too, so if you've got FIGlet customized with a shell alias, all the options are usually still there for you. πŸ’–

The ones you'll actually use constantly are -f, -c, -k, -t, -p and -v. Those are the VIPs. πŸ‘‘


  • -f fontfile β€” picks your font, periodt. You can totally leave off the .flf suffix and FIGlet will just append it for you. FIGlet hunts for the file first in the default font directory and then in the current directory β€” unless you handed it a full pathname for fontfile, in which case it looks in that given directory. No -f? Then FIGlet uses whatever font was baked in when it got compiled. Wanna know which one that is? Hit it with -I3.
  • -d fontdirectory β€” changes the default font directory. FIGlet looks for fonts first in the default directory, then in the current directory. Skip -d and FIGlet uses the directory from compile time. Curious which? That's -I2, bestie.
  • -c, -l, -r, -x β€” the justification squad, this is how your output lines up. -c centers it horizontally. -l makes it flush-left. -r makes it flush-right. -x is the default and it sets justification based on whether you're doing left-to-right or right-to-left text: left-to-right goes flush-left, right-to-left goes flush-right. (And who controls left-to-right vs right-to-left? That's -L, -R and -X, keep scrolling. πŸ‘€)
  • -t, -w outputwidth β€” these control the outputwidth, aka the screen width FIGlet assumes when it's formatting. FIGlet uses that number to figure out when to break lines and how to center stuff. Normally it assumes 80 columns so that people with giant terminals don't annoy the people they're emailing FIGlet output to. πŸ’€ -t sets the outputwidth to your actual terminal width β€” and if the terminal width can't be determined, the previous outputwidth is retained. -w sets it to the integer you give it. An outputwidth of 1 is a special lil value that tells FIGlet to print each non-space FIGcharacter, in its entirety, on a separate line, no matter how wide it is.
  • -p, -n β€” newline handling, the drama of it. -p puts FIGlet into paragraph mode, which kills some unnecessary line breaks when you're piping a multi-line file through. In paragraph mode, FIGlet treats line breaks inside a paragraph as if they were just blanks between words. (Specifically, -p causes FIGlet to convert any newline which is not preceded by a newline and not followed by a space character into a blank.) -n (the default) puts FIGlet back to normal, where every newline it reads makes it produce a line break.
  • -D, -E β€” -D switches to the German (ISO 646-DE) character set. Turns [, \ and ] into umlauted A, O and U, respectively. {, | and } turn into the respective lower case versions of these. ~ turns into s-z. -E turns off -D processing.
⚠️ Heads up: these options are deprecated, which means they probably will not appear in the next version of FIGlet. Use them while you can, I guess.
  • -C controlfile, -N β€” controlfile business. A controlfile is a file containing a list of commands that FIGlet executes each time it reads a character. Those commands can map certain input characters to other characters β€” kinda like the Unix tr command or the FIGlet -D option. FIGlet keeps a list of controlfiles, and that list is empty when FIGlet starts up. -C adds the given controlfile to the list. -N clears the controlfile list, cancelling the effect of any previous -C. FIGlet executes the commands in all controlfiles in the list. Wanna know how to actually write a controlfile? See the file figfont.txt, provided with FIGlet. πŸ“–
  • -s (default), -S β€” these two cause smushing''. The FIGcharacters get displayed as close together as possible and overlapping sub-characters get removed. Exactly which sub-characters count as overlapping'' depends on the font's layoutmode, which is defined by the font's author. The difference between -s and -S? -s will not smush a font whose author specified kerning or full width as the default layoutmode, whereas -S will attempt to do so anyway. Bold of it.
  • -k β€” causes ``kerning''. As many blanks as possible get removed between FIGcharacters so that they touch, but the FIGcharacters are not smushed.
  • -W β€” makes FIGlet display all FIGcharacters at their full width, which may be fixed or variable, depending on the font.
  • -o β€” the overlap option. If there's no information in the font about how to smush, or if -o is specified, then the FIGcharacters are ``overlapped''. What does that mean? After kerning, the first subcharacter of each FIGcharacter is removed. (This is not done if a FIGcharacter contains only one subcharacter.)
  • -m layoutmode β€” specifies an explicit layoutmode between 1 and 63. Smushmodes are explained in figfont.txt, which also has the complete tea on the format of a FIGlet font. For the sake of backward compatibility with versions of FIGlet before 2.2, -m0 is equivalent to -k, -m-1 is equivalent to -W, and -m-2 is equivalent to -s. The -m switch is normally used only by font designers testing the various layoutmodes with a new font. 🎨
  • -v, -I infocode β€” these print various info about FIGlet and then exit. If you give several of these on the command line, only the last one gets executed, and only after all the other command-line options have been dealt with. -v prints version and copyright information, plus a ``Usage: ...'' line. -I prints the info corresponding to the given infocode in a consistent, reliable format (i.e., guaranteed to be the same in future releases). -I is primarily intended to be used by programs that use FIGlet. infocode can be any of the following:
    • -1 β€” Normal operation (default). This infocode says FIGlet should operate normally, not giving any informational printout, just printing its input in the selected font.
    • 0 β€” Version and copyright. Identical to -v.
    • 1 β€” Version (integer). Prints the version of your copy of FIGlet as a decimal integer. The main version number is multiplied by 10000, the sub-version number is multiplied by 100, and the sub-sub-version number is multiplied by 1. Those get added together and printed out. For example, FIGlet 2.2 will print 20200, version 2.2.1 will print 20201. Similarly, version 3.7.2 would print 30702. These numbers are guaranteed to be ascending, with later versions having higher numbers. Note that the first major release of FIGlet, version 2.0, did not have the -I option.
    • 2 β€” Default font directory. Prints the default font directory. It is affected by the -d option.
    • 3 β€” Font. Prints the name of the font FIGlet would use. It is affected by the -f option. This is not a filename; the ``.flf'' suffix is not printed.
    • 4 β€” Output width. Prints the value FIGlet would use for outputwidth, the number of columns wide FIGlet assumes the screen is. It is affected by the -w and -t options.
    • 5 β€” Supported font formats. Lists font formats supported by FIGlet. Possible formats are flf2'' for FIGfont Version 2 `.flf` files and tlf2'' for TOIlet .tlf files.

If infocode is any other positive value, FIGlet will simply exit without printing anything. πŸ™ˆ

  • -L, -R, -X β€” direction control, which way is the text going. -L selects left-to-right printing. -R selects right-to-left printing. -X (default) makes FIGlet use whichever is specified in the font file.

Once the options are read, if there are any remaining words on the command line, they get used instead of standard input as the source of text. This feature lets shell scripts generate large letters without having to dummy up standard input files. Slay. ✨

An empty argument, obtained by two sequential quotes, results in a line break.

🌈 EXAMPLES 🌈

Wanna use FIGlet with its default settings? Just type

example% figlet

and then type whatever you like. That's it, that's the vibe. πŸ’…

To change the font, use the -f option, for example,

example% figlet -f script

Use the -c option if you'd prefer centered output:

example% figlet -c

Honestly? The most common use of FIGlet is making up large text to drop into e-mail messages, so FIGlet defaults to 80 column output for that exact reason. If you're on a wider terminal and you want FIGlet to use the full width of your terminal, use the -t option:

example% figlet -t

If you don't want FIGlet to smush FIGcharacters into each other, use the -k option:

example% figlet -k

If figlet gets its input from a file, it's often a good idea to use -p:

example% figlet -p < myfile

And of course, the above can be combined:

example% figlet -ptk -f shadow < anotherfile
example% figlet -cf slant

Finally, if you want FIGlet to take the input from the command line instead of a file:

example% figlet Hello world

πŸ¦‹ Other Things to Try πŸ¦‹

On many systems, nice effects can be obtained from the lean font by piping it through tr. Some you might want to try are the following:

example% figlet -f lean | tr ' _/' ' ()'
example% figlet -f lean | tr ' _/' './\\'
example% figlet -f lean | tr ' _/' ' //'
example% figlet -f lean | tr ' _/' '/  '

Similar things can be done with the block font and many of the other FIGlet fonts. Go wild, bestie. πŸŽ€

πŸ—œοΈ COMPRESSED FONTS (yes bestie, they zip) πŸŽ€

okay so you can literally compress your fonts and controlfiles with the zip archiving program. iconic behavior honestly. here's the tea though:

  • put only one font or controlfile in each archive
  • then rename that archive file (the one ending in .zip) back to .flf or .flc depending on what it is
  • if you don't rename it properly, FIGlet will NOT find it. it will simply ✨not✨. πŸ’€

FIGlet does not care what the filename inside the .zip archive is β€” it will process only the first file. so don't be cute with it.

the .zip format was chosen because tools to create and manipulate it are widely available for free on many platforms. practical queen behavior fr fr 🫢


🌈 THE STANDARD FONTS 🌸

here are a few notes about some of the fonts provided with FIGlet. you can get many other fonts from the Web site http://www.figlet.org/ β€” that location should also contain the latest version of FIGlet and other related utilities. ✨

the font standard is the basic FIGlet font, used when no other font is specified. (this default can be changed when FIGlet is compiled on your system. lowkey customizable, we love that.)

the controlfiles 8859-2, 8859-3, 8859-4, and 8859-9 are provided for interpreting those character sets, also known as ISO Latin-2 through Latin-5 respectively. the character set 8859-1 (ISO Latin-1) is FIGlet's default and requires no special controlfile. πŸ’…

closely related are the fonts slant, shadow, small, smslant (both small and slanted), smshadow (both small and shadowed), and big. these fonts support only Latin-1, except that big supports Greek FIGcharacters as well. the controlfiles frango (for Greek text written in Latin characters, so-called ``frangovlakhika''), and 8859-7 (for mixed Latin/Greek text) are provided. 🌿

the ivrit font is a right-to-left font including both Latin and Hebrew FIGcharacters; the Latin characters are those of the standard font. the available controlfiles are:

  • ilhebrew β€” maps the letters you get by typing on a U.S. keyboard as if it were a Hebrew keyboard
  • ushebrew β€” makes a reasonable mapping from Latin letters to Hebrew ones
  • 8859-8 β€” supports mixed Latin/Hebrew text
⚠️ Warning bestie: FIGlet doesn't support bidirectional text, so everything will come out right-to-left, even Latin letters. it's giving chaos but it's on purpose 😭

the fonts terminal, digital, and bubble output the input character with some decoration around it (or no decoration, in the case of terminal). the characters coded 128 to 159, which have varying interpretations, are output as-is. you can use the appropriate controlfiles to process Latin-2, Latin-3, or Latin-4 (but not Latin-5) text, provided your output device has screen or printer fonts that are appropriate for these character sets. πŸ–¨οΈ

two script fonts are available: script, which is larger than standard, and smscript, which is smaller. πŸŽ€

the font lean is made up solely of / and _ sub-characters; block is a straight (non-leaning) version of it. 🧱

the font mini is very small, and especially suitable for e-mail signatures. tiny and perfect, main character energy. πŸ’Œ

the font banner looks like the output of the banner program; it is a capitals and small capitals font that doesn't support the ISO Latin-1 extensions to plain ASCII. it does, however, support the Japanese katakana syllabary:

  • the controlfile uskata maps the upper-case and lower-case Latin letters into the 48 basic katakana characters
  • the controlfile jis0201 handles JIS 0201X (JIS-Roman) mixed Latin and katakana text

furthermore, the banner font also supports Cyrillic (Russian) FIGcharacters:

  • the controlfile 8859-5 supports mixed Latin and Cyrillic text
  • the controlfile koi8r supports the popular KOI8-R mapping of mixed text
  • the controlfile moscow supports a sensible mapping from Latin to Cyrillic, compatible with the moscow font (not supplied)

the fonts mnemonic and safemnem support the mnemonic character set documented in RFC 1345. they implement a large subset of Unicode (over 1800 characters) very crudely, using ASCII-based mnemonic sequences, and are good for getting a quick look at UTF-8 unicode files, using the controlfile utf8. honestly? obsessed with the range. 🌍


🌱 ENVIRONMENT 🌱

  • FIGLET_FONTDIR β€” if $FIGLET_FONTDIR is set, its value is used as a path to search for font files.

πŸ“ FILES πŸ“

  • file.flf β€” FIGlet font file
  • file.flc β€” FIGlet control file

🩺 DIAGNOSTICS 🩺

FIGlet's diagnostics are intended to be self-explanatory. possible messages are:

Usage: ...
Out of memory
Unable to open font file
Not a FIGlet 2 font file
Unable to open control file
Not a FIGlet 2 control file
"-t" is disabled, since ioctl is not fully implemented.

that last message is printed when the -t option is given, but the operating system in use does not include the system call FIGlet uses to determine the terminal width. so basically your OS said "no ma'am." πŸ’€

FIGlet also prints an explanatory message if the -F option is given on the command line. the earlier version of FIGlet, version 2.0, listed the available fonts when the -F option was given. this option has been removed from FIGlet 2.1. it has been replaced by the figlist script, which is part of the standard FIGlet package. out with the old, in with the script bestie ✨


πŸ‘‘ ORIGIN πŸ‘‘

FIGlet'' stands for Frank, Ian and Glenn's LETters''. inspired by Frank's .sig, Glenn wrote (most of) it, and Ian helped. trio energy fr fr 🫢

most of the standard FIGlet fonts were inspired by signatures on various UseNet articles. since typically hundreds of people use the same style of letters in their signatures, it was often not deemed necessary to give credit to any one font designer. (the vibes were communal. we share the aesthetic. πŸ’–)


πŸ› BUGS πŸ›

very little error checking is done on font and control files. while FIGlet tries to be forgiving of errors, and should (hopefully) never actually crash, using an improperly-formatted file with FIGlet will produce unpredictable output. so like... no cap, be careful. πŸ™ˆ

FIGlet does not handle format characters in a very intelligent way:

  • a tab character is converted to a blank
  • vertical-tab, form-feed and carriage-return are each converted to a newline

on many systems, tabs can be handled better by piping files through expand before piping through FIGlet. little pro move, iykyk. πŸ’…

FIGlet output is quite ugly if it is displayed in a proportionally-spaced font. "I suppose this is to be expected." β€” iconic resigned energy honestly 😭

please report any errors you find in this man page or the program to <info@figlet.org> 🫢


🌐 WEBSITE AND MAILING LIST 🌐

you can get many fonts which are not in the basic FIGlet package from the Web site http://www.figlet.org/ β€” it should also contain the latest version of FIGlet and other utilities related to FIGlet. πŸ”₯

there is a mailing list for FIGlet for general discussions about FIGlet and a place where you can ask questions or share ideas with other FIGlet users. it is also the place where we will publish news about new fonts, new software updates etc. group chat but make it fonts. πŸ’¬

to subscribe or unsubscribe from the FIGlet mailing list, please send email to figlet-subscribe@figlet.org or figlet-unsubscribe@figlet.org or visit the following web page:

http://www.figlet.org/mailman/listinfo/figlet

πŸ’œ AUTHORS πŸ’œ

Glenn Chappell did most of the work. you can e-mail him but he is not an e-mail fanatic; people who e-mail Glenn will probably get answers, but if you e-mail his best friend:

Ian Chai, who is an e-mail fanatic, you'll get answers, endless conversation about the mysteries of life, invitations to join some 473 mailing lists and a free toaster. (well, ok, maybe not the free toaster.) 😭🍞

Frank inspired this whole project with his .sig, but don't e-mail him; he's decidedly an un-e-mail-fanatic. leave the man alone bestie πŸ’€

Gilbert "The Mad Programmer" Healton added the -A option for version 2.1.1. this option specified input from the command line; it is still allowed, but has no effect. (a relic. we respect it.)

John Cowan added the -o, -s, -k, -S, and -W options, and the support for Unicode mapping tables, ISO 2022/HZ/Shift-JIS/UTF-8 input, and compressed fonts and control files. he also revised this documentation, with a lot of input from Paul Burton. absolute legend behavior ✨

Claudio Matsuoka added the support for .tlf files for version 2.2.4 and performs random hacks and bugfixes. (random hacks and bugfixes is SUCH a mood.)

as a fan of FIGlet, Christiaan Keet revised the official FIGlet documentation and set up the new FIGlet website at http://www.figlet.org/ (and the corresponding ftp://ftp.figlet.org/pub/figlet/). king behavior, honestly πŸ‘‘


πŸ‘€ SEE ALSO πŸ‘€


and that's the whole page bestie, you made it to the end, so proud of you πŸ₯ΉπŸ«Ά this was v2.2.5, dated 31 May 2012 β€” FIGLET(6), slay, periodt, go make some big letters πŸ’–βœ¨

πŸ“¦ where this page comes from