Lexique informatique › Programmation › _NET_WM_ICON

_NET_WM_ICON

Programmation Svenska → Mis à jour: 2026-10-09

La propriété où une application dépose son icône sous forme d'une ou plusieurs images ARGB de taille quelconque, à la place des bitmaps monochromes que WM_HINTS savait gérer.

Les champs d'icône de WM_HINTS dans l'ICCCM étaient des enfants des années 1980 : icon_pixmap pointait vers un pixmap en mémoire du serveur, le plus souvent un XBM en noir et blanc, et icon_mask vers un autre qui en découpait la forme. Le pixmap était lié à un écran et à une profondeur de couleur précis, n'avait pas de canal alpha et n'existait qu'en une seule taille. Quand barres des tâches, listes Alt+Tab et barres de titre ont chacune voulu l'icône à leur propre taille, vers 2000, cela ne suffisait plus. EWMH a donc mis l'image entière dans la propriété _NET_WM_ICON : un tableau de CARDINAL où chaque image commence par largeur et hauteur, suivies de largeur fois hauteur pixels en ARGB 32 bits, plusieurs images pouvant se suivre pour que le lecteur choisisse la plus adaptée.

Garder les données dans le magasin de propriétés du serveur coûte de la mémoire par fenêtre, et un programme qui laisse une icône de 512 pixels en cinq tailles envoie un mégaoctet à chaque lancement. Le format a aussi produit un bogue 64 bits notoire : Xlib traite le format 32 comme un tableau de long, si bien que sur une machine 64 bits chaque pixel occupe huit octets côté client, et quiconque les avait empaquetés en uint32_t obtenait une icône déformée en haut et du bruit en bas. Les bureaux modernes préfèrent désormais l'icône du fichier desktop de l'application, retrouvé via WM_CLASS, et gardent _NET_WM_ICON en secours. xprop l'affiche toujours en art ASCII, ce qui surprend chaque fois autant.

← Retour au lexique