Lessico IT › Programmazione › _NET_WM_ICON

_NET_WM_ICON

Programmazione Svenska → Aggiornato: 2026-10-09

La proprietà in cui un'applicazione lascia la propria icona come una o più immagini ARGB di qualsiasi dimensione, al posto delle bitmap monocromatiche che WM_HINTS riusciva a gestire.

I campi per l'icona di ICCCM in WM_HINTS erano figli degli anni Ottanta: icon_pixmap puntava a una pixmap nella memoria del server, di solito un XBM in bianco e nero, e icon_mask a un'altra che ne ritagliava la forma. La pixmap era legata a un determinato schermo e a una profondità di colore, non aveva canale alfa e esisteva in una sola dimensione. Quando, intorno al 2000, barre delle applicazioni, elenchi Alt+Tab e barre del titolo hanno cominciato a volere l'icona in una misura propria, non bastava più. EWMH ha messo l'intera immagine nella proprietà _NET_WM_ICON: un array di CARDINAL in cui ogni immagine inizia con larghezza e altezza, seguite da larghezza per altezza pixel in ARGB a 32 bit, e più immagini possono susseguirsi perché chi legge scelga la più adatta.

Tenere i dati nell'archivio di proprietà del server costa memoria per ogni finestra, e un programma che lascia un'icona da 512 pixel in cinque dimensioni invia un megabyte a ogni avvio. Il formato ha prodotto anche un famigerato bug a 64 bit: Xlib considera il formato 32 come un array di long, quindi su una macchina a 64 bit ogni pixel occupa otto byte lato client, e chi li impacchettava come uint32_t otteneva un'icona sformata in alto e spazzatura in basso. I desktop moderni preferiscono ormai l'icona del file desktop dell'applicazione, ricercata tramite WM_CLASS, e tengono _NET_WM_ICON come ripiego. xprop la mostra ancora come ASCII art, ogni volta altrettanto inattesa.

← Torna al lessico