IT lexicon › Infra & Ops › smproxy

smproxy

Infra & Ops På svenska → Updated: 2026-10-10
More info
Creator
Ralph Mor, X Consortium
Released
Type
Session proxy for X11
License
MIT
Source
gitlab.freedesktop.org

X11R6's session proxy: a program that connects to the session manager on behalf of every window whose owner never learned XSMP, and promises to restart them from their WM_COMMAND.

XSMP arrived in 1994 on desktops full of programs that would not be updated for years, so Ralph Mor wrote a proxy in the same release. smproxy starts in the session, watches for new top-level windows and looks for those lacking SM_CLIENT_ID but carrying WM_COMMAND — on the window itself or on the leader window that WM_CLIENT_LEADER points to, so that a program with five windows becomes one client rather than five. For each it connects to the session manager as an XSMP client of its own, with the host name from WM_CLIENT_MACHINE and the restart command from WM_COMMAND, and the session manager cannot tell it from a real program.

When the session manager requests SaveYourself, smproxy in turn sends WM_SAVE_YOURSELF to the windows that listed it in WM_PROTOCOLS, waits for WM_COMMAND to be rewritten and passes the new command along; programs that support not even that get restarted with no state. A proxy can do no more, and it was enough for xterm, xclock and the Xt world but not for much else. KDE built the same logic into ksmserver rather than running the program, GNOME ignored it, and smproxy still ships with X.Org alongside xsm — a record of how to retrofit protocol support onto programs you cannot change.

Sources smproxy(1) · XSMP
← Back to the lexicon