4.3 Identifiers

An identifier is a string of 1 to 255 bytes, each a lowercase ASCII letter, an ASCII digit, ., _ or -, whose first byte is a letter or a digit:

identifier = first *254 rest
first      = %x61-7A / %x30-39
rest       = first / "." / "_" / "-"

A consumer MUST treat a string of any other form as no identifier: it is not looked up, and the source it came from is passed over as though it had said nothing (§4.5). This is what keeps a name from naming a path: no identifier contains /, and none begins with ..

Identifiers are compared byte for byte. There is no case folding, because there is no case.

4.3.1 Meaningful forms #

Some forms of identifier are given meaning by this chapter, and a provider MUST NOT use them for anything else:

FormMeaningDefined in
genericThe icon of last resort§4.5
directory-<name>A directory called <name>§4.5
file-<name>A file called <name>§4.5
<type>-<subtype>A file of that media type§4.6
<type>A file of any subtype of that media type§4.6

The set is closed. A future version of this chapter MAY add a form; a provider MUST NOT invent one.

4.3.2 A program's own #

A program's own icon is named for the program, in the reverse-DNS form its package is named in (PSPU §5.3): dev.peios.gxwi.hello. The package that installs the program installs the icon into the base theme under that name, and the program carries the name (§4.5).

A provider MUST NOT install an icon under a name that is another provider's, and a package manager MAY refuse a package that would. The reverse-DNS form makes that a matter of who owns the domain.

Edit this page