Leksykon IT › Infrastruktura › smproxy

smproxy

Infrastruktura Svenska → Zaktualizowano: 2026-10-10
Więcej informacji
Autor
Ralph Mor, X Consortium
Rok
Typ
Proxy sesji dla X11
Licencja
MIT
Kod źródłowy
gitlab.freedesktop.org

Proxy sesji z X11R6: program, który łączy się z menedżerem sesji w imieniu każdego okna, którego właściciel nigdy nie poznał XSMP, i obiecuje uruchomić je ponownie na podstawie WM_COMMAND.

XSMP pojawił się w 1994 roku na pulpitach pełnych programów, które przez lata nie miały być aktualizowane, więc Ralph Mor napisał proxy w tym samym wydaniu. smproxy startuje w sesji, obserwuje nowe okna główne i szuka takich, które nie mają SM_CLIENT_ID, ale mają WM_COMMAND — na samym oknie albo na oknie lidera wskazanym przez WM_CLIENT_LEADER, tak aby program z pięcioma oknami stał się jednym klientem, a nie pięcioma. Dla każdego łączy się z menedżerem sesji jako osobny klient XSMP, z nazwą hosta z WM_CLIENT_MACHINE i poleceniem restartu z WM_COMMAND, a menedżer sesji nie odróżnia go od prawdziwego programu.

Gdy menedżer sesji zażąda SaveYourself, smproxy z kolei wysyła WM_SAVE_YOURSELF do okien, które wymieniły go w WM_PROTOCOLS, czeka na przepisanie WM_COMMAND i przekazuje dalej nowe polecenie; programy, które nie obsługują nawet tego, są uruchamiane od nowa bez stanu. Proxy nie mogło zrobić więcej, i wystarczyło to dla xterma, xclocka i świata Xt, lecz nie dla wielu innych rzeczy. KDE wbudowało tę samą logikę w ksmserver zamiast uruchamiać program, GNOME ją zignorowało, a smproxy nadal jest dostarczany z X.Org obok xsm — jako zapis tego, jak dorabiać obsługę protokołu programom, których nie można zmienić.

Źródła smproxy(1) · XSMP
← Wróć do leksykonu