Ascii Banners

I was see what banners the toilet command could generate, and I wanted a way to see what all of the fonts looked like.

Here is an example of what the command can do:

$ toilet Character
			
  mmm  #                                    m
m"   " # mm    mmm    m mm   mmm    mmm   mm#mm   mmm    m mm
#      #"  #  "   #   #"  " "   #  #"  "    #    #"  #   #"  "
#      #   #  m"""#   #     m"""#  #        #    #""""   #
 "mmm" #   #  "mm"#   #     "mm"#  "#mm"    "mm  "#mm"   #

$
	
You can also pick a font with the -f option.
$ toilet -f whimsy Character
        d8b                                                                  
        ?88                                             d8P                  
         88b                                         d888888P                
 d8888b  888888b  d888b8b    88bd88b d888b8b   d8888b  ?88'   d8888b  88bd88b
d8P' `P  88P `?8bd8P' ?88    88P'  `d8P' ?88  d8P' `P  88P   d8b_,dP  88P'  `
88b     d88   88P88b  ,88b  d88     88b  ,88b 88b      88b   88b     d88     
`?888P'd88'   88b`?88P'`88bd88'     `?88P'`88b`?888P'  `?8b  `?888P'd88'     
                                                                             
                                                                             
$                                                                            
	
My shell will autocomplete the fonts, but I did not have time to try them all one at a time. Reading the manual I found the fonts were stored in /usr/share/figlet. Now I have the command ls /usr/share/figlet to list the fonts, but they have the extension .flf or .tlf. I need to remove that, which is a good job for sed. The replacement s/\..lf// will replace the . character followed by anything and then lf with nothing, removing it.

$ ls /usr/share/figlet | sed s/\..lf// | xargs -I {} echo {}                   
3-d
3x5
4x4_offr
5lineoblique
5x7
5x8
6x9
6x10
64f1____
1943____
a_zooloo
acrobatic
advenger
alligator
alligator2
alphabet
aquaplan
asc_____
ascii9
ascii12
ascii___
assalt_m
asslt__m
atc_____
atc_gran
avatar
b_m__200
banner
banner3-D
banner3
banner4
barbwire
basic
battle_s
battlesh
baz__bil
beer_pub
bell
bfraktur
big
bigascii9
bigascii12
bigchief
bigmono9
bigmono12
binary
block
brite
briteb
britebi
britei
broadway
bubble
bubble__
bubble_b
bulbhead
c1______
c2______
c_ascii_
c_consen
calgphy2
caligraphy
catwalk
caus_in_
char1___
char2___
char3___
char4___
charact1
charact2
charact3
charact4
charact5
charact6
characte
charset_
chartr
chartri
chunky
circle
clb6x10
clb8x8
clb8x10
cli8x8
clr4x6
clr5x6
clr5x8
clr5x10
clr6x6
clr6x8
clr6x10
clr7x8
clr7x10
clr8x8
clr8x10
coil_cop
coinstak
colossal
com_sen_
computer
contessa
contrast
convoy__
cosmic
cosmike
cour
courb
courbi
couri
crawford
cricket
cursive
cyberlarge
cybermedium
cybersmall
d_dragon
dcs_bfmo
decimal
deep_str
demo_1__
demo_2__
demo_m__
devilish
diamond
digital
doh
doom
dosrebel
dotmatrix
double
drpepper
druid___
dwhistled
e__fist_
ebbs_1__
ebbs_2__
eca_____
eftichess
eftifont
eftipiti
eftirobot
eftitalic
eftiwall
eftiwater
emboss
emboss2
epic
etcrvs__
f15_____
faces_of
fair_mea
fairligh
fantasy_
fauxcyrillic
fbr1____
fbr2____
fbr12___
fbr_stri
fbr_tilt
fender
finalass
fireing_
flyn_sh
fourtops
fp1_____
fp2_____
fraktur
fullcyrillic
funky_dr
future
future_1
future_2
future_3
future_4
future_5
future_6
future_7
future_8
fuzzy
gauntlet
ghost_bo
goofy
gothic
gothic__
graceful
gradient
graffiti
grand_pr
green_be
hades___
heavy_me
helv
helvb
helvbi
helvi
heroboti
hex
high_noo
hills___
hollywood
home_pak
house_of
hypa_bal
hyper___
inc_raw_
invita
isometric1
isometric2
isometric3
isometric4
italic
italics_
ivrit
jazmine
jerusalem
joust___
katakana
kban
kgames_i
kik_star
krak_out
l4me
larry3d
lazy_jon
lcd
lean
letter
letter_w
letters
letterw3
lexible_
linux
lockergnome
mad_nurs
madrid
magic_ma
marquee
master_o
maxfour
mayhem_d
mcg_____
mig_ally
mike
mini
mirror
modern__
mono9
mono12
morse
moscow
mshebrew210
nancyj-fancy
nancyj-underlined
nancyj
new_asci
nfi1____
nipples
notie_ca
npn_____
ntgreek
nvscript
o8
octal
odel_lak
ogre
ok_beer_
os2
outrun__
p_s_h_m_
p_skateb
pacos_pe
pagga
panther_
pawn_ins
pawp
peaks
pebbles
pepper
phonix__
platoon2
platoon_
pod_____
poison
puffy
pyramid
r2-d2___
rad_____
rad_phan
radical_
rainbow_
rally_s2
rally_sp
rampage_
rastan__
raw_recu
rci_____
rectangles
relief
relief2
rev
ripper!_
road_rai
rockbox_
rok_____
roman
roman___
rot13
rounded
rowancap
rozzo
runic
runyc
sans
sansb
sansbi
sansi
sblood
sbook
sbookb
sbookbi
sbooki
script
script__
serifcap
shadow
short
skate_ro
skateord
skateroc
sketch_s
slant
slide
slscript
sm______
small
smascii9
smascii12
smblock
smbraille
smisome1
smkeyboard
smmono9
smmono12
smscript
smshadow
smslant
smtengwar
space_op
spc_demo
speed
stacey
stampatello
standard
star_war
starwars
stealth_
stellar
stencil1
stencil2
stop
straight
street_s
subteran
super_te
t__of_ap
tanja
tav1____
taxi____
tec1____
tec_7000
tecrvs__
tengwar
term
thick
thin
threepoint
ti_pan__
ticks
ticksslant
times
timesofl
tinker-toy
tomahawk
tombstone
top_duck
trashman
trek
triad_st
ts1_____
tsalagi
tsm_____
tsn_base
tty
ttyb
twin_cob
twopoint
type_set
ucf_fan_
ugalympi
unarmed_
univers
usa_____
usa_pq__
usaflag
utopia
utopiab
utopiabi
utopiai
vortron_
war_of_w
weird
whimsy
wideterm
xbrite
xbriteb
xbritebi
xbritei
xchartr
xchartri
xcour
xcourb
xcourbi
xcouri
xhelv
xhelvb
xhelvbi
xhelvi
xsans
xsansb
xsansbi
xsansi
xsbook
xsbookb
xsbookbi
xsbooki
xtimes
xtty
xttyb
yie-ar__
yie_ar_k
z-pilot_
zig_zag_
zone7___

By replacing echo {} with toilet -f {} Whatever text I want I should be able to preview all of the fonts! The problem is some of the fonts are broken, make toilet produce an error, so xargs kills the whole script. Here I made the font display it's own name.

$ ls /usr/share/figlet | sed s/\..lf// | xargs -I {} toilet -f {} {}           
  ****             **
 */// *           /**
/    /*           /**
   ***  *****  ******
  /// */////  **///**
 *   /*      /**  /**
/ ****       //******
 ////         ////// 
            
###     ### 
  # # # #   
 ##  #  ### 
  # # #   # 
###     ### 
error: could not load font 4x4_offr
xargs: toilet: exited with status 255; aborting

The best way to move forward, I found, was to use the parallel program. Here is the command using the parallel program: ls /usr/share/figlet | sed s/\..lf// | parallel "toilet -f {} {}". It produces a lot of output, so I stored it in a file, and read through it later. Then I just copied the fonts that I wanted to use again into a text file. A cool thing that this allows me to do is use a similar program on that file to generate a list of any text in a lot of cool fonts, and pick my favorite. Here are the ones that I thought I might want

3-d
5lineoblique
acrobatic
alligator
alligator2
avatar
banner3-D
banner4
barbwire
basic
bell
bfraktur
big
bigchief
binary
block
bigmono12
bigascii12
bigmono9
bigascii9
broadway
bulbhead
caligraphy
catwalk
chunky
circle
coinstak
colossal
contessa
cosmike
crawford
cricket
cursive
cyberlarge
cybermedium
cybersmall
digital
doh
dotmatrix
double
drpepper
emboss
emboss2
epic
fauxcyrillic
fender
fraktur
fullcyrillic
future
fuzzy
goofy
gothic
graceful
gradient
graffiti
hollywood
isometric1
isometric2
isometric3
isometric4
ivrit
jazmine
larry3d
lcd
lean
letter
linux
lockergnome
marquee
madrid
mini
nancyj
nipples
nvscript
ogre
pagga
pawp
peaks
pebbles
puffy
rectangles
relief
rev
roman
rounded
rowancap
rozzo
sblood
script
serifcap
shadow
short
slant
small
smbraille
smisome1
smkeyboard
smscript
smslant
speed
stacey
stampatello
standard
starwars
stellar
stop
thin
ticks
ticksslant
tinker-toy
tombstone
trek
univers
usaflag
utopia
weird
whimsy

And here is some text in all of the fonts

Failed to load the text file with all the stuff in it