DTSTDAPPFONTNAMES(5)
okay bestie, welcome to DtStdAppFontNames(5) β the file formats manual for the XCDE Standard Application Font Names, also known as DtStdAppFontNames. this is part 1 of the font-name lore, and it is genuinely iconic for anyone shipping XCDE apps π
β¨
πΈ NAME πΈ
DtStdAppFontNames β XCDE Standard Application Font Names. that's the whole name, no cap π«Ά
β¨ SYNOPSIS β¨
okay so the XCDE Standard Application Font Names are a set of generic X Window System font names. they're usable by applications as their default fonts, for the most common categories of type designs and styles π
these names β for at least six sizes of 13 typefaces β must be provided on all XCDE systems, and they should be provided in any X server product on which XCDE applications are expected to run. periodt.
typically they get mapped to existing fonts on the system using the font alias mechanism, although that method is not required. it's giving convenience, not a mandate π
π DESCRIPTION π
XCDE 1.0 does not come with a common set of fonts on all vendors' systems. and both XCDE itself and XCDE applications must be able to run on X servers and X terminals from non-XCDE vendors, if those vendors so desire. so yeah, chaos potential π
therefore, there's a standard set of βgenericβ font names and sizes that each XCDE vendor makes available on their XCDE systems, and that X server vendors may make available on their X servers and terminals. the names map to existing fonts on each vendor's system, which may vary from vendor to vendor β that's the whole point, bestie π₯
the XCDE Standard Application Font Names described here let applications use a single set of default font specifications in their app-defaults files, without concern for the system or X server on which XCDE is running. main character energy: one config, many systems π
these app-defaults application defaults are given as XLFD font name patterns that will match the standard XCDE font names on all XCDE systems. this lets application developers both reduce their concern with selecting their default fonts from a varying set of fonts on different XCDE systems and make use of the system default fonts. obsessed with the reuse π
π¦ Background π¦
Application fonts are the fonts used within an application, where a wide variety of text designs, styles, weights and point sizes are useful. they're for emphasis, cross-references, section headers, and so forth β the whole typographic vibe check β
there are thousands of fonts available in the market for use in applications, and different XCDE systems will have different fonts. the standard names attempt to provide the minimum variety in generic designs, styles and sizes that an application might want to use as defaults. lowkey a curated starter pack π
(The XCDE Standard Interface Font Names, described in DtStdInterfaceFontNames(5), provide a similar mechanism for the elements of the XCDE desktop itself.) iykyk, different font page, same energy π§
common application font names prevent applications from needing different app-defaults files on each XCDE system. the Standard Application Font Names allow applications to use a single app-defaults file across all XCDE systems. literally the dream πΈ
in addition, any X server or X terminal vendor may ensure that XCDE applications can run on their X server by mapping these standard application names to fonts of the corresponding style on their individual X systems. slay, interoperability π
π Rationale π
two of the most common design variations in fonts used to display text are the presence or absence of serifs, and the choice between proportional or regularly spaced (mono-spaced) characters. combining these two design variations yields four βgenericβ font designs, or families:
- serif proportionally-spaced
- sans serif proportionally-spaced
- serif mono-spaced
- sans serif mono-spaced
common examples of these four designs are:
- Times Roman
- Helvetica
- Courier
- Lucida Sans Typewriter
each of these designs typically come, for text fonts, in four styles (combinations of weight and slant):
- plain
- bold
- italic
- bold-italic
the four styles of each of the four design variations yield 16 generic font variations. these 16 generic fonts are among the most commonly used in general desktop computing. for example, taking the first three real examples above (Times Roman, Helvetica, Courier), these 12 fonts, along with the Symbol font, constitute the so-called βAdobe 13β that is a de facto minimum set of fonts in the PostScript community in the desktop computer marketplace. not me knowing this by heart ππ₯
in some cases, applications do not care about the exact font family or name to be used, but do need to use a mono-spaced font, a sans serif font or a serif font. this XCDE mechanism allows such applications to be freed from the need to be concerned about the exact font names that may or may not be present on a particular XCDE system. it's giving freedom from font-name anxiety π¦
π The Standard Names for the Latin-1 Character Set π
the 13 standard application font names are provided on all XCDE systems only for the ISO 8859 (Latin-1) character set. these represent 12 generic design and style variations (serif and sans serif proportionally-spaced, and a mono-spaced font that is either serif or sans serif), as well as a symbol font. 12 + 1, iconic math π
these standard names are provided in addition to the βrealβ names of the fonts that the standard names are mapped to for a particular XCDE system. so you get the standard name and the real one β both can hang π
an additional four standard font names, to allow both serif and sans serif designs in a mono-spaced font, may also be provided by a XCDE system. optional bonus lore, not required π«Ά
π XLFD Field Values for the Standard Application Font Names π
the standard names are available using the X Window System XLFD font naming scheme. there are three aspects to the standard names:
- the underlying font on each system, or X server platform, to which a standard name is mapped, typically will be different on each system.
- the standard name itself, a full XLFD name mapped to the underlying font, may be different on each system in some of the XLFD fields. However, most of the fields are the same from system to system, allowing the patterns (described next) to be the same.
- the font resource pattern containing the
*wildcards, used inapp-defaultsfiles, which will match the full XLFD name of the standard name, is the same across all systems, for a given use in anapp-defaultsfile.
each XCDE or X server vendor implementing this specification must provide full XLFD names for the standard names, mapped to system-dependent underlying fonts, so that the XLFD patterns used in XCDE application app-defaults files will always match one of the full XLFD names provided. no cap, that's the contract π₯
the Standard Application Font Names are identified by the presence of the following XLFD field name values:
FOUNDRYisdtFAMILY_NAMEisapplicationWEIGHT_NAMEismediumorboldSLANTisroriSETWIDTHisnormalADD_STYLEissansfor sans serif,seriffor serifSPACINGispormCHARSET_REGISTRYisiso8859CHARSET_ENCODINGis1
although sans and serif are not required by the XLFD font convention, they are always part of the standard XCDE font names. always. periodt π
πΈ Point Sizes πΈ
the complete set of point sizes available for each of the standard application font names is determined by the set of fonts included in a system, whether bitmapped only or both bitmapped and scalable outline. so your system's font haul decides the size menu π
the minimum set of sizes required and available on all XCDE systems corresponds to the standard sizes of bitmapped fonts that make up the default mapping for X11R5: 8, 10, 12, 14, 18 and 24. memorize the sextet: 8, 10, 12, 14, 18, 24 β¨
for example, the entire set of six sizes of the plain monospaced font, on any XCDE system, is represented by:
-dt-application-medium-r-normal-*-*-80-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-*-100-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-*-120-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-*-140-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-*-180-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-*-240-*-*-m-*-iso8859-1
these patterns will match the corresponding standard font name on any XCDE system, even though the PIXEL_SIZE and AVERAGE_WIDTH numeric fields may be different on various systems, and the matched fonts may be either serif or sans serif, depending on the implementation of the set of standard names. flexible but consistent, iykyk π
the RESOLUTION fields in the XLFD names of the underlying fonts, when those fonts are bitmapped fonts, must match the resolution of the monitor on which the fonts are displayed for the point sizes to be accurate. if the resolution is off, the point sizes are not giving what they're supposed to π
to provide expected point size behavior for applications, systems should ensure that the RESOLUTION_X and RESOLUTION_Y fields of the underlying fonts vary no more than 20% from the real monitor resolution of the displays on which the fonts will be used. twenty percent max, bestie β write it down ποΈ
applications requesting point sizes different from the six in the minimum set may obtain either βscaled bitmappedβ fonts of the requested design, or scaled outline versions of the requested design. so more sizes are possible, but...
this behavior requires that the X server in question support the scaling of fonts and that the standard names are mapped to underlying fonts that can be scaled using this support. no support = no scaling, fr fr π«Ά
π Example XLFD Patterns for the Standard Names π
using the specified field values for these standard names, subsets of the standard names can be represented with various XLFD patterns. the XLFD pattern
-dt-application-*
logically matches the full set of XCDE Standard Application Font Names. (Note that no specific X server behavior is implied). the pattern
-dt-application-bold-*-*-*-*-*-*-*-p-*-*-*-
matches the bold, proportionally-spaced XCDE fonts, both serif and sans serif. and the pattern
-dt-application-*-*-*-*-*-*-*-*-m-*-*-*-
matches the monospaced fonts (including both serif and sans serif).
the full set of XCDE Standard Application Font Names can be represented with the following patterns:
-dt-application-bold-i-normal-serif-*-*-*-*-p-*-iso8859-1
-dt-application-bold-r-normal-serif-*-*-*-*-p-*-iso8859-1
-dt-application-medium-i-normal-serif-*-*-*-*-p-*-iso8859-1
-dt-application-medium-r-normal-serif-*-*-*-*-p-*-iso8859-1
-dt-application-bold-i-normal-sans-*-*-*-*-p-*-iso8859-1
-dt-application-bold-r-normal-sans-*-*-*-*-p-*-iso8859-1
-dt-application-medium-i-normal-sans-*-*-*-*-p-*-iso8859-1
-dt-application-medium-r-normal-sans-*-*-*-*-p-*-iso8859-1
-dt-application-bold-i-normal-*-*-*-*-*-m-*-iso8859-1
-dt-application-bold-r-normal-*-*-*-*-*-m-*-iso8859-1
-dt-application-medium-i-normal-*-*-*-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-*-*-*-*-m-*-iso8859-1
-dt-application-medium-r-normal-*-*-*-*-*-p-*-dtsymbol-1
each of these 13 standard names comes in at least six point sizes. periodt π
β¨ Implementation of Font Names β¨
Okay so here's the tea, bestie π β every single XCDE system vendor and every X server vendor ships their own mappings of their own fonts onto XLFD names that meet this standard, so that XCDE apps actually work on their box. The real XLFD names will vary from system to system, same as the fonts they get mapped to, because the names contain some of the same values as the XLFD name of the underlying font. Like, of course they do π.
What does not vary is the behavior: the common patterns where only the specified fields get used will match each system's standard names. That's guaranteed by the field specifications given earlier β no cap, fr fr.
So here are the rules every XCDE or X server vendor has to follow when they implement the Standard Application Font Names π:
- The names must be fully specified XLFD names, with no wild cards β none, zero, don't even think about it.
- The
WEIGHT_NAME,SLANT,SETWIDTH_NAME,SPACING,CHARSET_REGISTRYandCHARSET_ENCODINGfields must contain valid values as defined previously, and they must match those in the underlying font. Consistency is the vibe check π«Ά. - The
ADD_STYLE_NAMEfield must contain either theseriforsansdesignation β whichever matches the underlying font, obviously.
π Default XCDE Mappings for Latin-1 Locales π
For the ISO 8859 locales, the default mapping of these standard application font names goes to these standard X11R5 bitmapped fonts. Quick note before you scroll: the six minimum sizes are not shown explicitly in these patterns, mmmkay? π
-adobe-times-bold-i-normal--*-*-*-*-p-*-iso8859-1
-adobe-times-bold-r-normal--*-*-*-*-p-*-iso8859-1
-adobe-times-medium-i-normal--*-*-*-*-p-*-iso8859-1
-adobe-times-medium-r-normal--*-*-*-*-p-*-iso8859-1
-adobe-helvetica-bold-o-normal--*-*-*-*-p-*-iso8859-1
-adobe-helvetica-bold-r-normal--*-*-*-*-p-*-iso8859-1
-adobe-helvetica-medium-o-normal--*-*-*-*-p-*-iso8859-1
-adobe-helvetica-medium-r-normal--*-*-*-*-p-*-iso8859-1
-adobe-courier-bold-o-normal--*-*-*-*-m-*-iso8859-1
-adobe-courier-bold-r-normal--*-*-*-*-m-*-iso8859-1
-adobe-courier-medium-o-normal--*-*-*-*-m-*-iso8859-1
-adobe-courier-medium-r-normal--*-*-*-*-m-*-iso8859-1
-adobe-symbol-medium-r-normal--*-*-*-*-p-*-adobe-fontspecific
A system is allowed to provide a different mapping of these standard names, but only as long as all 13 names map to fonts of the appropriate design and style, and the required six point sizes are actually available. And heads up: the system documentation must document the system-specific default mapping for the standard names. That's not optional, bestie π.
π¦ Font Names in app-defaults Files π¦
The dream here π: an application can use a single app-defaults file to specify its font resources and then use that same file across all XCDE systems. Iconic behavior, honestly.
Most of the fields β FOUNDRY, FAMILY_NAME, WEIGHT_NAME, SLANT, SETWIDTH_NAME, ADD_STYLE_NAME, POINT_SIZE, SPACING, CHARSET_REGISTRY and CHARSET_ENCODING β are the same across different systems, so those values can be used right in the resource specification in the app-defaults file. Slay π
.
But the other fields β PIXEL_SIZE, RESOLUTION_X, RESOLUTION_Y and AVERAGE_WIDTH β may vary across systems, so those ones must be wild-carded in the resource specification. Not negotiable, sorry not sorry π« .
Example time, for instance:
appOne*headFont: -dt-application-bold-r-normal-sans-*-140-*-*-p-*-iso8859-1
appOne*linkFont: -dt-application-bold-i-normal-sans-*-100-*-*-p-*-iso8859-1
Those might be used to specify some of AppOne's default font resource needs. Cute, right? π
πΈ Other Character Sets in the Common Locales πΈ
So the standard application font names we defined above? They can also be used for locales other than the ISO 8859 character set, with the following exceptions and differences. For the locales listed below, CDE guarantees that systems provide fonts with the following XLFD attribute values, and that they're accessible using these names π.
Full info on how vendors ship the fonts, and how they make such names usable with the appropriate font base name lists required for correct CDE support for internationalization, lives in the guidelines in the CDE Internationalization Programming Guide document. Go read it, iykyk π.
- Locales using ISO 8859-2, -3, -4, -5 (Cyrillic), -6 (Arabic), -7 (Greek), -8 (Hebrew) β the same values for
FOUNDRY,FAMILY_NAME,WEIGHT_NAME,SLANT,SET_WIDTH,ADD_STYLEandSPACINGas are used in this definition for the ISO 8859 locale. Same energy, different charset π«. - Japanese locales β two values for the
FAMILY_NAMEattribute (GothicandMincho) and two values for theWEIGHT_NAMEattribute (mediumandbold), as well asSLANT(r),ADD_STYLE(*) andSPACING(m). - Chinese (Taiwan) locales β two values for the
FAMILY_NAMEattribute (SungandKai) and two values for theWEIGHT_NAMEattribute (mediumandbold), as well asSLANT(r),ADD_STYLE(*) andSPACING(m). - Chinese (PRC) locales β two values for the
FAMILY_NAMEattribute (SongandKai) and two values for theWEIGHT_NAMEattribute (mediumandbold), as well asSLANT(r),ADD_STYLE(*) andSPACING(m). - Korean locales β two values for the
FAMILY_NAMEattribute (TotumandPathang) and two values for theWEIGHT_NAMEattribute (mediumandbold), as well asSLANT(r),ADD_STYLE(*) andSPACING(m).
Okay real talk about the Korean names for a sec π«Ά: these names are unofficial, tentative romanizations of the two common font families in use in Korea.Totumcorresponds to fonts typically shipped asGothic,KodigorDotum, andPathangcorresponds to fonts typically shipped asMyungjoorMyeongjo. The official roman names for these fonts are under review and may be changed in the future by the Korean government β and thus may change for CDE too. So don't get too attached π.
π§ The application Family Addition π§
In addition β and this is the part that makes app-defaults files work under a whole variety of locales β CDE systems must provide an additional set of Standard Application Font Names where the FAMILY_NAME is application. Obsessed with this for them β¨.
These font names are identified by the presence of the following XLFD field values:
FOUNDRYisdtFAMILY_NAMEisapplicationWEIGHT_NAMEismediumorboldSLANTis as appropriate (see above π)SET_WIDTHisnormalADD_STYLEis*SPACINGis as appropriate (see above π)CHARSET_REGISTRYis as appropriateCHARSET_ENCODINGis as appropriate
This set of names gets mapped to an underlying font representing one of the FAMILY_NAMES listed above. Periodt π
.
For example, the XLFD names
-dt-mincho-medium-r-normal--*-*-*-*-m-*-jisx0208.1983-0
-dt-application-medium-r-normal--*-*-*-*-m-*-jisx0208.1983-0
may both be mapped to
-ibm_aix-mincho-medium-r-normal--*-*-*-*-m-*-jisx0208.1983-0
The way this scheme eats π₯: it lets application writers create a XmFontList in a resource file like this, without regard for a particular locale:
*FontList:-dt-application-medium-r-normal-*-0-14-75-75-m-0-*-*:
β¦and be assured that the font will be reasonable. Notice that specifying fonts this way not only disregards the selection of the Asian FAMILY_NAME, but also the Latin serif or sans ADD_STYLE field. The font selected will be the default. Main character energy, honestly π.
π SEE ALSO π
π NOTES π
There is no requirement on an XCDE system to implement these standard names in a particular way. Several mechanisms are possible, bestie:
- duplicate font files with altered naming attributes
- X11R5 font aliases
- vendor-specific mechanisms
The only requirement is that an XLFD pattern β written with attributes taken from the set that define the standard names β can be successfully used to open a font with the Xlib function XLoadFont. And, specifically, the Xlib function XListFonts need NOT return the same XLFD names for the pattern on different XCDE systems. Like, don't @ me about it π.
XCDE applications should, of course, be written to behave in a reasonable manner if these standard font names aren't available on a particular X server. This is typically done in an X application by defaulting to the fixed and variable fonts. Always have a backup plan, babe π«Ά.
And that's the whole page, bestie! π
This one's DtStdAppFontNames (the file formats one, from the CDE docs β shoutout to the authors and the whole copyright/license crew for making our fonts make sense) πβ¨π¦
π¦ where this page comes from
- nixos 26.05: cde 2.5.3
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms