smproxy
Altre info
- Creatore
- Ralph Mor, X Consortium
- Anno
- Tipo
- Proxy di sessione per X11
- Licenza
- MIT
- Codice sorgente
- gitlab.freedesktop.org
Il proxy di sessione di X11R6: un programma che si connette al gestore di sessione per conto di ogni finestra il cui proprietario non ha mai imparato XSMP, e promette di riavviarle a partire da WM_COMMAND.
XSMP è arrivato nel 1994 su desktop pieni di programmi che per anni non sarebbero stati aggiornati, perciò Ralph Mor ha scritto un proxy nella stessa release. smproxy si avvia nella sessione, osserva le nuove finestre di primo livello e cerca quelle prive di SM_CLIENT_ID ma dotate di WM_COMMAND — sulla finestra stessa o sulla finestra leader a cui punta WM_CLIENT_LEADER, in modo che un programma con cinque finestre diventi un solo client e non cinque. Per ciascuna si connette al gestore di sessione come client XSMP a sé stante, con il nome host preso da WM_CLIENT_MACHINE e il comando di riavvio preso da WM_COMMAND, e il gestore di sessione non lo distingue da un programma vero.
Quando il gestore di sessione richiede SaveYourself, smproxy a sua volta invia WM_SAVE_YOURSELF alle finestre che lo hanno elencato in WM_PROTOCOLS, attende che WM_COMMAND venga riscritto e inoltra il nuovo comando; i programmi che non supportano nemmeno questo vengono riavviati senza alcuno stato. Un proxy non può fare di più, e bastava per xterm, xclock e il mondo Xt ma non per molto altro. KDE ha incorporato la stessa logica in ksmserver invece di eseguire il programma, GNOME l'ha ignorata, e smproxy è ancora distribuito con X.Org insieme a xsm — la testimonianza di come si possa aggiungere il supporto a un protocollo a programmi che non si possono modificare.