'''wm protocol''' ''window ?name? ?command?'' This command is used to manage [window manager] protocols such as '''WM_DELETE_WINDOW'''. ''Name'' is the name of an atom corresponding to a window manager protocol, such as '''WM_DELETE_WINDOW''' or '''WM_SAVE_YOURSELF''' or '''WM_TAKE_FOCUS'''. If both ''name'' and ''command'' are specified, then ''command'' is associated with the protocol specified by ''name''. ''Name'' will be added to ''window'' 's '''WM_PROTOCOLS''' property to tell the window manager that the application has a protocol handler for ''name'', and ''command'' will be invoked in the future whenever the window manager sends a message to the client for that protocol. In this case the command returns an empty string. If ''name'' is specified but ''command'' isn't, then the current command for ''name'' is returned, or an empty string if there is no handler defined for ''name''. If ''command'' is specified as an empty string then the current handler for ''name'' is deleted and it is removed from the '''WM_PROTOCOLS''' property on ''window''; an empty string is returned. Lastly, if neither ''name'' nor ''command'' is specified, the command returns a list of all the protocols for which handlers are currently defined for ''window''. Tk always defines a protocol handler for '''WM_DELETE_WINDOW''', even if you haven't asked for one with '''wm protocol'''. If a '''WM_DELETE_WINDOW''' message arrives when you haven't defined a handler, then Tk handles the message by destroying the window for which it was received. ---- Use: wm protocol WM_DELETE_WINDOW {#} to prevent your window from closing when the [[X]] button is clicked. More on this subject appears under the title "[Catching window managed events]". ---- [Joe English] wrote in c.l.t: Q. ''Is there a way of getting a list of available protocols for wm protocol? The man pages only list the obvious / common ones (WM_DELETE_WINDOW, WM_SAVE_YOURSELF, and WM_TAKE_FOCUS).'' A. Those are the only three defined by the ICCCM; the freedesktop.org EWMH spec also defines _NET_WM_PING. Note that WM_SAVE_YOURSELF is deprecated, and Tk apps can't implement WM_TAKE_FOCUS or _NET_WM_PING correctly, so WM_DELETE_WINDOW is the only one that should be used. [Category Command]