Lessico IT › Programmazione › WM_WINDOW_ROLE

WM_WINDOW_ROLE

Programmazione Svenska → Aggiornato: 2026-10-10

La proprietà ICCCM che contiene un nome breve per indicare quale tra le finestre di un programma sia una data finestra — «browser», «3pane», «gimp-toolbox» — così che gestori di sessione e regole delle finestre la riconoscano anche dopo che il titolo è cambiato.

Un programma con più finestre di primo livello ha un problema al riavvio: WM_CLASS è uguale per tutte, WM_NAME cambia a ogni documento e gli ID delle finestre sono nuovi a ogni esecuzione. Nel 1994 ICCCM 2.0 ha aggiunto WM_WINDOW_ROLE nel suo capitolo sulla gestione delle sessioni: una stringa che deve essere unica tra le finestre del programma e stabile tra un'esecuzione e l'altra, così che un gestore di sessione possa rimettere al loro posto la finestra principale e quella delle preferenze. Il nome lo sceglie il programma. Firefox scrive «browser», Thunderbird «3pane», GIMP 2 impostava «gimp-toolbox», «gimp-dock» e «gimp-image-window» sulle sue finestre, e i programmi GTK che non hanno deciso finiscono spesso con un nome generato, composto dal nome del programma e da cifre casuali. Se la proprietà manca, ICCCM ripiega su WM_CLASS e richiede allora che sia unica per finestra, cosa di cui quasi nessuno si preoccupa.

La parte legata alle sessioni è usata più o meno quanto il resto di XSMP, ma il ruolo ha trovato una seconda vita come chiave nelle regole delle finestre. Le regole di KWin possono basarsi sul ruolo della finestra, Openbox accetta role= nella regola <application> e xdotool search --role trova la finestra a prescindere dal titolo. I ruoli di GIMP l'hanno resa popolare: una finestra di strumenti agganciata, senza barra del titolo, su un certo desktop è stata per anni l'esempio classico di ogni file di regole. GTK ha esposto la proprietà come gtk_window_set_role e Qt come QWidget::setWindowRole; GTK 4 ha rimosso la funzione, e sotto Wayland esiste solo app_id, uno per finestra di primo livello — più o meno ciò che era già WM_CLASS.

Fonti ICCCM
← Torna al lessico