Graphics characters are stored in an “alternate character set”, which you can turn on and off with the ALTCHARSET character (control-E). When you are in alternate character set mode, some of the characters are substituted with other (“alternate”) characters.
The $getcap(TERM acs_chars 0 0) function call will return to you all of the characters that are substituted in the alternate character set. This value is a string that contains pairs of characters.
The first character is a well-defined “vt100” alternate character name.
The second character is what character your emulator uses to support that well-defined “vt100” alternate character.
Any characters that are not supported by your emulator are not shown in this list; you can't assume all characters will be supported – some emulators may not support any.
@ foo = getcap(TERM acs_chars 0 0); fec ($foo) vt me { switch ($vt) { (w) { @tee_down = me } (u) { @tee_left = me } (t) { @tee_right = me } (v) { @tee_up = me } (l) { @ul_corner = me } (k) { @ur_corner = me } (m) { @ll_corner = me } (j) { @lr_corner = me } (x) { @vline = me } (q) { @hline = me } } }
alias box (message) { echo $ul_corner$repeat(65 $hline)$ur_corner echo $vline$[65]center(65 $message)$vline echo $ll_corner$repeat(65 $hline)$lr_corner }
box hi there! box w00t!