Purpose: discuss what function a window manager has and what Tk can and cannot do with the help of a window manager, etc. ---- In the X Windowing System, there is (usually; we exclude situations like web kiosks here) a single special application whose responsibility is to look after the arrangement of windows (e.g. allowing people to drag them around and resize them) and the look and feel of the decorations of the window (title bar, frame, etc.) This application is called the '''Window Manager'''. On Windows and Macintoshes, that responsibility is divided up slightly differently internally, but the net result is usually the same (you should only see a significant difference when something crashes, and that shouldn't happen in the first place!) Typically, applications communicate with window managers by providing them with ''hints''; they can ask to be a certain size and at a certain position, but ultimately if the WM decides to put the window somewhere else (e.g. because the user moved or resized it) then there's nothing that the app can do about it. Nor ''should'' there be anything that the app can do about it; the user should be in control after all. ---- Interesting related reading: an emerging window manager specification [http://www.freedesktop.org/standards/wm-spec.html]. [ICCCM] [[pertinence of xprop]] [[examples]] Window managers that use Tcl/Tk: * arswm (at one time available from mailto:burdick@ars.rtp.nc.us) (Bill Burdick) * [Panache] [http://www.xmission.com/~georgeps/panache/] * [Tkwm] Window managers that use Tk: * perlbox [http://freshmeat.net/releases/102422/] [[Summary: it's hard for Tk to know what the WM is doing.]] See also: * TIP #47: Modifying Tk to Allow Writing X Window managers [http://www.tcl.tk/cgi-bin/tct/tip/47.html] ---- Along with the term ''window manager'' is the term ''desktop environment'' which involves not only managing windows, but protocols for session management, drag and drop, and more. Two common desktop environments for [Linux] are [GNOME] and [KDE]. ---- [Category Glossary] | [Category GUI]