display all the characters in an X font
xfd [-options ...] -fn fontname xfd [-options ...] -fa fontname
The xfd utility creates a window containing the name of the font being displayed, a row of command buttons, several lines of text for display‐ ing character metrics, and a grid containing one glyph per cell. The characters are shown in increasing order from left to right, top to bottom. The first character displayed at the top left will be charac‐ ter number 0 unless the -start option has been supplied in which case the character with the number given in the -start option will be used. The characters are displayed in a grid of boxes, each large enough to hold any single character in the font. Each character glyph is drawn using the PolyText16 request (used by the Xlib routine XDrawString16) or the XftDrawString32 routine, depending on whether the -fn or -fa op‐ tion was given. If the -box option is given, a rectangle will be drawn around each character, showing where an ImageText16 request (used by the Xlib routine XDrawImageString16) would cause background color to be displayed. The origin of each glyph is normally set so that the character is drawn in the upper left hand corner of the grid cell. However, if a glyph has a negative left bearing or an unusually large ascent, descent, or right bearing (as is the case with cursor font), some character may not appear in their own grid cells. The -center option may be used to force all glyphs to be centered in their respective cells. All the characters in the font may not fit in the window at once. To see the next page of glyphs, press the Next button at the top of the window. To see the previous page, press Prev. To exit xfd, press Quit. Individual character metrics (index, width, bearings, ascent and de‐ scent) can be displayed at the top of the window by clicking on the de‐ sired character. The font name displayed at the top of the window is the full name of the font, as determined by the server. See xlsfonts and fc-list for ways to generate lists of fonts, as well as more detailed summaries of their metrics and properties.
xfd accepts all of the standard toolkit command line options along with the additional options listed below: -fn font This option specifies the core X server side font to be dis‐ played. This can also be set with the FontGrid font resource. A font must be specified. -fa font This option specifies a Xft font to be displayed. This can also be set with the FontGrid face resource. A font pattern must be specified. -box This option indicates that a box should be displayed outlining the area that would be filled with background color by an Im‐ ageText request. This can also be set with the FontGrid box‐ Chars resource. The default is False. -center This option indicates that each glyph should be centered in its grid. This can also be set with the FontGrid centerChars re‐ source. The default is False. -start number This option specifies the glyph index of the upper left hand corner of the grid. This is used to view characters at arbi‐ trary locations in the font. This can also be set with the FontGrid startChar resource. The default is 0. -bc color This option specifies the color to be used if ImageText boxes are drawn. This can also be set with the FontGrid boxColor re‐ source. -rows numrows This option specifies the number of rows in the grid. This can also be set with the FontGrid cellRows resource. -columns numcols This option specifies the number of columns in the grid. This can also be set with the FontGrid cellColumns resource.
In order to specify resources, it is useful to know the widgets which compose xfd. In the notation below, indentation indicates hierarchical structure. The widget class name is given first, followed by the wid‐ get instance name. The application class name is Xfd. Xfd xfd Paned pane Label fontname Box box Command quit Command prev Command next Label select Label metrics Label range Label start Form form FontGrid grid
The FontGrid widget is an application-specific widget, and a subclass of the Simple widget in the Athena widget set. The effects and in‐ stance names of this widget's resources are given in the OPTIONS sec‐ tion. Capitalize the first letter of the resource instance name to get the corresponding class name.
The instance names of the application specific resources are given be‐ low. Capitalize the first letter of the resource instance name to get the corresponding class name. These resources are unlikely to be in‐ teresting unless you are localizing xfd for a different language. selectFormat Specifies a printf-style format string used to display informa‐ tion about the selected character. The default is "character 0x%02x%02x (%u,%u) (%#o,%#o)". The arguments that will come after the format string are char.byte1, char.byte2, char.byte1, char.byte2, char.byte1, char.byte2. char.byte1 is byte 1 of the selected character. char.byte2 is byte 2 of the selected character. metricsFormat Specifies a printf-style format string used to display charac‐ ter metrics. The default is "width %d; left %d, right %d; as‐ cent %d, descent %d (font %d, %d)". The arguments that will come after the format string are the character metrics width, lbearing, rbearing, character ascent, character descent, font ascent, and font descent. rangeFormat Specifies a printf-style format string used to display the range of characters currently being displayed. The default is "range: 0x%02x%02x (%u,%u) thru 0x%02x%02x (%u,%u)". The argu‐ ments that will come after the format string are the following fields from the XFontStruct that is returned from opening the font: min_byte1, min_char_or_byte2, min_byte1, min_char_or_byte2, max_byte1, max_char_or_byte2, max_byte1, max_char_or_byte2. startFormat Specifies a printf-style format string used to display informa‐ tion about the character at the upper left corner of the font grid. The default is "upper left: 0x%04x (%d,%d)". The argu‐ ments that will come after the format string are the new char‐ acter, the high byte of the new character, and the low byte of the new character. nocharFormat Specifies a printf-style format string to display when the se‐ lected character does not exist. The default is "no such char‐ acter 0x%02x%02x (%u,%u) (%#o,%#o)". The arguments that will come after the format string are the same as for the selectFor‐ mat resource.
The program should skip over pages full of non-existent characters.
Jim Fulton, MIT X Consortium; previous program of the same name by Mark Lillibridge, MIT Project Athena.