| .TH SETFONT 8 "11 Feb 2001" "" "International Support" |
| .SH NAME |
| setfont \- load EGA/VGA console screen font |
| .SH SYNOPSIS |
| .B setfont |
| .RI "[-O " "font+umap.orig" "] [-o " "font.orig" ] |
| .RI "[-om " "cmap.orig" ] |
| .RI "[-ou " "umap.orig" ] |
| .RI "[-" "N" "] [" "font.new ..." ] |
| .RI "[-m " "cmap" ] |
| .RI "[-u " "umap" ] |
| .RI "[-C " "console" ] |
| .RI "[-h" "H" ] |
| .RI "[-v] [-V]" |
| .IX "setfont command" "" "\fLsetfont\fR command" |
| .SH DESCRIPTION |
| The |
| .B setfont |
| command reads a font from the file |
| .I font.new |
| and loads it into the EGA/VGA character generator, |
| and optionally outputs the previous font. |
| It can also load various mapping tables |
| and output the previous versions. |
| .LP |
| If no args are given (or only the option |
| .RI \- N |
| for some number |
| .IR N ), |
| then a default |
| .RI (8x N ) |
| font is loaded (see below). |
| One may give several small fonts, all containing |
| a Unicode table, and |
| .B setfont |
| will combine them and load the union. |
| Typical use: |
| .TP |
| .B setfont |
| Load a default font. |
| .TP |
| .B "setfont drdos8x16" |
| Load a given font (here the 448-glyph drdos font). |
| .TP |
| .B "setfont cybercafe -u cybercafe" |
| Load a given font that does not have a Unicode map |
| and provide one explicitly. |
| .TP |
| .B "setfont LatArCyrHeb-19 -m 8859-2" |
| Load a given font (here a 512-glyph font combining several |
| character sets) and indicate that one's local character set |
| is ISO 8859-2. |
| |
| .SH "FONT FORMATS" |
| The standard Linux font format is the PSF font. |
| It has a header describing font properties like character size, |
| followed by the glyph bitmaps, optionally followed by a Unicode mapping |
| table giving the Unicode value for each glyph. |
| Several other (obsolete) font formats are recognized. |
| If the input file has code page format (probably with suffix .cp), |
| containing three fonts with sizes e.g. 8x8, 8x14 and 8x16, then one of |
| the options \-8 or \-14 or \-16 must be used to select one. |
| Raw font files are binary files of size |
| .RI 256* N |
| bytes, containing bit images for each of 256 characters, |
| one byte per scan line, and |
| .I N |
| bytes per character (0 < |
| .I N |
| <= 32). |
| Most fonts have a width of 8 bits, but with the framebuffer device (fb) |
| other widths can be used. |
| |
| .SH "FONT HEIGHT" |
| The program |
| .B setfont |
| has no built-in knowledge of VGA video modes, but just asks |
| the kernel to load the character ROM of the video card with |
| certain bitmaps. However, since Linux 1.3.1 the kernel knows |
| enough about EGA/VGA video modes to select a different line |
| distance. The default character height will be the number |
| .I N |
| inferred from the font or specified by option. However, the |
| user can specify a different character height |
| .I H |
| using the |
| .I "\-h" |
| option. |
| |
| .SH "CONSOLE MAPS" |
| Several mappings are involved in the path from user program |
| output to console display. If the console is in utf8 mode (see |
| .BR unicode_start (1)) |
| then the kernel expects that user program output is coded as UTF-8 (see |
| .BR utf-8 (7)), |
| and converts that to Unicode (ucs2). |
| Otherwise, a translation table is used from the 8-bit program output |
| to 16-bit Unicode values. Such a translation table is called a |
| .IR "Unicode console map" . |
| There are four of them: three built into the kernel, the fourth |
| settable using the |
| .I "\-m" |
| option of |
| .BR setfont . |
| An escape sequence chooses between these four tables; after loading a |
| .IR cmap , |
| .B setfont |
| will output the escape sequence Esc ( K that makes it the active translation. |
| .LP |
| Suitable arguments for the |
| .I "\-m" |
| option are for example |
| .IR 8859-1 , |
| .IR 8859-2 ", ...," |
| .IR 8859-15 , |
| .IR cp437 ", ...," |
| .IR cp1250 . |
| .LP |
| Given the Unicode value of the symbol to be displayed, the kernel |
| finds the right glyph in the font using the Unicode mapping info |
| of the font and displays it. |
| .LP |
| Old fonts do not have Unicode mapping info, and in order to handle |
| them there are direct-to-font maps (also loaded using |
| .IR "\-m" ) |
| that give a correspondence between user bytes and font positions. |
| The most common correspondence is the one given in the file |
| .I trivial |
| (where user byte values are used directly as font positions). |
| Other correspondences are sometimes preferable since the |
| PC video hardware expects line drawing characters in certain |
| font positions. |
| .LP |
| Giving a |
| .I "\-m none" |
| argument inhibits the loading and activation of a mapping table. |
| The previous console map can be saved to a file using the |
| .I "\-om file" |
| option. |
| These options of setfont render |
| .BR mapscrn (8) |
| obsolete. (However, it may be useful to read that man page.) |
| |
| .SH "UNICODE FONT MAPS" |
| The correspondence between the glyphs in the font and |
| Unicode values is described by a Unicode mapping table. |
| Many fonts have a Unicode mapping table included in |
| the font file, and an explicit table can be indicated using |
| the |
| .I "\-u" |
| option. The program |
| .B setfont |
| will load such a Unicode mapping table, unless a |
| .I "\-u none" |
| argument is given. The previous Unicode mapping table |
| will be saved as part of the saved font file when the \-O |
| option is used. It can be saved to a separate file using the |
| .I "\-ou file" |
| option. |
| These options of setfont render |
| .BR loadunimap (8) |
| obsolete. |
| .LP |
| The Unicode mapping table should assign some glyph to |
| the `missing character' value U+fffd, otherwise missing |
| characters are not translated, giving a usually very confusing |
| result. |
| |
| Usually no mapping table is needed, and a Unicode mapping table |
| is already contained in the font (sometimes this is indicated |
| by the .psfu extension), so that most users need not worry |
| about the precise meaning and functioning of these mapping tables. |
| |
| One may add a Unicode mapping table to a psf font using |
| .BR psfaddtable (1). |
| |
| .SH OPTIONS |
| .TP |
| .BI "\-h " H |
| Override font height. |
| .TP |
| .BI "\-m " file |
| Load console map or Unicode console map from |
| .IR file . |
| .TP |
| .BI "\-o " file |
| Save previous font in |
| .IR file . |
| .TP |
| .BI "\-O " file |
| Save previous font and Unicode map in |
| .IR file . |
| .TP |
| .BI "\-om " file |
| Store console map in |
| .IR file . |
| .TP |
| .BI "\-ou " file |
| Save previous Unicode map in |
| .IR file . |
| .TP |
| .BI "\-u " file |
| Load Unicode table describing the font from |
| .IR file . |
| .TP |
| .BI "\-C " console |
| Set the font for the indicated console. (May require root permissions.) |
| .TP |
| .B \-v |
| Be verbose. |
| .TP |
| .B \-V |
| Print version and exit. |
| |
| .SH FILES |
| .I @datadir@/consolefonts |
| is the default font directory. |
| .I @datadir@/unimaps |
| is the default directory for Unicode maps. |
| .I @datadir@/consoletrans |
| is the default directory for screen mappings. |
| The default font is a file |
| .I default |
| (or |
| .IR default8x N |
| if the \-N option was given for some number N) |
| perhaps with suitable extension (like .psf). |
| .SH "SEE ALSO" |
| .BR psfaddtable (1), |
| .BR unicode_start (1), |
| .BR loadunimap (8), |
| .BR utf-8 (7), |
| .BR mapscrn (8) |
| .\" .SH "AUTHORS" |
| .\" Eugene G. Crosser (crosser@pccross.msk.su) |
| .\" .br |
| .\" Andries E. Brouwer (aeb@cwi.nl) |