smproxy
Mer info
- Skapad av
- Ralph Mor, X Consortium
- År
- Typ
- Sessionsproxy för X11
- Licens
- MIT
- Källkod
- gitlab.freedesktop.org
X11R6:s sessionsproxy: ett program som ansluter till sessionshanteraren å alla de fönsters vägnar vars ägare aldrig lärde sig XSMP, och lovar att starta om dem från deras WM_COMMAND.
XSMP kom 1994 till ett skrivbord fullt av program som inte skulle uppdateras på åratal, så Ralph Mor skrev i samma utgåva en proxy. smproxy startas i sessionen, lyssnar efter nya toppfönster och letar efter sådana som saknar SM_CLIENT_ID men har WM_COMMAND — på fönstret självt eller på ledarfönstret som WM_CLIENT_LEADER pekar på, så att ett program med fem fönster blir en klient och inte fem. För var och en ansluter den till sessionshanteraren som en egen XSMP-klient, med maskinnamn ur WM_CLIENT_MACHINE och återstartskommando ur WM_COMMAND, och sessionshanteraren ser ingen skillnad mot ett riktigt program.
När sessionshanteraren begär SaveYourself skickar smproxy i sin tur WM_SAVE_YOURSELF till de fönster som anmält det i WM_PROTOCOLS, väntar på att WM_COMMAND skrivs om och rapporterar det nya kommandot vidare; program som inte stödjer ens det blir återstartade utan läge. Mer kan en proxy inte göra, och det räckte för xterm, xclock och Xt-världen men inte för mycket annat. KDE byggde in samma logik i ksmserver i stället för att köra programmet, GNOME struntade i det, och smproxy följer fortfarande med X.Org vid sidan av xsm — ett dokument över hur man i efterhand ger protokollstöd åt program man inte kan ändra.