Atome (X11)
Un nombre de 32 bits que le serveur X distribue à la place d'une chaîne, pour que les noms n'aient pas à retraverser le réseau sans cesse.
X11 a besoin de noms pour quantité de choses : propriétés de fenêtres, types de données, sélections, types de messages. Envoyer WM_NAME ou _NET_WM_STATE_FULLSCREEN en clair à chaque requête aurait été du gaspillage sur les réseaux des années 1980. Le client interroge donc le serveur une seule fois avec XInternAtom et reçoit en retour un entier valable pour tous les clients de ce serveur. Une soixantaine d'atomes, comme PRIMARY et STRING, sont prédéfinis par le protocole.
Le piège, c'est que le serveur n'oublie jamais. Un atome vit jusqu'au redémarrage du serveur : un programme qui crée des noms uniques en boucle provoque une fuite de mémoire dans le serveur, et non dans le programme lui-même. ICCCM et EWMH sont, pour une large part, de longues listes de ce que signifie chaque nom d'atome.